找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1620|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机双机通信系统练习

[复制链接]
跳转到指定楼层
楼主
  1. #include "reg51.h"
  2. #define  u8 unsigned char
  3. bit busy;

  4. /*----------------------------
  5. //1、串口初始化——9600波特率
  6. ----------------------------*/
  7. void UartInit(void)                //9600bps@11.0592MHz
  8. {        
  9.         SCON = 0x50;                //8位数据
  10.         TMOD = 0x20;                //设定定时器1为8位自动重装方式
  11.         TL1 = 0xFD;                //设定定时初值
  12.         TH1 = 0xFD;                //设定定时器重装值
  13.         ET1 = 0;                //禁止定时器1中断
  14.         TR1 = 1;                //启动定时器1
  15.         ES=1;                        //串行口中断允许
  16.         EA=1;

  17. }
  18. /*----------------------------
  19. 2、发送串口数据
  20. ----------------------------*/
  21. void SendData(u8 dat)
  22. {
  23.     SBUF = dat;                 //写数据到UART数据寄存器
  24.         while(!TI);                                        //等待TI发送完
  25.         TI=0;
  26. }


  27. /*----------------------------
  28. UART 中断服务程序  
  29. -----------------------------*/
  30. void Uart() interrupt 4
  31. {
  32.         
  33.     if (RI)          //串口接收中断
  34.     {
  35.                
  36.                 P2=SBUF;                        //通过串口接收外部发送的字符
  37.                 RI = 0;                 //清除RI位               
  38.     }else
  39.         {
  40.                 TI=0;        //串口发送中断
  41.                
  42.         }
  43. }

  44. void main(void)
  45. {
  46.         UartInit();
  47.          while(1)
  48.         {
  49.            SendData(P1);                //发送串口数据
  50.         }

  51. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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