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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    C51通用串口收发数据C语言程序模块实例
    3 L/ ]  F- p7 t- D5 @( G
    " u! S4 N& |  |1 W
    + h/ t5 X2 c" r9 O) N* i
    #include <reg52.h>        //C51通用串口收发数据C语言程序模块
    , S' q. O1 l6 D' }6 [. h#define  uchar unsigned char
    2 i( i  K! r5 s' p3 J4 l) R#define uint unsigned int6 ?5 E! w) _) `# V7 e, ~0 k
    uchar shu;
    0 s, a1 j6 w' X0 m# p3 t
    & w( d* O  s) [* s! i1 F, W/ Vbit i;
    : c0 I/ M( H9 xsbit  led1=P0^0;; k9 |9 N& ~- ~- j$ l% D- C9 J( P
    void  delayms(uint xms)         //1ms;
    6 r" H  ]) N. j6 s& H0 @; g7 b, [{
    $ F9 z0 S' s# `( u   uint i,j;
    ) {8 R; t9 m$ z: D8 z   for(i=xms;i>0;i--)8 @) d- Z# I3 F. e. G
           for(j=110;j>0;j--) ;
    & K7 g0 M, f$ r$ O( A% j/ `# h* H. K( R: h9 J+ C
    ( `4 I0 T; y9 w& ?5 |! V  Q, b# T  f: i
    }; _- }! Z3 C8 t4 K. u1 D
    /************************************************************************/- \" W( o/ y; e% a
    void  UART_init()
    * L( k8 B) ~) X! Q( V) m{9 N7 b+ k6 ?) H7 |5 g6 X+ Y- \8 b! a, `) t
      TMOD=0X20;//定时器1方式        2
    ( j+ E$ _$ w5 h  SCON=0X50;//K串口方式         
    * D! n0 o5 W9 H  TH1=0XFD;$ y: x0 ~: Y- K  K" D
      TL1=0XFD;
    3 R# c* o! V1 i  A4 W1 z. P  EA=1;8 I1 z# E2 G* N1 M" ~
      ES=1;
    9 v/ t/ _$ p( ]2 c" z  TR1=1;8 [. }/ S+ |  Z/ U
    7 r& f+ v: s6 ]( n
    }
    ' N# Y  z/ e2 H# ~3 A( `$ m9 w5 D$ P! v% \: a

    & a# V. [' W' `6 H+ u/*********************************6 U8 f8 @- o' L0 T: i
    函数:void main(void)
    0 n% _% P: V3 Q/ O9 v( j/ M, h# {7 [0 x____________________________________
    : f. h: _, R1 T/ h; H说明:主函数,程序执行从这里开始
    # \, W! t( K- \  H********************************/
    ' ~! U& f4 {% G9 |$ Tvoid main(void): b5 {1 c) ^* ~, P
    {" N7 c, e. ?- k0 D- j
    / y9 [2 R* I5 E% p. q2 L& J% P
       UART_init();
    ' ~+ B! a& i1 W+ ]8 n   while(1 ) ;4 U0 I, H9 M+ v' W0 d  n0 W
               / U" p& B: g, K3 e7 r
    }
    * _0 `  h  n2 B: h
    ( I; E! J; t4 Y7 `( }( Y/*********************************3 J  E3 w7 u5 U* M- h" v/ o* I
    函数:void Inter()         interrunpt 4
    ) |$ A" k5 p( v% q1 M+ e( v' s3 Y____________________________________
    7 x& m7 b1 A1 M9 p  q; z9 b6 U  f. Y说明:串口中断处理程序' @4 u1 R, M) d6 Y) }8 ~
    ********************************/* N' k" ?" Y$ u, L! P6 J* {
    void Inter() interrupt 4# _# R8 c9 o7 \5 \* D% b
    {
    7 j& @# t; Z, A$ Y$ {$ o( a   uchar i=0;
    - w! R# Q8 z- _/ g; ?  if(RI)        //判断是否接收完毕3 p# T2 y& z0 F+ L  ]
      {; e7 o+ M9 N$ L- s. g% ]
        RI=0; //是则RI清零,准备下一次接收
    , e% G7 I& R5 F5 U2 Q        shu=SBUF;
    + t2 m$ l& H* \: ~1 u  f" N        SBUF=shu; . m% J4 D! Q0 D+ e/ P* l
       }
    $ ^8 p/ {3 j1 h6 E5 C) H   if(TI) //发送数据回去
    $ |& q+ d4 y# J& _0 x   {
    4 C/ v, p) ?* j2 e9 c' g; @             TI=0;* L+ {- Y1 S3 _8 n( j9 P
       }
    8 N' |: B' r* d2 M6 K/ o! h   if(shu== 0x30)   //判断接收到的数据, 并作出相应处理3 Q& O3 ^2 X3 k; i
            {% J0 I/ v. L4 F4 U0 t
                     
    . k% [/ Q6 d7 Z2 ?' l- m$ z2 n          led1=1;//LED灯灭
    3 k, |0 O8 R' S. ~) h  v         }, B6 F, J4 b( b- F
       if(shu == 0x31)        //判断接收到的数据, 并作出相应处理) k6 ?+ R0 }4 Y2 h: L2 ]3 N* M9 t
            {
    7 [! x5 ?  g5 G  Z          led1=0;
    / X9 O- G) z- F  m        }7 [  [1 o/ m' ~( s
            
    + G5 s: m! h7 Y% b2 _# C, X         if(shu== 0x32)   //判断接收到的数据, 并作出相应处理
    4 h. T' V1 X) J2 z        {
    " x; g3 W0 h+ w0 G% e, k           for(i=0;i<10;i++)
    . R# k" z0 m. _6 N" x          {
    / q; i4 t' F7 a6 {9 o$ c7 D$ B           led1=~led1;
    : R- l) c5 l. Z1 c2 P0 u4 Z) o  D4 O           delayms(200);* E) t" h$ R8 X( \1 O5 K: Z
              }& p" O  k1 _$ r- U/ t
              $ [2 }4 K$ ]. k
            }
    + p: Q9 E+ C' Z: T3 a
    1 c: P7 }$ k( n) i1 O* \}# X- g2 h$ ^# m4 _# ~2 R2 [0 Y
    + `9 J1 r: l$ n0 W

    2 c3 X! H5 `* X* R! a& Y" j9 ~( Y; ]* g  i
    6 i* f4 t& d0 q7 e4 }
    ' P% T, ]  X0 O2 O  C" i

    ' _8 ]% I, V+ g. V0 v
    ( D* `  t' o6 j# y4 F, `" e2 }8 D
    - W* }9 S. W% E( d
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-29 00:07 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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