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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    C51通用串口收发数据C语言程序模块实例, R+ J2 x. t8 [
    5 V/ ]! l+ r' d& \0 B

    8 g( _9 l6 `+ C
    #include <reg52.h>        //C51通用串口收发数据C语言程序模块 : J! ]; n1 K' ]; H: I5 X2 U* {: w) M
    #define  uchar unsigned char) ~- k2 z4 E9 [
    #define uint unsigned int6 G1 l! l; y& w% ^8 w/ y( c) L
    uchar shu;/ y! t% k+ n6 O
    1 B. R% v7 S3 f1 d( V5 T
    bit i;2 U/ E  X  Z7 h& H2 D, [
    sbit  led1=P0^0;
    9 W$ E" p( {  Yvoid  delayms(uint xms)         //1ms;
    * G" a2 U( ?# l7 v{
    9 T  z& `  z3 L' E. \3 E   uint i,j;
    1 n# ^9 b& N' |% c6 G5 U   for(i=xms;i>0;i--)
    3 j/ I8 m% p; f       for(j=110;j>0;j--) ;
    ! f8 p  j( |" V& [0 M3 h' B6 p0 t2 P1 p9 M9 a4 H6 s+ s. b
    # y4 D" H6 s* s8 F5 T
    }" z& A$ S  N$ k: S# ?
    /************************************************************************/
    ; r8 W) s, r: P7 h$ w% }% {6 vvoid  UART_init()
    ) S: z% l6 n. v$ d{
    + r# U# W; o- h" X6 k  TMOD=0X20;//定时器1方式        2
    / i- e; U1 P* Q7 c/ k  SCON=0X50;//K串口方式         
    + _. @  m: y, W) l* E  TH1=0XFD;
    7 T$ h4 j" e3 o0 q  TL1=0XFD;
    ! x8 r3 ~& c/ H  EA=1;
    ( J& y+ ~1 g" K# [  ES=1;+ L! V9 l) q+ a0 h1 L3 K+ ?
      TR1=1;
    3 y5 [$ q5 N' W/ U7 K& P5 I" g5 Y" L: |
    }- k) [  U( Q" a* O# e- ?

    ) j: B2 w/ e) \* ^3 y; e3 G3 l( \5 |- Q' @
    /*********************************( g2 j% ?; \* X5 F+ f0 s1 k
    函数:void main(void); i6 q: T& x. V( t6 ?
    ____________________________________% |/ Q/ |0 m2 c0 }/ ^
    说明:主函数,程序执行从这里开始" q( k2 ]+ x: ^
    ********************************/
    ( T6 i& \1 A1 Q$ H  i, f9 svoid main(void)" J+ L) `7 i% s$ ?9 Z2 J
    {# K( G1 F" l  _, f

    * R  ]  Q4 k& T9 S+ o/ r+ P, z) {   UART_init();
    & o9 }) j, L& ~7 V   while(1 ) ;
    , M5 ~0 J( ~0 v; S           8 F: ~/ e8 S. D$ q! k
    }
    ! E# w9 ^2 Y. R' E" {
    2 P$ d9 m* ?# h( j/*********************************  c3 T$ q9 B# h+ A6 U
    函数:void Inter()         interrunpt 4
    4 Y2 E3 h2 J# X7 b- v6 R____________________________________
    ; T9 t: ^0 |) y说明:串口中断处理程序
    $ N6 |! C- g) ?* ]  Y********************************/& T( p) u7 x. N* Q9 l
    void Inter() interrupt 4
    ; u: g1 {4 J/ G! ?{
    ! B: C: K: a# G   uchar i=0;% F. l% h9 u0 _; t2 F0 x
      if(RI)        //判断是否接收完毕
    5 F/ j" n" k/ Z6 \$ I  {
    7 }8 ~! T' L+ c; S2 A6 R    RI=0; //是则RI清零,准备下一次接收
    1 T1 U2 I) o4 ^. \) h- i        shu=SBUF;
    4 H# B$ q  f5 d+ |/ @        SBUF=shu;
    ! Q: ]9 x( W. d. S* t9 [- g   }
    5 W/ d* ?$ Q# @" k' `- K   if(TI) //发送数据回去
    - B: M, j+ ^2 _& d9 y. f3 {% g   {
    % |5 f+ Y4 ~. Y             TI=0;
    3 A& z& }+ H" c4 J   }0 Z0 d3 Y5 C% K  n" z! M# l# I. T
       if(shu== 0x30)   //判断接收到的数据, 并作出相应处理  ]! |/ a5 m. Q/ O/ z
            {
    & ?$ f4 R) p9 s& g3 b; h                 
    " p& ]( M# H7 n" k          led1=1;//LED灯灭
    1 i, \+ Y+ ]/ _7 Y/ U6 _         }6 u- k0 k( Y7 V: A4 ]2 r
       if(shu == 0x31)        //判断接收到的数据, 并作出相应处理3 ^- [5 S5 q# k1 F% b
            {. c' w5 d% n" f" K2 N
              led1=0;
    5 x% o5 x! N6 r  O5 d8 J        }: ^" m% B' X/ O
            
    & g9 T! e2 i% i& D) y1 N! T# a         if(shu== 0x32)   //判断接收到的数据, 并作出相应处理1 X, }0 a( H7 S5 J) V  R
            {- M" w; |/ ^. T! g/ a, l
               for(i=0;i<10;i++)! Q' b* C  V: H/ y" v
              {
    1 S* F' V) q/ A+ a- q           led1=~led1;
    . v$ I1 W, {, Q/ \/ j- M           delayms(200);6 O8 g' K1 N$ P% g( h# [
              }8 `) d  d0 n  G8 ]% p( v
              4 H0 D  I- m) d, X; G' V
            }8 l+ N( \5 ^  x# n

    1 D. T/ J* r7 ]; N}3 Q2 w# r  ]1 P
    : t  K4 p3 Q! N9 T2 [; P" V

    0 {$ c0 l, x4 C; D6 D) Q" O& @* l8 Z) g  u3 Z- J; M" G! H" i
    2 p4 b4 l( r: x/ }
    3 j3 b& y- ]# g% }5 U4 Q8 I- ~1 V

    . H- m) A, U$ |; n9 q
    1 T& Q1 X8 F' P2 h& _

    , p3 c0 z1 T/ h
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-7 11:31 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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