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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    C51通用串口收发数据C语言程序模块实例
    1 c" k# p3 L) ]' r; Y8 x, s6 N% n8 r+ \; U

    " y" \* I& I: L4 V4 N
    #include <reg52.h>        //C51通用串口收发数据C语言程序模块
    7 X) I" B' K# |. Y. w1 k#define  uchar unsigned char
    & t3 U: Y; S4 a#define uint unsigned int
    + d7 @+ O" N, r: ^uchar shu;
    + J3 }, C. L! l, U
    7 t! K( F4 R0 B  F& T3 J7 `# W9 ^1 abit i;
    5 |0 p* \# F6 w6 O. Gsbit  led1=P0^0;
    / H- |) B: E9 r, S6 r9 ]8 V$ Ovoid  delayms(uint xms)         //1ms;
    # I3 @7 m  m% E. {1 v{2 U! c* V5 r" ^. W0 ]
       uint i,j;
    8 B, R' F, s1 v! B2 J   for(i=xms;i>0;i--)7 j4 V9 \4 H' J- R# U
           for(j=110;j>0;j--) ;
    . s7 G7 e* }' I' K4 s, z8 f: {7 h3 q3 }' S8 s
    7 L4 j0 Y- }- v- |5 Z  i
    }3 G+ _8 x6 b4 {( d, m8 {
    /************************************************************************/
    3 t1 X/ n: R  @+ X6 G3 ^. Vvoid  UART_init()) }2 W* K7 @: ~8 Q; k* ~2 y
    {+ x2 s) u( c* S  F; L' V
      TMOD=0X20;//定时器1方式        2( g8 J" A- e$ d  x" ^
      SCON=0X50;//K串口方式         
      v, w; |; h- N1 t  R- Z  TH1=0XFD;
    9 a  Q. ], n# k- A% b' t5 ^* q  TL1=0XFD;! k$ r# y" q% t& V, ?
      EA=1;
    ( J) T) R* H$ X$ P' L4 S" l' r  ES=1;
    1 l8 o2 v# e  k2 t& r2 T  TR1=1;
    2 Q& y2 t7 f0 u( n! v6 ], y- V2 j  s* p* p6 h$ `7 n2 d9 N
    }
    % ?, R# y7 t3 }( A4 i/ F0 N: M" @, `- T& _+ Q, D! h  k: Y

    + I" F3 F+ ]2 b+ |' p; l/*********************************1 w7 S  d; U3 C  U0 m
    函数:void main(void)2 K; h6 K& h2 m: ?, D9 J, u! E# I
    ____________________________________
    2 H. z5 v8 a) W6 C说明:主函数,程序执行从这里开始  q! `5 G& p- \0 N. b2 x( R
    ********************************/
    5 t7 s) D/ l% S. b* y. Yvoid main(void)
    4 Y! [0 C/ e; o1 o( G( ?- W& y- u{5 L* q4 ~3 C7 }6 R$ u+ A) i

    % n' q3 ^9 m& o7 Z/ ^   UART_init();8 }* R7 f# E/ l4 O! x- m- K
       while(1 ) ;1 L! W. G4 P# T: q; F4 E0 [( Q7 j
               ) d* N; a4 n0 b+ z- @1 N
    }
    6 @8 p  d' V0 H) ]7 X8 Z  }+ Z- F3 ~* }( M. p# {' E
    /*********************************& a* f# }! J2 Z' g
    函数:void Inter()         interrunpt 4* L. `8 w: E- n" ^
    ____________________________________
    & x% M! \) D! p" t说明:串口中断处理程序
    5 |  ]# v; w# H" ?0 q- n7 _********************************/% I6 i/ F  \# y8 _: C6 |
    void Inter() interrupt 47 Q/ c3 @9 I3 ~7 ~
    {8 j7 n) G5 q1 w
       uchar i=0;  y0 g- B6 t8 y& w/ K* k
      if(RI)        //判断是否接收完毕
    8 T( O: g% }- |- f8 U+ z1 U0 l  {: D2 H* a, t- Q8 ^% q/ J! H
        RI=0; //是则RI清零,准备下一次接收  J( |! B$ @5 N
            shu=SBUF;8 ^) X$ P& e3 X+ x" d/ I! A* v
            SBUF=shu;
    ' Y9 A- ^" K% O  P1 m0 Q   }; x, F2 G6 t5 ~% F% K
       if(TI) //发送数据回去9 }* d* {! Q& o: h& l, l
       {: K+ n+ q* o7 N% Z/ ^0 [1 u8 V& Y
                 TI=0;
    . L: y; U7 u1 h1 q   }
    1 N) B6 o  N& S) _   if(shu== 0x30)   //判断接收到的数据, 并作出相应处理3 ?0 Y2 A9 k& O
            {; M) a* F- r1 e9 h. M6 l
                     7 G- G8 x# P5 s- a; @
              led1=1;//LED灯灭
    4 N. ]* l, ^2 M         }
    5 q" C) w9 S8 S7 ^7 ?/ T4 o  I8 r   if(shu == 0x31)        //判断接收到的数据, 并作出相应处理
    : c& x, F0 \. H* e  b$ t3 u        {4 S- |5 R4 v5 z0 y6 E! {  F
              led1=0;% `+ t( D, ~, [" {) `8 E/ ~
            }
    * }* {. J3 k* E  {. H        
    . [& O& C3 k8 D" `% o- O- L         if(shu== 0x32)   //判断接收到的数据, 并作出相应处理
    1 g% |( ?* Y( J8 }9 `% `        {; p1 E+ d/ p" G
               for(i=0;i<10;i++)! h" _. O: N2 g& f8 \7 t% b8 [1 o
              {# D6 h% I' d' |
               led1=~led1;8 q9 r$ s: i+ n9 U4 b
               delayms(200);
    , q% ^$ A. u/ ]          }
    7 O7 R$ d1 R9 u% u0 O; \8 U          - z% j4 {9 W2 s; C8 I& O
            }
    0 j6 S% @* w8 p' J& F1 X) R' V7 e+ E$ l+ c
    }
    ; j4 h/ o3 p8 [! a* N- o% |- T
    * R* G- Y7 m- H% j9 v7 Q" C" J
    : Y* h1 [6 g1 u8 a3 k

    + ~. V& O" U# u' [  ]( I  U3 e6 a! o2 \2 G- d6 y4 x" s
    : V- Q7 j0 _; V/ X$ W

    - e# a- b, G# b, s/ E2 @8 }/ }
    2 d9 i: Z( v# t; p: K

    ) F; E% r7 J" J7 S# q- m4 @9 j
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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