设置异步发送模式,建议遵循以下操作步骤。
1)选择合适的波特率和BRGH,对SPBRG寄存器进行初始化。
2)将SYNC位清零、SPEN位置1,使能异步串行端口。
3)若需要中断,将TXIE、GIE和PEIE位置1。
4)若需要发送9位数据,TX9位置1。
5)将TXEN位置1,使能发送,这也将自动置位TXIF位。
6)若选择发送9位数据,第9位数据应该放在TX9D中。
7)把数据送入TXREG寄存器(自动启动发送)。
8)当程序判断TXIF或TRMT为1时,说明发送完毕。
9)重复执行前两步即可发送多个字节数据。
下面通过一个简单的例子来演示如何使用USART发送一个字节数据。
【例9-2】电路图如图9-8所示。单片机主频是4MHz。编程实现控制单片机在USART异步通信模式下以9600bit/s的波特率循环发送字符'A'。
电路图在光盘位置:“\Example\Chapter9\S092\uartsend.DSN”。
(www.daowen.com)
图9-8 USART异步通信实验电路图
题意分析
●在图9-8中,VT1是Proteus ISIS软件提供的虚拟仪器—虚拟终端,它与Windows操作系统中的超级终端功能类似,能够与ISIS中的模拟单片机系统进行异步串行通信,会以字符形式(用个人计算机的显示器)接收或(用个人计算机的键盘)发送符合RS-232协议的异步串行数据,便于观察程序运行结果,在没有显示设备的系统中通常用做调试信息的输出通道。
●图9-8仅仅是用来在单片机和ISIS中的虚拟终端通信的电路图。在实际应用中,单片机跟不同系统使用USART通信,其连接方式也有所不同。
●请读者注意单片机与虚拟终端的连接方式。单片机的TX引脚应该与虚拟终端的RXD引脚相连。
设计过程
1)新建一个MPLAB项目S092,语言工具选择为“HI-TECH Universal Toolsuite”,保存在“C:\S092”文件夹下。
2)向项目中加入一个新建的main.c文件,输入以下内容(本项目所有内容参考光盘“\Example\Chapter9\S092”文件夹内容)。
3)把项目保存后成功编译出目标文件。然后用调试工具Proteus VSM加载uartsend.DSN来运行程序。程序运行后会弹出一个虚拟终端窗口并会显示迅速地输出多个字符'A',如图9-9所示。这是因为程序是死循环不停地通过USART向外发送字符'A',虚拟终端VT1收到后就直接显示在其窗口中了。
图9-9 虚拟终端运行时截图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。