世界上的万事万物都是相互联系的,单片机自然也不例外。事实上,人们一直使用单片机的P3.0(Rxd)和P3.1(Txd)两根引脚,通过内置在单片机内的ISP监控程序,实现与计算机的通信——下载用户程序。
本章要求实现单片机与计算机的通信,就是利用P3.0(Rxd)和P3.1(Txd)两根引脚实现数据传输的,其中P3.0(Rxd)为【接收】脚,实现计算机向单片机的数据传输,P3.1(Txd)为【发送】脚,实现单片机向计算机的数据传输。P3.0(Rxd)和P3.1(Txd)是两根独立引脚,一次只能传输一个“位”,即bit型,因此如果要传输一个字节,则必须传输8次。但传输一个位(bit)的时间是很短的,其速度可用“波特率”来反映。所谓波特率,简单说就是1s传输的二进制的位数,因此其数值越高,传输速度越快。请读者查看图6-1,回答常用的波特率有哪些?
注:波特率一般不是任意设定的,有一些常用选择值。
以“9600”为例,表示1s传输9600bit,则1s内可传输的字节数:9600/8=1200。
如前所述,对单片机而言,P3.0(Rxd)用于接收数据,P3.1(Txd)用于发送数据,它们可同时工作。可见,单片机具备了“双向传输”的能力,这其实就是所谓的“双工”。
图6-1 常用波特率示意图
任务要求计算机发送字符,单片机依据接收到的字符做相应处理,同时还要发送一个“字符”给计算机。单片机如何识别“字符”?请读者读图6-2,先有一个感性的认识。STC-ISP软件属于计算机端软件,之前人们已经无数次使用它进行用户程序的烧录。事实上,这个软件还带有其他很多【实用】功能,比如“串口助手”,用户可以使用该助手实现计算机与单片机的通信。有一点必须特别强调:必须设置好相应的串口号,通信双方必须设置相同的波特率、校验方式、停止位等基本设置。
图6-2 STC-ISP串口助手示意图
想一想(www.xing528.com)
1.常见的校验方式有“奇校验”和“偶校验”,所谓奇校验就是数据中“1”的个数与校验位中“1”的个数之和,为奇数个。偶校验则保证和为偶数个。假设某个数据为0x79,分别使用“奇校验”和“偶校验”,请问校验位是什么?
2.我们知道,串行通信的数据是一位一位地传送。发送方首先发送一个【起始位】,接着发送若干个【数据位】(常见的是8位),有些还会接着发送一个【校验位】(如问题1,常采用的是“奇校验”或“偶校验”),最后发送1~2位的【停止位】。据此,并查阅相关网络资料,请读者写出串行通信的数据格式。
3.当使用“文本模式”时,意味着发送或接收到的数据为“ASCII”码形式(详见附录A),请读者写出字符0~9对应的ASCII码,大写字母A~Z的ASCII码,小写字母a~z的ASCII码。
4.能说出‘a’和“a”的区别吗?建议:在编写控制程序时,可以直接使用某个字符对应的ASCII码,也可以使用单引号将这个字符括起来,人们一般选择后者,比如要将字符‘a’给某个变量temp,直接操作temp=‘a’即可,编程软件会自动把‘a’变换成字母‘a’的ASCII码赋值给变量temp。
因此,要完成本章设计任务,必须知道如下几点;
➢串口的基本工作原理、结构、相关寄存器等内容。
➢波特率的概念及其相关计算。
➢字符相关内容。
➢串口助手的使用方法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。