资讯详情

单片机交通灯实验汇编语言程序

经过几天的整理,终于将网络上得到交通灯仿真文件,用汇编自己编写了一个程序,实验结果完全符合本人的思路,实验成功。 程序比较长,估计还会用更好的办法重新写。 编写心得是:单片机编程,不一定要背指令,用时可以查,也不必去默写子程序,用时还是可以查,但是,很关键的就是,你的程序,你自己要清楚整个的执行过程,也就是单片机的执行流程。而在实际的应用中,要注意驱动电路的设计,特别是单片机上电复位输出高电平可能造成的影响。 程序如下:如果网页显示格式错乱可从http://www.ruidan.com/f/jtda.rar处下载. ORG 0000H ART: 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 D,#TAB MOVC A,@A+TR 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 SUL11: CJNE R3,#0,DD1 AJMP SU1A SU0B: MOV P2,#00H CLR P0.4 MOV A,R4 MOV R1,A MOV B,#5 DIV AB MOV B,#3 MUL AB MOV R0,A SETB P0.6 SETB P2.1 SETB P2.6 AJMP LKEY SU1B:DEC R0 DEC R1 SUL44: CJNE R0,#5,SUL45 SETB P2.3 SUL45: CJNE R0,#4,SUL46 SETB P2.3 SUL46: CJNE R0,#3,SUL40 SETB P2.3 SUL40: CJNE R0,#2,SUL41 SETB P2.3 SUL41: CJNE R0,#1,SUL42 SETB P2.3 SUL42: CJNE R0,#0,SUL43 CLR P0.6 CLR P2.1 SETB P0.4 SETB P2.0 MOV A,R1 MOV R0,A SUL43: CJNE R1,#0,LKEY AJMP SU0 LKEY:;CLR P2.3 JB P3.5,LKEY1 LCALL DELAY MOV R2,#45 LKEY1: JB P3.2,LKEY2 LCALL DELAY MOV R2,#60 LKEY2: JB P3.3,LKEY3 LCALL DELAY MOV A,R2 ADD A,#5 MOV R2,A CJNE R2,#95,LDD MOV R2,#95 LKEY3: JB P3.4,LDD LCALL DELAY MOV A,R2 SUBB A,#5 MOV R2,A CJNE R2,#0,LDD MOV R2,#0 AJMP LDD LDD:MOV R3,#50;数码1 LDD1: 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,SUL10 CLR P2.3 SUL10: CJNE R3,#0,LDD1 AJMP SU1B TAB: 0C0H;"0" DB0F9H;"1" DB0A4H;"2" DB0B0H;"3" DB 99H;"4" DB 92H;"5" DB 82H;"6" DB0F8H;"7" DB 80H;"8" DB 90H;"9" DELAY: MOV R5,#100 L3:MOV R6,#100 L1:MOV R7,#6 L2:DJNZ R7,L2 DJNZ R6,L1 DJNZ R5,L3 RET DELAY1: MOV R7,#30 D1:MOV R6,#10 D2:DJNZ R6,D2 DJNZ R7,D1 RET END

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台