[活动专区] 【赛元95F】之二:UART0

[复制链接]
927|1
 楼主| lisingch 发表于 2020-4-1 20:00 | 显示全部楼层 |阅读模式
UART0, TE, AC, ST, TI
      串口通信模块在应用中比较重要,尤其是在调试程序时也是非常方便。本次实验即利用SC95F8617的全双工串行口UART0进行数据的收、发,是比较简单的一个小实验。主要目的是熟悉SC95F8617开发流程,并为后期实验建立一个串口调试平台。
一、实验资源
1、SC95F8617 demo板;
2、SC-LINK;
3、Keil C51 V9.60;
4、串口模块;
5、SSCOM V5.13.1串口高度助手

二、相关资源简介
2020-04-01_193904.png
2020-04-01_194122.png

SC95F8617的全双工串行口与传统51应该是一样的,利用以前学习过51的知识很容易上手。要注意的是在用定时器1作为波特率发生器时,定时器1必须停止计数,即TR1 = 0。

三、程序实现
程序中用定时器1作为波特率发生器,并使能了收、发中断。
  1. <p>/**************************************.
  2. 使用TIMER1做为波特率发生器,Fsys = 32MHz; 波特率=115200;
  3. 用定时器2作为波特率发生器:BaudRate = Fsys / [TH1,TL1]
  4. (注意:[TH1,TL1] 必须大于0x0010)  
  5. **************************************/
  6. void Uart0_Config(void)   
  7. {
  8. P2CON &= 0xFC;    //RX(P20)、TX(P21)均配置为带上拉输入
  9. P2PH  |= 0x03;    //打开上拉电阻

  10. SCON  |= 0X50;    //模式1,10位全双工异步通信,由1个起始位,8个数据位和1个
  11.           //停止位组成,通信波特率可变,允许接收。
  12. TMCON |= 0X02;
  13. TH1 = (32000000 / 115200) / 256;   //波特率为T1的溢出时间;
  14. TL1 = (32000000 / 115200) % 256;
  15. TR1 = 0;     //TIMER1作波特率发生器,TIMER1停止计数,TR1=0
  16. ET1 = 0;
  17. EUART = 1;       //串口中断使能
  18. EA = 1;      //打开总中断
  19. }</p><p>
  20. void Uart0_SendByte(unsigned char Byte)//发送一个字节
  21. {
  22. SBUF = Byte;
  23. while(!TI);
  24. TI = 0;
  25. }</p><p>void Uart0_SendStr(unsigned char *str)//发送一个字符串
  26. {
  27. while(*str != '\0')// \0 表示字符串结束标志,通过检测是否字符串末尾
  28. {
  29.   Uart0_SendByte(*str);
  30.   str++;
  31. }
  32. }</p><p>
  33. void Uart0_INT(void) interrupt 4
  34. {
  35. unsigned char Receive_temp;
  36. if(TI)
  37. {
  38.   TI = 0;  
  39. }
  40. if(RI)
  41. {
  42.   RI = 0;
  43.   Receive_temp = SBUF;
  44.   SBUF = Receive_temp;
  45. }
  46. }
  47. </p><p> 主程序</p><p>void main(void)
  48. {
  49. Uart0_Config();
  50. Uart0_SendStr("SC95F8617 UART0 TEST");

  51. while(1)
  52. {
  53.   
  54. }
  55. }</p>

程序编译后还要对一些参数进行配置:
2020-04-01_195438.png

四、实验结果
2020-03-30_232637.png

五、总结
      通过本次的小实验对SC95F8617的操作过程有了明确的认知,串口程序的正常运行也为下一步进行其它实验创造了条件。
598330983 发表于 2020-4-5 19:16 | 显示全部楼层
串扣很好用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

15007

帖子

19

粉丝
快速回复 在线客服 返回列表 返回顶部