找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
ID:1001397 发表于 2022-1-11 21:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家

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

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

使用道具 举报

沙发
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
回复

使用道具 举报

5#
ID:878761 发表于 2022-1-13 16:37 来自触屏版 | 只看该作者
3、上位机发类似LED1,swich判断接收数组的第四位
回复

使用道具 举报

6#
ID:53813 发表于 2022-1-21 15:21 | 只看该作者
正好适合我练手,汇编可以吗? 如果可以的话,我再回复接下来的内容
回复

使用道具 举报

7#
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 单片机教程网

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