耀若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪耀。闪耀若干次后,再切换到东西路口方向。之后重复以上过程。
问题回答:东西方向的红灯是L6和L12。
七、实验源程序
ORG 0BB0H
;制定一个空间 ;保护现场
D0: MOV SP,#60H MOV DPTR,#0FFDBH MOV A,#88H MOVX @DPTR,A MOV DPTR,#0FFD8H
MOV A,#0B6H MOVX @DPTR,A INC DPTR
MOV A,#0DH MOVX @DPTR,A MOV R2,#25H LCALL DELY D3: MOV DPTR,#0FFD8H MOV A,#75H
MOVX @DPTR,A INC DPTR
MOV A,#0DH MOVX @DPTR,A MOV R2,#55H LCALL DELY MOV R7,#05H D1: MOV DPTR,#0FFD8H
MOV A,#0F3H MOVX @DPTR,A INC DPTR
MOV A,#0CH MOVX @DPTR,A MOV R2,#20H LCALL DELY
;写控制字的地址FFDB
;控制字A口输出工作在方式0 C口高4位
输入,C口低4位输出工作在方式0,B口输出
;设置控制字
;101100110点亮6 9 12号灯 ;00001101点亮3号灯 ;点亮4个红灯 ;设定一个延时时间 ;延时
;01110101点亮5 9 11 ;00001101点亮3号灯 ;东西绿灯亮,南北红灯亮 ;设定一个延时时间 ;延时
;设定闪烁次数 ;11110011 点亮9 10 ;1100点亮3 4
;东西黄灯亮,南北红灯亮 ;设定一个延时时间
;延时
-36-
MOV DPTR,#0FFD8H
MOV A,#0F7H MOVX @DPTR,A INC DPTR
MOV A,#0DH MOVX @DPTR,A MOV R2,#20H
LCALL DELY DJNZ R7,D1
MOV DPTR,#0FFD8H MOV A,#0AEH
MOVX @DPTR,A INC DPTR
MOV A,#0BH MOVX @DPTR,A MOV R2,#55H
LCALL DELY MOV R7,#05H D2: MOV DPTR,#0FFD8H
MOV A,#9EH MOVX @DPTR,A INC DPTR
MOV A,#07H MOVX @DPTR,A MOV R2,#20H
LCALL DELY MOV DPTR,#0FFD8H
MOV A,#0BEH MOVX @DPTR,A INC DPTR
MOV A,#07H MOVX @DPTR,A MOV R2,#20H
LCALL DELY DJNZ R7,D2
LJMP D3 ;--------------------------------------------- DELY: PUSH 02H
-37-
;11110111点亮9号灯
;00001101点亮3号灯 ;南北红灯亮
;延时
;闪烁次数未到继续 ;10101110点亮6 8 12 ;1011点亮2号
;东西红灯亮,南北绿灯亮 ;延时 ;闪烁次数 ;10011110点亮6 7 12 ;0111点亮1号
;东西红灯亮,南北黄灯亮 ;延时
;10111110点亮6 12——把7号黄灯灭了;把1号黄灯灭了 ;东西红灯亮
;延时
;闪烁次数未到继续 ;循环
DEL2: PUSH 02H
DEL3: PUSH 02H DEL4: DJNZ R2,DEL4 POP 02H DJNZ R2,DEL3 POP 02H DJNZ R2,DEL2 POP 02H DJNZ R2,DELY RET
;---------------------------------------------
END
;延时
实验7验收是要求改的程序:让两个黄灯先闪烁,剩余两个黄灯接着闪烁
ORG 0BB0H D0: MOV SP,#60H
;制定一个空间
;保护现场
MOV DPTR,#0FFDBH ;写控制字的地址FFDB
MOV A,#88H ;控制字A口输出工作在方式0 C口高4位输入,C口低4位输出工作在方式0,B口输出 MOVX @DPTR,A ;设置控制字 MOV R7,#10H D1: MOV DPTR,#0FFD8H MOV A,#0DBH MOVX @DPTR,A INC DPTR MOV A,#0FH MOVX @DPTR,A MOV R2,#15H LCALL DELY
MOV DPTR,#0FFD8H MOV A,#0FFH MOVX @DPTR,A MOV R2,#15H LCALL DELY DJNZ R7,D1
INC DPTR D2: MOV A,#06H
;设定闪烁次数
-38-
MOVX @DPTR,A MOV R2,#15H LCALL DELY MOV A,#0FH MOVX @DPTR,A MOV R2,#15H LCALL DELY DJNZ R7,D2 LJMP D1
DELY: PUSH 02H DEL2: PUSH 02H DEL3: PUSH 02H
DEL4: DJNZ R2,DEL4 POP 02H
DJNZ R2,DEL3 POP 02H
DJNZ R2,DEL2 POP 02H
DJNZ R2,DELY RET
;--------------------------------------------- END
实验十九 小直流电机调速试验
一、实验目的
1.掌握直流电机的驱动原理。 2.了解直流电机调速的方法。
二、实验内容
1.用0832 D/A转换电路后的输出经放大后驱动直流电机。
2.编制程序改变0832输出经放大后的方波信号的占空比来控制电机转速。本实验中 D/A输出为双极性输出,因此电机可以正反向旋转。
三、程序框图
-39-
四、实验电路
五、实验过程
实验时,需先进行D/A电压调零,然后再运行电机调速主程序。实验中,通过中断和循环延时的方法通过D/A产生一定占空比的方波信号,通过数据送缓冲区,将控制信号送入D/A产生控制脉冲。由于D/A输出为双极性输出,因此电机可以正反向旋转驱动电机。通过控制方波信号的占空比,即控制一段时间内的平均电压,从而控制电机转速。
六、实验结果及分析
实验中可以观察到运行调零程序后小电机停转,运行调速程序后小电机开始旋转并以一定的周期变换转动方向。
问题回答:实验中,可通过控制方波信号的占空比来改变电机转速。可修改LO20程序段中语句MOV A,#80H中立即数80H的值,来修改占空比。80H即占空比为1/2,将其值改小,即可增大占空比,从而使电机转速加快。
七、实验源程序
-40-