完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
原料:keil、仿真软件、虚拟串口工具(群文件里的tools)vspdctl.dll记得覆盖
说明:串口中断允许位ES=1时,单片机一接收到数据或者发送数据就会进入串口中断函数(我认为是因为SBUF一有动静,便会触发到中断),所以单片机发送数据给上位机的时候,为了避免数据丢失,建议关闭串口中断ES=0。(这里看不懂,建议看完整篇文章,再回来看,应该看得懂了) 不要着急着操作,先粗略学习一下相关代码。在文章后面会给出详细步骤和遇到的问题与其解决方案。 画图 最简单的串口通信代码 *难解释。没了解单片机内部怎么运行,可能看不懂 * #include 《reg52.h》 #include 《stdio.h》 ***it led=P1^0; void initUart()//最最最基本的 *串口通信初始化* 要熟记 { //首先来个定时器1工作方式2//0010 0000 TMOD = 0x20; TH1 = 0xfd;//波特率9600/晶振11.0592Mhz TL1 = 0xfd; TR1=1; //串口工作方式1为最常用0101 0000 SCON=0x50; //打开总中断 EA=1; //允许串口中断 ES=1; } void main() { initUart(); led=0; while(1); } //这里解释一下TI和RI: /*TI为发送中断标志位, TI=0时开始传送数据, 知道TI=1时结束,当TI一 直为1时就没法传送数据。 同样,RI为接收中断标志位,RI=0开始接收,RI=1接收完毕,不清零无法继续接收, 左移在下面的在中断要手动清零,让单片机可以开始接收下一次的数据*/ void intt() interrupt 4 { if(RI==1)//接收数据完毕 { SBUF=‘1’; led=~led; RI=0; } } 代码效果:电脑发送数据给单片机,单片机的SBUF接收到之后,触发了中断,中断函数开始工作,RI=1是因为SBUF接收完数据了,然后SBUF=‘1’,是将字符1传给SBUF,然后由SBUF发送给电脑,此时电脑收到1;led=~led:仿真软件里面的LED的在闪。 定时器的初始化知识就先不说了,有机会再说。记吧记吧记吧。 1、 不要将串口工作方式和定时器工作方式搞混了。 2、 为什么选择定时器1的工作方式2呢? 答:因为工作方式2有自动重装初值的功能,避免了通过程序反复装入初值而引起的定时误差,使得波特率更稳定。 3、 定时器与波特率有关。所以串口初始化一定要有定时器的存在,否则波特率都没有,怎么收发数据? 这里可以先硬性记一下定时器的初值TL1=0xfd,TH1=0xfd,对应的波特率是9600,要记住是因为这将是我们最常用的。 4、什么是SBUF? SBUF通俗点说就是一个数据缓冲区,可接受数据,也可发送数据。 比如上面的SBUF=‘1’,就是把字符‘1’存到SBUF中,然后由单片机发给其他终端,比如我的电脑是接收方,则收到了数据1。 虚拟串口 链接:虚拟串口工具 提取码:lj9t 打开虚拟串口工具,打开里面的vspd7.2.308.zip,然后一路next、next、next。安装完之后,记的把另一个不起眼的文件(vspdctl.dll)复制到安装目录下,覆盖原来的 打开就这个样(可能win10直接双击快捷方式打不开,右键管理员打开即可): 点击添加虚拟串口后会产生两个COM,第一个用于串口工具,第二个用于单片机,比如我的虚拟串口是com1和com2,然后com1在串口工具那里选择,com2则在单片机的RS232那里选择 具体操作 1画好线路图 2将c代码用keil生成hex文件 3在仿真软件里双击串口接口,设置好波特率为9600,设置好你电脑对应的第二个虚拟COM号 4打开电脑的串口工具sscom5.13.1.exe 选择串口(你电脑对应的第一个虚拟COM号) 5用串口工具发送数据 6此时你会发现单片机返回给串口工具的是一些乱码 7那我们去改一下晶振,也就是晶振频率:双击单片机,讲12改为11.0592 8重新来一遍发送数据,此时返回就正常了 |
|
|
|
只有小组成员才能发言,加入小组>>
2628 浏览 0 评论
834浏览 1评论
293浏览 1评论
608浏览 0评论
335浏览 0评论
555浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-23 17:37 , Processed in 1.530643 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191