标题: STC单片机UART串口查寻方式程序实例源程序 [打印本页]

作者: piaolang    时间: 2018-3-31 10:39
标题: STC单片机UART串口查寻方式程序实例源程序
  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. /**********************************************************************************************/
复制代码



作者: piaolang    时间: 2018-3-31 10:40
二楼单片机程序附上

串口收发实验.rar

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






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1