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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    C51通用串口收发数据C语言程序模块实例
    ' m& F! X# z+ Y. h0 A  e! Q* a6 {% x- t

    4 s8 @& K$ \9 O* J/ S0 ?2 j. Q
    #include <reg52.h>        //C51通用串口收发数据C语言程序模块 & I" y- o) i7 l  i$ L
    #define  uchar unsigned char
    2 [. S( D9 ~1 k3 w2 X4 G  k7 H: v#define uint unsigned int. B2 o/ M& x9 e$ I2 }
    uchar shu;* p0 @7 @- l6 F

    / o7 I; u5 n. }3 s: M/ d8 Qbit i;
    ) B0 c- w# Z7 o  u1 {sbit  led1=P0^0;5 F% z* u' ^$ F7 {
    void  delayms(uint xms)         //1ms;5 i+ G$ Y- ^9 a6 s. s. A
    {! f5 @8 `# `0 {: l
       uint i,j;( {, ]6 V4 d- `* S# s- I" K
       for(i=xms;i>0;i--)
    - E$ r* F- J3 ?/ m, _8 Q% [% W       for(j=110;j>0;j--) ;1 [2 j7 _: r/ o+ V2 L
    % g" r- D  H6 V* D
    5 q1 C! f+ h  |0 g
    }
    ( N& m* z2 H& }( w. ]# j/************************************************************************/
    4 M% U" A" k1 t/ qvoid  UART_init(): C0 q" ?- K7 e0 D6 I
    {
    4 [# [* C) T* @! n  TMOD=0X20;//定时器1方式        2$ H# h) @6 C4 l; O. V
      SCON=0X50;//K串口方式         
    6 q% \& y& s- X$ a$ H9 T2 z5 z3 ^. c  TH1=0XFD;
    0 r" K8 m% S0 ?9 ~6 i  TL1=0XFD;: N* J3 y$ S% j* f
      EA=1;- H5 i! W/ @! c! X3 \* l  h; {* l
      ES=1;
    ' }" }+ j3 O* E2 n9 R  D, s  TR1=1;1 ]0 x, |) k* p( ?+ [3 R
    / V' a9 o+ P9 T3 @: U$ X
    }
    ; M% B, [$ a8 n2 u8 @: X- s. J/ U/ P& E8 B! O' V* N* h- E

    5 c7 L6 K9 @7 ?) ~/*********************************
    / {2 K: u& L+ A. J. ?# r+ L函数:void main(void)
    ! a( M- J+ f8 Q- S7 |2 A$ \! t____________________________________: S$ e8 B3 Y3 x! w
    说明:主函数,程序执行从这里开始( m- c5 i% Y) Q4 l- }
    ********************************/
    - T9 J; m) _' A" Nvoid main(void): E& r( a# m0 Y/ A1 p& y4 x9 X) d+ S
    {  S9 l, E) o8 F1 C; g) w/ {4 t* ^

    5 r; n; P( L- I" d. A. u# {   UART_init();
    # w( I* {! y  X2 Y   while(1 ) ;- j9 H9 Z0 ]+ y& W6 l
               6 |; ]) L9 f6 j
    }
    8 q7 {9 s& z; X8 a2 p
    ) D# S/ A4 w" q' H+ V5 \' E/*********************************# L2 p" w7 N! B  _- y5 h
    函数:void Inter()         interrunpt 46 S) L8 |3 w3 w
    ____________________________________( x& w3 c; S" k0 O! s
    说明:串口中断处理程序
    " f* F" Q; k; b+ M6 v6 }********************************/1 n( |' k4 o: |, I- V
    void Inter() interrupt 4
    % ~& R5 ]# a) P7 F+ `{$ A: p7 |4 K0 |+ X
       uchar i=0;+ Q! l9 {& C4 U
      if(RI)        //判断是否接收完毕
    ; a% a0 A6 U3 o1 [  |  {% I; r0 x# K& B0 q
        RI=0; //是则RI清零,准备下一次接收
    8 d' C4 k1 o+ i0 b& S        shu=SBUF;
    . [9 ]; k. w+ @$ a! O        SBUF=shu;
    8 S5 s0 t# [3 |7 Z5 G) R$ U  @6 b! R   }/ G9 L6 ^8 W: A: e) k) ]* x2 a
       if(TI) //发送数据回去
    9 j8 i* @$ g7 K: F4 }   {; ~# K8 t4 v5 J1 e/ i6 r( W
                 TI=0;
    . b+ C; K6 z" o/ r6 E: @: Z" Q   }! k9 P/ n# G; m' r% v
       if(shu== 0x30)   //判断接收到的数据, 并作出相应处理
    / ^' g' w% r5 ^1 R6 G        {
    2 o7 t, X3 H" h) I& f; B  t* `8 N/ r/ @                 
    2 z, O; C4 K" N  N0 o# m( h% s          led1=1;//LED灯灭
    7 [4 W% f0 s3 u" Q- V' M$ Q         }9 c/ R0 j( R' c- E& k5 ^4 E
       if(shu == 0x31)        //判断接收到的数据, 并作出相应处理
    7 D7 q: u1 k7 F8 v7 @) X5 B; Z# J        {' i& Y7 H. C1 E) t7 f" h0 i
              led1=0;1 g9 C6 y0 q+ p/ T6 z3 g
            }1 E5 ^" k# d4 I
            3 s7 Y1 e* p$ @! h
             if(shu== 0x32)   //判断接收到的数据, 并作出相应处理
    9 k* ~8 X4 R# g  D: |" j( K5 m0 h2 l        {
    0 G7 d4 a6 p; m- R  a           for(i=0;i<10;i++)% n: m% n, q: \- n* K- p; c
              {7 T3 \" d6 u9 s, G$ y
               led1=~led1;
    ( N* p1 o2 |& m5 L) k5 F           delayms(200);0 A4 G. o: r5 g5 O
              }. f  h* u0 u( P% V4 J+ E% _
              3 Q; L, {7 ?3 z' s) N
            }  x4 J, s. l9 f% t; a& ^+ I  I. V. ?
    8 {4 @: ]# |) Q5 f2 o4 B! {; c
    }! ~. x2 {; n4 B
    4 Z" z  G8 ~$ i/ J: U

    9 H( Y- }7 z: B* n  r8 c* m
    ) U5 a. q2 D; i6 u0 V& L7 u. c& K9 S, {* Q
    - S$ e' F/ I: H* g$ n7 R4 y9 v
    : a: B3 {4 b5 }

    $ C. E9 S( a& B8 f  [6 D6 n# T2 d3 \! G" `2 ^4 D3 `$ g
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-8 19:43 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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