通过几天的收拾,总算将网络上得到交通灯仿真文件,用汇编自己编写了一个程序,试验成果完全符合自己的思路,试验成功。
程序比较长,估量还会用更好的方法从头写。
编写心得是:单片机编程,纷歧定要背指令,用时能够查,也不必去默写子程序,用时仍是能够查,可是,很要害的便是,你的程序,你自己要清楚整个的履行进程,也便是单片机的履行流程。而在实践的使用中,要注意驱动电路的规划,特别是单片机上电复位输出高电平或许形成的影响。
程序如下:假如网页显现格局紊乱可从http://www.51hei.com/f/jtda.rar处下载.
ORG 0000H
START:
MOV R2,#30
SU0:MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
MOV P3,#00111111B
MOV A,R2
MOV R4,A
MOV A,R4
MOV R0,A
MOV B,#5
DIV AB
MOV B,#3
MUL AB
MOV R1,A
SETB P0.4
SETB P0.7
SETB P2.2
SETB P2.5
AJMP KEY
SU1A: DEC R0
DEC R1
SUL5: CJNE R1,#5,SUL6
SETB P2.7
SUL6: CJNE R1,#4,SUL7
SETB P2.7
SUL7: CJNE R1,#3,SUL1
SETB P2.7
SUL1: CJNE R1,#2,SUL2
SETB P2.7
SUL2: CJNE R1,#1,SUL3
SETB P2.7
SUL3: CJNE R1,#0,SUL4
MOV A,R0
MOV R1,A
CLR P2.5
CLR P0.7
SETB P0.5
SETB P2.4
SUL4: CJNE R0,#0,KEY
AJMP SU0B
KEY:
JB P3.5,KEY1
LCALL DELAY
MOV R2,#45
KEY1:JB P3.2,KEY2
LCALL DELAY
MOV R2,#60
KEY2:JB P3.3,KEY3
LCALL DELAY
MOV A,R2
ADD A,#5
MOV R2,A
CJNE R2,#95,DD
MOV R2,#95
KEY3:JB P3.4,DD
LCALL DELAY
MOV A,R2
SUBB A,#5
MOV R2,A
CJNE R2,#0,DD
MOV R2,#0
DD:MOV R3,#50;数码1
DD1:
MOV P1,#00H
MOV A,R0
MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
SETB P0.0
LCALL DELAY1
CLR P0.0
MOV A,B
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
SETB P0.1
LCALL DELAY1
CLR P0.1;数码2
MOV A,R1
MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
SETB P0.2
LCALL DELAY1
CLR P0.2
MOV A,B
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
SETB P0.3
LCALL DELAY1
CLR P0.3;数码3
MOV A,R2
MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
SETB P3.6
LCALL DELAY1
CLR P3.6
MOV A,B
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
SETB P3.7
LCALL DELAY1
CLR P3.7
DEC R3
CJNE R3,#25,SUL11
CLR P2.7