找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC单片机UART串口查寻方式程序实例源程序

[复制链接]
跳转到指定楼层
楼主
ID:299794 发表于 2018-3-31 10:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  STC 单片机串口收发试验程序

单片机源程序如下:
  1. /*********************************************************************************************
  2. 程序名:    UART串口查寻方式程序实例
  3. 编写人:    杜洋 
  4. 硬件支持:  STC12C2052AD 外部12MHZ晶振
  5. 接口说明:  连接串口ISP下载线  
  6. 修改日志:  
  7.   NO.1-                                                               
  8. /*********************************************************************************************
  9. 说明:
  10. 用Windows系统中的“超级终端”软件,将串口端设置 [ 4800,8,无,1,无 ]
  11. 或采用STC-ISP软件中的串口助手功能,将串口端设置 [ 4800,8,无,1,无 ]

  12. 向串口发送数据,单片机将数据发还给PC端并显示。

  13. /*********************************************************************************************/

  14. #include <REG51.h> //51头文件

  15. /*********************************************************************************************
  16. 函数名:UART串口初始化函数
  17. 调  用:UART_init();
  18. 参  数:无
  19. 返回值:无
  20. 结  果:启动UART串口接收中断,允许串口接收,启动T/C1产生波特率(占用)
  21. 备  注:振荡晶体为12MHz,PC串口端设置 [ 4800,8,无,1,无 ]
  22. /**********************************************************************************************/
  23. void UART_init (void){
  24.         //EA = 1; //允许总中断(如不使用中断,可用//屏蔽)
  25.         //ES = 1; //允许UART串口的中断

  26.         TMOD = 0x20;        //定时器T/C1工作方式2
  27.         SCON = 0x50;        //串口工作方式1,允许串口接收(SCON = 0x40 时禁止串口接收)
  28.         TH1 = 0xF3;        //定时器初值高8位设置
  29.         TL1 = 0xF3;        //定时器初值低8位设置
  30.         PCON = 0x80;        //波特率倍频(屏蔽本句波特率为2400)
  31.         TR1 = 1;        //定时器启动   
  32. }
  33. /**********************************************************************************************/

  34. /*********************************************************************************************
  35. 函数名:主函数
  36. 调  用:无
  37. 参  数:无
  38. 返回值:无
  39. 结  果:程序开始处,无限循环
  40. 备  注:
  41. /**********************************************************************************************/
  42. void main (void){
  43.         unsigned char UART_data; //定义串口接收数据变量
  44.         UART_init();
  45.         while(1){
  46.                 if (RI == 1){                //接收中断标志位为1时
  47.                         UART_data = SBUF;        //接收数据 SBUF 为单片机的接收发送缓冲寄存器
  48.                         RI = 0;                        //令接收中断标志位为0(软件清零)

  49.                         SBUF = UART_data;        //将接收的数据发送回去(删除//即生效)
  50.                         while(TI == 0);        //检查发送中断标志位
  51.                         TI = 0;                //令发送中断标志位为0(软件清零)
  52.                 }
  53.         }
  54. }
  55. /**********************************************************************************************/
复制代码


评分

参与人数 1黑币 +55 收起 理由
admin + 55 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:299794 发表于 2018-3-31 10:40 | 只看该作者
二楼单片机程序附上

串口收发实验.rar

9.79 KB, 下载次数: 15, 下载积分: 黑币 -5

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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