东方华威汽车电子技术论坛 汽车电子技术论坛 |汽车电子技术论坛|汽车电子论坛|汽车技术论坛|汽车维修技术论坛|汽车维修论坛|汽车检测仪器|汽车解码器|里程表调校设备|防盗钥匙匹配设备|气囊电脑修  防盗匹配  气囊数据恢复  音响解码   电脑板维修  电脑解码

 找回密码
 立即注册
查看: 330|回复: 1

串行通信-C语编写 供参考

[复制链接]
发表于 2020-3-15 14:36:21 | 显示全部楼层 |阅读模式
  1. /**************************************************************************************
  2. 实验现象:下载程序后打开串口调试助手,将波特率设置为4800,选择发送的数据就可以显示
  3.                   
  4. 接线说明:
  5.                   
  6. 注意事项:                                                                                                                                                               

  7.   
  8. ***************************************************************************************/

  9. #include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器

  10. typedef unsigned int u16;          //对数据类型进行声明定义
  11. typedef unsigned char u8;


  12. /*******************************************************************************
  13. * 函数名         :UsartInit()
  14. * 函数功能                   :设置串口
  15. * 输入           : 无
  16. * 输出                  : 无
  17. *******************************************************************************/
  18. void UsartInit()
  19. {
  20.         SCON=0X50;                        //设置为工作方式1
  21.         TMOD=0X20;                        //设置计数器工作方式2
  22.         PCON=0X80;                        //波特率加倍
  23.         TH1=0XF3;                                //计数器初始值设置,注意波特率是4800的
  24.         TL1=0XF3;
  25.         ES=1;                                                //打开接收中断
  26.         EA=1;                                                //打开总中断
  27.         TR1=1;                                        //打开计数器
  28. }

  29. /*******************************************************************************
  30. * 函 数 名       : main
  31. * 函数功能                 : 主函数
  32. * 输    入       : 无
  33. * 输    出             : 无
  34. *******************************************************************************/
  35. void main()
  36. {       
  37.         UsartInit();  //        串口初始化
  38.         while(1);               
  39. }

  40. /*******************************************************************************
  41. * 函数名         : Usart() interrupt 4
  42. * 函数功能                  : 串口通信中断函数
  43. * 输入           : 无
  44. * 输出                  : 无
  45. *******************************************************************************/
  46. void Usart() interrupt 4
  47. {
  48.         u8 receiveData;

  49.         receiveData=SBUF;//出去接收到的数据
  50.         RI = 0;//清除接收中断标志位
  51.         SBUF=receiveData;//将接收到的数据放入到发送寄存器
  52.         while(!TI);                         //等待发送数据完成
  53.         TI=0;                                                 //清除发送完成标志位
  54. }
复制代码
回复

使用道具 举报

发表于 2020-4-10 10:07:07 | 显示全部楼层
高手太多了,也太专业了
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|东方华威汽车电子 ( 吉ICP备15003515号-1

GMT+8, 2020-6-2 03:42 , Processed in 0.970982 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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