前些日子,做而论道发表了“双机(51单片机)串行通信最基本的方法”博文。
网址:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/b738c5d010b2ce349a5027ee.html
后来,有些网友来电询问关于修改、调试方面的一些问题,为此,做而论道将就利用 PROTEUS 软件进行仿真调试的方法再作一简单的介绍。

进行串行通信,一般应该有两个计算机,两个程序,利用一条串行通信电缆,互相“全双工”的传送信息。
互相通信的这两个程序,应该有一个是成熟的程序,而另一个可以是有待调整、修改的。

利用 PROTEUS 软件,问题就简单多了,不用去找两台计算机和成熟的程序。PROTEUS 软件中,含有多种虚拟仪器,有一个可以模拟完善的串行通信设备,可以和我们编写的、待调整的程序进行全双工的通信。
这个设备就是:Virtual Terminal,中文应该叫做:虚拟终端。

其实,用两个 Virtual Terminal,连接上线路,它们就可以通信了。请看下图:

利用 PROTEUS 软件调试串口通信最简单实用的方法 - 非著名博主 - 电子信息角落

图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/2b2330cf2f24ef4093457e9a.html
这是个最简单的“单工”串行通信系统,在这个系统里面并不需要单片机,不用装载程序。
把它运行起来,就会弹出两个对话窗口,在左边的,只能键入不能显示,键入的字符,将会传输的右边窗口中,在右边显示出来。
大家可以自己试试看,很简单的。可以双击 Virtual Terminal,在弹出的对话框中设置通信参数。

当理解了 Virtual Terminal 的一般应用之后,就可以把单片机,加入到通信系统中了。
见下图:

利用 PROTEUS 软件调试串口通信最简单实用的方法 - 非著名博主 - 电子信息角落

图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/2b2330cf2f24ef4093457e9a.html#IMG=50c3740094519495267fb59b
为了清晰起见,在图中,仍然使用了“单工”的形式。

上面的 Virtual Terminal,是向单片机输送数据的,当键入'A',单片机将会显示出来字符的 ASCII 码 41。注意,这是以 16 进制显示的。大家可以胡乱敲键,看看它们的 ASCII 码都是什么!
在单片机一方,按下“发送”按键,将会把拨码开关输入的二进制数字,发送到下面的 Virtual Terminal 中,图中把 39 显示成了 9,能看出来是怎么回事吗?

图中的单片机,里面应该载入程序,其源代码如下:
;----------------------------------------
    ORG 0000H
    SJMP START
    ORG 0003H
    LJMP INT0_INT
    ORG 0023H
    LJMP UART_INT
;----------------------------------------
START:
    MOV SP, #60H
    MOV SCON,#50H   ;方式1, 8-n-1
    MOV TMOD,#20H
    MOV TH1, #0FDH ;波特率设置
    MOV TL1, #0FDH ;
    SETB TR1
    SETB IT0         ;P3.2下降沿触发中断
    SETB EX0
    SETB ES          ;开放中断
    SETB EA

    SJMP $
;----------------------------------------
INT0_INT:
    MOV P2, #0FFH
    MOV A, P2       ;读出的拨码开关信息
    MOV SBUF, A     ;向串口发送
    RETI
;----------------------------------------
UART_INT:
    JB   TI, _FA_
    MOV A, SBUF    ;读出串口收到的信息
    MOV P0, A       ;送到P0口进行显示
    CLR RI
    RETI
;--------------------
_FA_:
    CLR TI
    RETI
;----------------------------------------
   END
;----------------------------------------
呵呵,注意到了吗?这程序是和前述博文的程序是完全相同的。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐