串口数据传输的本质是传输ascii码,比如8位二进制数据,其ascii码值(十进制)为0-255。用二进制表示为00000000-1111111。
十六进制表示为00-ff。
如果传输的数据大于255,则为16位二进制(即2字节ascii码)。十进制范围-32768到32767。
如果有小数,要经过上下位机同意,不允许串行传输。
我们必须高度重视串行通信中的数制转换。
以上是以二进制发送和接收数据。
也可以用ascii码直接以文本形式发送数据,但是字节量大。
串行通信一次只传输一位二进制数据,从发送方到接收方只需要一条传输线。
1.首先,我们打开indows下的虚拟串口软件。这里选择的连接串行端口是串行端口4和串行端口2。
2.设置完成后,右键单击windows并选择打开设备管理器。
3.在设备管理器的端口选项中看到设置串口2和4,两个设置的串口已经连接,说明两个串口之间可以进行通信。
4.在windows中找到proteus仿真软件,打开。双击工具栏中的单片机,打开51单片机的属性选项。
5.在调试程序中,选择刚刚编写的串行调试程序。调试程序是一个以十六进制后缀结尾的二进制文件。注意设置晶振,11.0592mhz。
6.双击串口控件,设置窗口的串口号和波特率。物理点是com4,物理波特率是9600,物理数据位数是8,物理容量是0,重要波特率是9600,重要数据位数是8,高级属性是0。如果你不我不明白其他的选择,你最好不要修改它们。
7.配置完成后,点击proteus左下角的仿真按钮,也就是左下角的播放符号。此时虚拟中断已经成功启动,虚拟终端可能默认以文本打开,右侧按钮显示为hex16。
8.打开sscom串口软件,显示窗口中设置的波特率,打开串口2,以十六进制发送数据。可以看到,虚拟终端和串口软件都收到了发送和返回的信息。