找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1391|回复: 6
收起左侧

单片机串口通信程序 求指导思路

[复制链接]
ID:1001397 发表于 2022-1-11 21:40 | 显示全部楼层 |阅读模式
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家

(1)使用串口通讯,每秒向计算机发送一次数据,数据内容为发送次数(第一次发送1,隔一秒第二次发送2……)
(2)使用串口通信,计算机向单片机发送任意数据,单片机返回原数据
(3)用自己的方式串口通讯控制8盏灯亮灭

回复

使用道具 举报

ID:744809 发表于 2022-1-12 16:36 | 显示全部楼层
串口初始化、注意波特率、停止位这些参数要与串口助手一致。使用中断接收指令,再在while循环中对指令做响应
回复

使用道具 举报

ID:878761 发表于 2022-1-13 16:31 来自手机 | 显示全部楼层
1、用定时器0产生一个1ms的中断,计数到1000发一次数据
回复

使用道具 举报

ID:878761 发表于 2022-1-13 16:34 来自手机 | 显示全部楼层
2、每收到一个字节,倒计时赋值5ms,每1ms倒计时减1,等于0时把收到的数据放到发送sbuf
回复

使用道具 举报

ID:878761 发表于 2022-1-13 16:37 来自手机 | 显示全部楼层
3、上位机发类似LED1,swich判断接收数组的第四位
回复

使用道具 举报

ID:53813 发表于 2022-1-21 15:21 | 显示全部楼层
正好适合我练手,汇编可以吗? 如果可以的话,我再回复接下来的内容
回复

使用道具 举报

ID:514254 发表于 2022-2-7 19:01 | 显示全部楼层
建议直接用C吧,相对比较好理解
1、可以参考发送子程序
  1. /**************************************************
  2. 发送数据子函数
  3. 入口参数:类型unsigned char,TXD_data为要发送的数据
  4. 出口参数:无
  5. ***************************************************/
  6. void TXD_CHAR(unsigned char TXD_data)
  7. {
  8.     SBUF = TXD_data;        //发送数据
  9.     while(!TI);                        //等待数据输出完毕
  10.     TI = 0;                                //发送完毕,清中断标志
  11. }
复制代码

2、可以参考接收子程序
  1. /**************************************************
  2. 接收数据中断服务子函数
  3. ***************************************************/
  4. void RXD_CHAR() interrupt 4
  5. {
  6.     unsigned char RXD_data;
  7.     if(RI==1) {                                //判断串行接收中断
  8.         RXD_data = SBUF;        //读取数据
  9.         P0 = RXD_data;                 //显示所读取的数据
  10.         RI = 0;                                //接收完毕,清中断标志
  11.     }                               
  12. }
复制代码

3、同2,不过需要考虑如何产生波特率、开中断等。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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