一、试验现象:
当电脑向单片机发送一个数据后,P0口产生灯火改换。
二、试验使命分析:
这个试验咱们依然选用办法1来完结。在上一个试验的通讯理论介绍中,咱们知道,当单片机承受到一帧信号后,会置位串行口承受中止标志RI,然后向单片机请求中止。假如单片机敞开中止,就会进入中止服务程序,咱们就把灯火改变的使命放到中止程序中来完结即可。
当然,这个试验功用的完结不只是这么一种办法。咱们还能够选用在主程序中查询RI的办法来完结。这个试验咱们就分别用这两种办法来现它。相同,在这个试验中,咱们也使用串口调试帮手来完结向单片机发送数据的进程。详细设置办法可见下图:
三、试验程序
1、 中止办法完结
org 0000h
ajmp main
org 0023h ;串行口中止进口地址
ajmp serial ;跳转至中止服务程序
main: clr p1.5
mov p0,#55h ;让8个led从右到左依次为亮、灭(留意跳线jmp0置于12)
mov scon,#50h ;单片机作业于办法1,能够承受数据
mov tmod,#20h ;T1设置为作业办法2
mov tl1,#
mov th1,#
mov pcon,#80h ;smod=1,波特率变成4800
setb tr1 ;发动守时器T1开端守时
setb ea ;cpu敞开中止
setb es ;敞开串行口中止
ajmp $ ;等候中止
serial: clr ea ;cpu封闭中止
clr ri ;铲除串口承受中止标志
mov a,p0
cpl a
mov p0,a ;p0口灯火改变
setb ea ;cpu敞开中止
reti ;回来主程序,等候下一次呼应中止
end
2、 查询办法完结:
org 0000h
ajmp main
main: clr p1.5
mov p0,#55h ;让8个led从右到左依次为亮、灭(留意跳线jmp0置于12)
mov scon,#50h ;单片机作业于办法1,能够承受数据
mov tmod,#20h ;T1设置为作业办法2
mov tl1,#
mov th1,#
mov pcon,#80h ;smod=1,波特率变成4800
setb tr1 ;发动守时器T1开端守时
wait: jnb ri,wait ;假如中止位是0,表明信息没有发送结束,等候
clr ri ;铲除中止位
mov a,p0
cpl a
mov p0,a ;p0口灯火改变
ajmp wait
end
把上面的程序下载到测验板上,然后在串口调试帮手中随意写入一个数据,每一次按下串口调试程序中的手动发送按键,就会发现led的灯火产生改变。