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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    C51通用串口收发数据C语言程序模块实例2 G1 L9 E* Z6 Y; D) ?
    1 B- o* g3 z( p+ m
    / I' e. G% C* U% L* H; u4 D
    #include <reg52.h>        //C51通用串口收发数据C语言程序模块 $ @" u- o: N7 t0 l) G- F6 t: Q8 g
    #define  uchar unsigned char  S9 f% d6 Q2 r4 l, p
    #define uint unsigned int  O% e! u$ Z7 w! S4 R" |
    uchar shu;
    & {& t3 y  n8 x- }; C7 o, f  W
    ( }4 _$ ~% q  m6 i% p8 j2 N8 nbit i;" h5 m0 w7 E2 r" ]. e
    sbit  led1=P0^0;
    . Y& C! N+ r+ T$ jvoid  delayms(uint xms)         //1ms;+ c6 K+ t1 x7 [% Z. \
    {1 A4 a) }- N& b
       uint i,j;
    2 l* l4 o1 O9 o1 {2 E   for(i=xms;i>0;i--)8 e/ d0 s' Z+ J) \5 p
           for(j=110;j>0;j--) ;
    3 q2 B1 k3 q- I( K2 _# l+ e- U- K7 ]& i: T6 W3 I$ t

    ( j( n& B* X$ D; q: |) `}; Q9 J3 K( M6 Z+ ]
    /************************************************************************/
    0 O4 _4 j, b" `& M7 M- Nvoid  UART_init()
    ! |( m0 D  \- x( i: W6 `{" I: G& ~- U9 c; N' |
      TMOD=0X20;//定时器1方式        2
    " z2 P/ P( r# Z1 O; l% |- g  SCON=0X50;//K串口方式          8 E% I% y/ C- f1 T2 i1 r& H! ]' z
      TH1=0XFD;
    9 j' _7 W9 G8 I8 `3 {. t7 R3 Y5 D2 d  TL1=0XFD;
    7 F. l1 q( l( i- N. m5 h, J  EA=1;
    # F9 V/ p! _) |& O' |  ES=1;
    , s8 J( I2 K4 c) o" A3 ]- K" a% \  TR1=1;5 f8 X# ~( T. K% w
    % C6 o; z% b% k  w7 b9 Z
    }- @% E1 o  T  P9 K) I$ M
    6 Q% ~, _! \* \* _2 m0 X, u6 G* E

    + x* {( t: w6 r9 @! J' b- _* R% Y/*********************************
    4 y/ m4 u6 p9 j' Y5 Q( s函数:void main(void)6 @: h' s. [: g! q8 z$ s
    ____________________________________
    $ j$ E3 _- a) T9 ^% O# S8 H说明:主函数,程序执行从这里开始
    $ m. A* i' M- l+ i! P  o4 X********************************/9 s1 B1 E# F" d1 n- B
    void main(void)+ E- t7 a* g+ I7 K+ b
    {
    2 @1 M2 N6 R5 i7 s# H" A
    + n8 z/ W5 c! j; B& v+ f- r, R   UART_init();
    6 S0 ^+ h" E- B* O( S8 r3 ^& ~   while(1 ) ;
    : \# s3 z' ]7 q- f0 @           ) O6 |9 a1 c4 ~8 e# B
    }
    - k. V* P8 v3 f  ]- Z- Y6 o# k% E! F3 v' y4 t4 J1 |3 ~
    /*********************************
    & X7 [* l& f: C# J  X' t, ~3 [函数:void Inter()         interrunpt 4
    % }, a5 B/ C/ e7 I% V, n' l% T____________________________________
    1 C1 K8 V2 k$ \+ U$ p, w说明:串口中断处理程序
    ' D$ x" K! y* J% G4 m3 ?* U& l********************************/- n7 [% J: Z6 v) E5 u& n! y
    void Inter() interrupt 4
    + M, J8 p/ F' d{
      o3 D. a; f) b   uchar i=0;& [0 B4 Q+ v; s5 Q
      if(RI)        //判断是否接收完毕
    1 s* K0 j9 j+ s0 M  {
    ! M6 S1 g5 T' o    RI=0; //是则RI清零,准备下一次接收
    # L. |) j; j& w        shu=SBUF;
    5 _. D. E9 L5 N5 f" H- k        SBUF=shu; $ u6 ^3 S8 Y  T2 D
       }
    % ~, g  d; D& x& f+ W   if(TI) //发送数据回去
    2 P6 T6 P5 j2 _" |) z4 J   {$ p2 h" b2 Y" c8 q4 ?
                 TI=0;
    - B- `* j! P$ n6 t1 e; p# {   }% C* Z5 ]0 P; h' E0 d; L
       if(shu== 0x30)   //判断接收到的数据, 并作出相应处理, G: C8 F: ?) j# F' q, a: T4 x
            {* K) d5 R( o* }. X
                     . @5 i. p; z3 b' b
              led1=1;//LED灯灭
    ; {* c2 L, v# f7 r$ ^) s6 j         }9 Q! e1 ]* v% K  }# _
       if(shu == 0x31)        //判断接收到的数据, 并作出相应处理; b3 o" w8 \5 o9 w4 K1 O  w
            {
    & k' w4 R# M: P" \2 d: i          led1=0;
    + \# \8 e6 B, o, X        }
    5 D) O& W7 c# J- J        4 x# [) I$ u6 ?; ^3 d
             if(shu== 0x32)   //判断接收到的数据, 并作出相应处理, O1 l8 a8 Z0 U" M8 M' W
            {: `8 O' O7 i- R% ~. H. c! D
               for(i=0;i<10;i++)  P; l2 s& K5 o, M2 G$ g, {  W
              {
    9 R: J4 J9 H% T$ e; }1 l9 o           led1=~led1;1 Q+ q# q- n8 e. ?  K2 u9 [
               delayms(200);- ?; x$ q4 ?! h3 ~) @
              }
    : C+ M2 M9 v1 ]4 e7 `         
    ' Y8 C! P( F. Q& C  s. \5 u! V3 S        }8 A! l6 m$ ~. |* i5 j- W$ _
    : A6 v$ @& i& i  e. H5 c; v
    }- k9 t0 q& J3 q, {
    5 Y; t% O5 ]1 b" e1 c6 u/ x

    - \" E) t9 I, o: r
    : e/ a0 W: l( h" c! ?  h8 ^; v9 ]0 i; e& r
    0 H: n6 o' o1 L7 T# P

      X" U# C5 L" r

      X% @( d; c7 z* ]5 |
    2 f! U8 ^3 m- Y4 Z/ h% {. O
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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