找回密码
 注册
关于网站域名变更的通知
查看: 596|回复: 1
打印 上一主题 下一主题

C51通用串口收发数据C语言程序模块实例

[复制链接]
  • TA的每日心情
    开心
    2019-11-20 15:00
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2018-11-20 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    C51通用串口收发数据C语言程序模块实例0 j& T" n* C% c6 t& s3 `
    * W+ e+ g; ^4 P( K/ P
    6 h2 n% J7 W  j) r# {5 i
    #include <reg52.h>        //C51通用串口收发数据C语言程序模块
    : h, b1 c! w2 Q#define  uchar unsigned char- b$ s, n+ h/ `& N: ^" s% i5 u* K
    #define uint unsigned int' H& Q" i/ v( d
    uchar shu;
    , F- J# v& v8 `6 M  L# C$ Y* P- r- Q0 h: k
    bit i;  j# I; ^5 I7 _  p: i3 y) w
    sbit  led1=P0^0;$ Z1 E; n% k' y; g
    void  delayms(uint xms)         //1ms;- M) i! t0 H! B5 F$ z. n
    {6 ~9 M$ i# H8 U  r
       uint i,j;
    8 h* Z6 X1 B  `* O6 U   for(i=xms;i>0;i--)$ ]" P! O% o" g+ ~' q# g* {! D+ x) M
           for(j=110;j>0;j--) ;3 c8 h4 `% w( W5 ]; H

    4 r7 t# Z* \  x
      Z  ~4 @0 t2 M3 \, S' |7 H( ~7 Z}
    * O. u9 i9 O) m- Y9 X- E: o/************************************************************************/( O" d0 s+ c7 i# T8 R( Z7 d' V
    void  UART_init()
    / W3 i' E, b) g; D{
    * S; _5 G9 S( y0 x3 d- N  TMOD=0X20;//定时器1方式        2
    0 N! n0 c2 a( [( K" x  SCON=0X50;//K串口方式          + N8 w# E# @1 B8 r
      TH1=0XFD;4 d9 q* m: O6 G! K  M
      TL1=0XFD;8 q( O# L+ q+ y' t' C+ b, I
      EA=1;
    5 Y( R6 z# w/ F- m$ H- J  ES=1;8 A7 u$ f- S7 y( W5 k% j+ i) l
      TR1=1;, X" J4 Z: }( Q' J; s# L4 N
    ( @9 a/ E  f) n- t7 d; ^
    }
    ( o4 f* b( C6 i& _0 ^* d8 K: i& _4 F3 e7 c; J
    ! y: ~, ?1 c1 t- L: k6 D
    /*********************************; @: Y  ^. A" W; z* J
    函数:void main(void)
    1 t3 n5 H  B( i% m" V6 p( L____________________________________3 r7 q6 h0 u& P; N. b8 n
    说明:主函数,程序执行从这里开始
    + D: ]0 e0 e! n. r********************************/
    : n% ]7 R  f9 |6 O) Pvoid main(void)
    ' Z! y& n) P9 l; G9 [5 W; x( q{
    1 D5 W4 U% `, i( [$ f* s3 }
    0 g5 C: i) P/ V( k4 T7 p( `   UART_init();7 c( V9 J+ i. N- q0 m4 X
       while(1 ) ;- O  V& _# `6 D9 W  i0 D$ b
               4 E+ H. [  |# K( I7 H, t7 a' Z
    }
    ) ?7 C( O/ C/ f( N) I7 T
    0 c/ u) u2 L$ j- b. ^7 k/*********************************7 [% _+ N7 P$ }! D0 @
    函数:void Inter()         interrunpt 4
    ( @( y/ _1 l* P. [7 }( x____________________________________9 `+ P4 q+ f$ Q2 ]' z- c4 Y
    说明:串口中断处理程序
    # u- Y; }5 z" Y" M3 d& Y********************************/1 v. U, C1 [; k+ ^4 f% [( R
    void Inter() interrupt 4! _4 o6 W3 `& H4 _! k8 {
    {4 Z# g2 s7 g& X  {% J( i9 W. T* H
       uchar i=0;: {+ ^2 I9 l* k! T( c
      if(RI)        //判断是否接收完毕
      N3 d+ |( i: b/ A( g1 B  {
    3 |4 I! T2 W$ d* c* v    RI=0; //是则RI清零,准备下一次接收
    ; Y$ E: G0 b/ h* T6 K        shu=SBUF;
    7 p( s$ y: z$ p9 u% G        SBUF=shu;
    3 f# h# }8 o4 _% g6 G; z  G   }
    " ]' G2 _+ ^; h, P" Y   if(TI) //发送数据回去/ U9 Q, J5 s6 M2 P* g
       {
    " p8 ~1 F" Y- T2 e; @             TI=0;
    0 N0 D% L9 K- V   }
    5 `" s* R2 W: F. B  ~   if(shu== 0x30)   //判断接收到的数据, 并作出相应处理6 ~0 d/ `6 w3 m
            {. p4 `# a0 v& u" z: |. |) n, W' x
                     1 D4 {: |; C$ n; E  B# y8 Z, O
              led1=1;//LED灯灭3 ?" U8 \/ `  i  x
             }
    4 ^6 F& F: N; C" ]" o0 t8 Z, t  `   if(shu == 0x31)        //判断接收到的数据, 并作出相应处理2 x3 o6 ]) I' D+ o% ]. i
            {1 G; ?/ h- B1 j" F' _
              led1=0;
    . J$ L8 L& L" b7 m        }3 _; _# O" d  X9 f0 D# o+ g
            2 u9 H: C! B2 s. Q
             if(shu== 0x32)   //判断接收到的数据, 并作出相应处理. F. [4 n$ i: @+ O1 j$ d! s. m
            {8 G( m: u9 I9 t, ?9 ?7 J- h
               for(i=0;i<10;i++)
    + j4 _: q& R4 K/ N- {7 N2 c          {5 C, e' {4 Y7 ^4 k: m, @* O
               led1=~led1;
    6 L/ r: D) o$ Z9 L8 Y  K           delayms(200);
    3 Y2 O- c( P; S5 S& k          }
    / C! D! p! T4 Y8 o0 w) l9 N+ Z         
    ' b# R+ J1 q( [% f: e        }
    & y( G; ]3 r) _0 C! a  A2 ^
    7 K/ c2 d# o# o9 G6 G}
    ' |8 \  U2 G, v% o$ b( w+ [4 t

    8 Q; w2 W$ y" A" }) Y& u
    5 P( K9 k# N( j- S) Q5 K) W* M( O( _; R4 H, X8 q$ ?6 n; d3 z
    # K) Z' U# Z) o' n! x
    - M4 F  S: A0 @. ^, z

    5 d9 v; Y/ {" _

    1 y) Q; K+ a5 \' |& ^" e% l, t/ d- s" ^, s; h7 n. C
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-19 23:41 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表