资源目录
压缩包内文档预览:
编号:517062
类型:共享资源
大小:76.29KB
格式:RAR
上传时间:2015-11-12
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
3.6
积分
- 关 键 词:
-
毕业设计论文
- 资源描述:
-
十字路口灯火控制系统的设计,毕业设计论文
- 内容简介:
-
YES YES NO NO 入口 8255干断支通 调用显示并延 1秒 调用键盘程序判断是否有键 按下 寄存器减 1 减完否? 返回 键服 务 程序入口 8255干通支断 转换状态 调用显示并延 1 秒 调用键盘程序判断是否有键 按下 寄存器减 1 减完否? 返回 键服 务 程序ntsINIT8279: ;初始化MOVDPTR,#Z8279 MOVA,#LEDMODMOVX DPTR,AMOVA,#LEDFEQMOVX DPTR,AMOVA,#LEDCLSMOVX DPTR,ALCALL DELAYRETDISLED: ;显示字符子程序PUSH DPH PUSH DPLPUSH ACCMOVA,#LEDWR0ADDA,R4MOVDPTR,#Z8279MOVX DPTR,AMOVDPTR,#LEDSEGMOVA,R5MOVC A,A+DPTRMOVDPTR,#D8279MOVX DPTR,APOPACCPOPDPLPOPDPHRETDELAY: ;延时程序PUSH 0PUSH 1PUSH 2DELAY1: MOV1,#0HDELAY2:MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2DJNZ 2,DELAY1 POP 2POP1POP0RETDISPLAY: ;显示字符程序MOV R5,12H;存高位MOV R4,15H;显高位LCALL DISLEDMOV R5,13HMOV R4,14HLCALL DISLED; MOV R2,#10; LCALL DELAY;MOV R5,#00H;MOV R4,14H;LCALL DISLEDRETLC:MOV A, 11H ;处理将要显示的数据MOV B,#0AHDIV ABMOV 12H,AMOV 13H,BRETnts显示子程序及说明: 本设计采用 8279 键盘显示,用 8032系统扩展;利用 8279所带 LED显示器,显示所需字符,为查表显示方式。左边输入八位字符显示,主干道总时间显示在 D7、 D6 位,弯道显示在 D4 位。支道总时间显示在 D3、 D2位,弯道显示在 D0位。急停显示位为 D5-D2位显示“ P - - P”。各控制键显示在 D6位。各子程序见附录,初始化在主程序中。 显示子程序: Z8279 EQU 0FF82H ; 8279状态 /命令口地址 D8279 EQU 0FF80H ; 8279 数据口地址 LEDMOD EQU 00H ;左边输入八位字符显示 ;外部译码键扫描方式,双键互锁 LEDFEQ EQU 2FH ;扫描速率 LEDCLS EQU 0C1H ;清除显示 RAM LEDWR0 EQU 80H ;设 定的将要写入的显示 RAM地址 READKB EQU 40H INIT8279: ; 8279初始化子程序 MOV DPTR, #Z8279 MOV A, #LEDMOD ;置 8279工作方式 MOVX DPTR, A MOV A, #LEDFEQ ;置键盘扫描速率 MOVX DPTR, A MOV A, #LEDCLS ;清除 LED显示 MOVX DPTR, A LCALL DELAY ;延时 RET DISLED: PUSH DPH ;保存现场 PUSH DPL PUSH ACC MOV A, #LEDWR0 ;置显示起始地址 ADD A, R4 ;加位移偏移量 MOV DPTR, #Z8279 MOVX DPTR, A ;设定显示位置 MOV DPTR, #LEDSEG ;设显示常数表起始位置 MOV A, R5 MOVC A, A+DPTR ;查表 MOV DPTR, #D8279 MOVX DPTR, A ;显示数据 POP ACC ;恢复现场 POP DPL POP DPH RET DELAY: ;延时子程序 PUSH 0 ;保存现场 2 PUSH 1 ; 2 nts PUSH 2 ; 2 DELAY1: MOV1, #0H ; 1 DELAY2: MOV 0, #0B2H ; 1 DJNZ 0, $ ; 2 DJNZ 1, DELAY2 ; 2 DJNZ 2, DELAY1 ; 2 POP 2 ; 2 POP 1 ; 2 恢复现场 POP 0 ; 2 RET ; 2 DISPLAY: MOV R5, 12H MOV R4, 15H LCALL DISLED ;显示十位 MOV R5, 13H MOV R4, 14H LCALL DISLED ;显示个位 MOV R2, #10 LCALL DELAY ;延时 1秒 RET LC: ;处理显示秒数子程序 MOV A, 11H MOV B, #0AH DIV AB ;做除法运算 MOV 12H, A MOV 13H, B RET ERROR: ;急停子程序 MOV R5, #10H MOV R4, #05H LCALL DISLED MOV R5, #11H MOV R4, #04H LCALL DISLED MOV R5, #12H MOV R4, #03H LCALL DISLED MOV R5, #13H MOV R4, #02H LCALL DISLED RET LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;0,1,2,3,4,5,6,7, DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;8,9,A,B,C,D,E,F, DB 73H,40H,40H,73H;P,-, nts END 延时子程序的计算: 采用寄存器 R0、 R1、 R2作为记数值, R2 中暂存 1, R1 中存 0。当减 1后变为 255即 R1中存数 256。 R0中存数 #0B2H即 178。各指令共占指令周期数为(见图延时程序后所附) DELAY2延时为: N=( 2+2+2+1+1+2*178) +255*( 1+1+2+2*178) =9164。 共计 9164个指令周期,而系统晶振为 11.0592。所以 T=12/11.0592=1.085(微秒) 延时 DELAY2为 : t=9164*1.085/1000000=0.09996 约等于 0.1(秒) 通过改变 R2 的值可以改变延时的秒数。 心得体会 : 时间过得很快,还没有把单片机设计的过程的来龙去脉掌握,但截止日期已到。虽说设计出来了,但总觉得有很多地方不当。主要是自己对所学知识没有很深刻的理解,不能很好的运用。还好能够得到周老师的耐心指导,才能够完成这次设计。在设计的过程中我们走了不少的弯路,也遇到了很多的问题,还好都被我们一一解决。这使我们从中学得了很多的知识,在课本上学得都是些理论知识,而到了实际操作遇到的难题还真是你无法想象得到的。经过本次设计我们对单片机又有了一点深刻的认识并对教学机的内部结构和运行方式有了进一步的了解。做的不好望周老师能够 见谅。最后,感谢学校和周老师能够提供这次机会使我们学得了很多新的知识。 参考文献: ( 1) 刘国荣 .单片微型计算机技术 . 机械工业出版社, 2001 ( 2) 周慧 .微机接口与控制技术课程设计指导书 .湖南工程学院出版, 2003 ( 3) 曾昆 .王迎旭单片机原理及应用实验指导书 .湖南工程学院出版, 2002 nts显示子程序及说明: 本设计采用 8279 键盘显示,用 8032系统扩展;利用 8279所带 LED显示器,显示所需字符,为查表显示方式。左边输入八位字符显示,主干道总时间显示在 D7、 D6 位,弯道显示在 D4 位。支道总时间显示在 D3、 D2位,弯道显示在 D0位。急停显示位为 D5-D2位显示“ P - - P”。各控制键显示在 D6位。各子程序见附录,初始化在主程序中。 显示子程序: Z8279 EQU 0FF82H ; 8279状态 /命令口地址 D8279 EQU 0FF80H ; 8279 数据口地址 LEDMOD EQU 00H ;左边输入八位字符显示 ;外部译码键扫描方式,双键互锁 LEDFEQ EQU 2FH ;扫描速率 LEDCLS EQU 0C1H ;清除显示 RAM LEDWR0 EQU 80H ;设 定的将要写入的显示 RAM地址 READKB EQU 40H INIT8279: ; 8279初始化子程序 MOV DPTR, #Z8279 MOV A, #LEDMOD ;置 8279工作方式 MOVX DPTR, A MOV A, #LEDFEQ ;置键盘扫描速率 MOVX DPTR, A MOV A, #LEDCLS ;清除 LED显示 MOVX DPTR, A LCALL DELAY ;延时 RET DISLED: PUSH DPH ;保存现场 PUSH DPL PUSH ACC MOV A, #LEDWR0 ;置显示起始地址 ADD A, R4 ;加位移偏移量 MOV DPTR, #Z8279 MOVX DPTR, A ;设定显示位置 MOV DPTR, #LEDSEG ;设显示常数表起始位置 MOV A, R5 MOVC A, A+DPTR ;查表 MOV DPTR, #D8279 MOVX DPTR, A ;显示数据 POP ACC ;恢复现场 POP DPL POP DPH RET DELAY: ;延时子程序 PUSH 0 ;保存现场 2 PUSH 1 ; 2 nts PUSH 2 ; 2 DELAY1: MOV1, #0H ; 1 DELAY2: MOV 0, #0B2H ; 1 DJNZ 0, $ ; 2 DJNZ 1, DELAY2 ; 2 DJNZ 2, DELAY1 ; 2 POP 2 ; 2 POP 1 ; 2 恢复现场 POP 0 ; 2 RET ; 2 DISPLAY: MOV R5, 12H MOV R4, 15H LCALL DISLED ;显示十位 MOV R5, 13H MOV R4, 14H LCALL DISLED ;显示个位 MOV R2, #10 LCALL DELAY ;延时 1秒 RET LC: ;处理显示秒数子程序 MOV A, 11H MOV B, #0AH DIV AB ;做除法运算 MOV 12H, A MOV 13H, B RET ERROR: ;急停子程序 MOV R5, #10H MOV R4, #05H LCALL DISLED MOV R5, #11H MOV R4, #04H LCALL DISLED MOV R5, #12H MOV R4, #03H LCALL DISLED MOV R5, #13H MOV R4, #02H LCALL DISLED RET LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;0,1,2,3,4,5,6,7, DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;8,9,A,B,C,D,E,F, DB 73H,40H,40H,73H;P,-,-,P, nts END 延时子程序的计算: 采用寄存器 R0、 R1、 R2作为记数值, R2 中暂存 1, R1 中存 0。当减 1后变为 255即 R1中存数 256。 R0中存数 #0B2H即 178。各指令共占指令周期数为(见图延时程序后所附) DELAY2延时为: N=( 2+2+2+1+1+2*178) +255*( 1+1+2+2*178) =9164。 共计 9164个指令周期,而系统晶振为 11.0592。所以 t=12/11.0592=1.085(微秒) 延时 DELAY2为 : T=9164*1.085/1000000=0.09996 约等于 0.1(秒) 通过改变 R2 的值可以改变延时的秒数。 心 得体会: 时间过得很快,还没有把单片机设计的过程的来龙去脉掌握,但截止日期已到。虽说设计出来了,但总觉得有很多地方不当。主要是自己对所学知识没有很深刻的理解,不能很好的运用。还好能够得到周老师的耐心指导,才能够完成这次设计。在设计的过程中我们走了不少的弯路,也遇到了很多的问题,还好都被我们一一解决。这使我们从中学得了很多的知识,在课本上学得都是些理论知识,而到了实际操作遇到的难题还真是你无法想象得到的。经过本次设计我们对单片机又有了一点深刻的认识并对教学机的内部结构和运行方式有了进一步的了解。做的不好望周老 师能够见谅。最后,感谢学校和周老师能够提供这次机会使我们学得了很多新的知识。 ntsZ8279 EQU0FF82HD8279 EQU0FF80HLEDMOD EQU00HLEDFEQ EQU2FHLEDCLS EQU0C1HLEDWR0 EQU80HREADKB EQU 40HORG 0000HMOV DPTR,#8406HMOV A, #80HMOVX DPTR,AWAIT: LCALL GETKEYCJNE A,#0FFH,WAITMOV 50H,BMOV A,BCJNE A,#0AH,WAITLCALL STARTSTART: MOV 16H,#35MOV 17H,#5MOV 18H,#25MOV 19H,#5MOV SP,#60HLCALL STATUS0CIRCLE: LCALL STATUS1LCALL STATUS2LCALL STATUS3LCALL STATUS4LJMP CIRCLESTATUS0:MOV DPTR , #8400HMOV A,#0FHMOVX DPTR, AMOV R2,#10LCALL DELAY RETSTATUS1:MOV DPTR , #8400HMOV A,#96HMOVX DPTR, AMOV 11H,16HLCALL INIT8279STA1: LCALL LCMOV 15H,#07HMOV 14H,#06HLCALL DISPLAYLCALL FUWU00DJNZ 11H,STA1RETSTATUS2:MOV DPTR , #8400HMOV R3,#03HFLASH:MOV A,#9FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#96HMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#06HMOVX DPTR,AntsMOV 11H,17H ;传5秒LCALL INIT8279STA2: LCALL LCMOV 14H,#4LCALL DISPLAYLCALL FUWU00DJNZ 11H,STA2RETSTATUS3:MOV DPTR , #8400HMOV A,#69HMOVX DPTR, AMOV 11H,18H;传25秒LCALL INIT8279STA3: LCALL LCMOV 15H,#03HMOV 14H, #02HLCALL DISPLAYLCALL FUWU00DJNZ 11H,STA3RETSTATUS4:MOV DPTR , #8400HMOV R3,#03HFLASH1:MOV A,#6FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#69HMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#09HMOVX DPTR,AMOV 11H,19H; 传支5秒LCALL INIT8279STA4: LCALL LCMOV 14H,#00HLCALL DISPLAY LCALL FUWU00DJNZ 11H,STA4RETINIT8279:MOVDPTR,#Z8279MOVA,#LEDMODMOVX DPTR,AMOVA,#LEDFEQMOVX DPTR,AMOVA,#LEDCLSMOVX DPTR,ALCALL DELAYRETDISLED:PUSH DPHPUSH DPLPUSH ACCMOVA,#LEDWR0ADDA,R4MOVDPTR,#Z8279MOVX DPTR,AntsMOVDPTR,#LEDSEGMOVA,R5MOVC A,A+DPTRMOVDPTR,#D8279MOVX DPTR,APOPACCPOPDPLPOPDPHRETDELAY:PUSH 0PUSH 1PUSH 2DELAY1: MOV1,#0HDELAY2:MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2DJNZ 2,DELAY1 POP 2POP1POP0RETDISPLAY:MOV R5,12HMOV R4,15HLCALL DISLEDMOV R5,13HMOV R4,14HLCALL DISLEDMOV R2,#10LCALL DELAYRETLC:MOV A, 11HMOV B,#0AHDIV ABMOV 12H,AMOV 13H,BRETERROR: MOV R5,#10HMOV R4,#05HLCALL DISLEDMOV R5,#11HMOV R4,#04HLCALL DISLEDMOV R5,#12HMOV R4,#03HLCALL DISLEDMOV R5,#13HMOV R4,#02HLCALL DISLEDRETGETKEY: PUSH DPHPUSH DPL PUSH PSWMOV DPTR,#Z8279MOVX A,DPTRANL A,#07HJNZ GETVALMOV A,#00HSJMP NKBHITGETVAL:MOV A,#READKBntsMOVX DPTR,AMOV DPTR,#D8279MOVX A,DPTRANL A,#3FHMOV B ,AMOV A,#0FFHNKBHIT: POP PSWPOP DPLPOP DPHRETKEYA: LCALL INIT8279MOV R5,#0AHMOV R4,#06HLCALL DISLEDAJMP CIRCLERETKEYB: MOV R5,#0BHMOV R4,#06H;LCALL DISLEDLCALL ERRORRETKEYC: LCALL INIT8279MOV R5,#0CHMOV R4,#06HLCALL DISLEDWAIT1: LCALL GETKEYCJNE A,#0FFH,WAIT1MOV R5,BMOV 31H,BMOV R4,#01HLCALL DISLEDWAIT2: LCALL GETKEYCJNE A,#0FFH,WAIT2MOV R5,BMOV 30H,BMOV R4,#0LCALL DISLEDRETKEYD: MOV A,31HMOV B,#10MUL ABMOV B,30HADD A,B MOV 16H,AAJMP CIRCLERETKEY40: LCALL KEYCMOV A,31HMOV B,#10MUL ABMOV B,30HADD A,B MOV 17H,AAJMP CIRCLERETKEY41: LCALL KEYCMOV A,31HMOV B,#10MUL ABMOV B,30HADD A,B MOV 18H,AAJMP CIRCLEntsRETKEY42: LCALL KEYCMOV A,31HMOV B,#10MUL ABMOV B,30HADD A,B MOV 19H,AAJMP CIRCLERETKEYE: MOV DPTR,#8400HMOV A,#96HMOVX DPTR,AMOV R5,#0EHMOV R4,#06HLCALL DISLEDRETKEYF: MOV DPTR,#8400HMOV A,#96HMOVX DPTR,AMOV R5,#0FHMOV R4,#06HLCALL DISLEDRETFUWU00: PUSH 11HPUSH PSWLCALL GETKEYCJNE A,#0FFH,JAP0MOV 50H,BMOV A,50HCJNE A,#0BH,PADJLCALL KEYBWAIT0: LCALL GETKEYCJNE A,#0FFH,WAIT0MOV 50H,BMOV A,50HCJNE A,#0AH,PADJSJMP JAP0PADJ: MOV A,50HCJNE A,#0CH,PADE0LCALL KEYCMOV R2,#10LCALL DELAYLCALL KEYDRETPADE0: MOV A,50HCJNE A, #0EH, PADF0LCALL KEYEPADF0: MOV A,50HCJNE A, #0FH, PAD40LCALL KEYFPAD40: MOV A,50HCJNE A,#0FFH,PAD41LCALL KEY40PAD41: MOV A,50HCJNE A,#0FFH,PAD42LCALL KEY41PAD42: MOV A,50HCJNE A,#0FFH,JAP0LCALL KEY42JAP0: POP PSWPOP 11HntsLCALL KEYARETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;0,1,2,3,4,5,6,7,DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;8,9,A,B,C,D,E,F,DB 73H,40H,40H,73H;P,-,-,P,ENDntsZ8279 EQU0FF82HD8279 EQU0FF80HLEDMOD EQU00HLEDFEQ EQU2FHLEDCLS EQU0C1HLEDWR0 EQU80HREADKB EQU 40HORG 0000HMOV DPTR,#8406HMOV A, #80HMOVX DPTR,AWAIT: LCALL GETKEYCJNE A,#0FFH,WAITMOV 50H,BMOV A,BCJNE A,#0AH,WAITLCALL STARTSTART: MOV 16H,#35MOV 17H,#5MOV 18H,#25MOV 19H,#5MOV SP,#60HLCALL STATUS0CIRCLE: LCALL STATUS1LCALL STATUS2LCALL STATUS3LCALL STATUS4LJMP CIRCLESTATUS0:MOV DPTR , #8400HMOV A,#0FHMOVX DPTR, AMOV R2,#10LCALL DELAY RETSTATUS1:MOV DPTR , #8400HMOV A,#96HMOVX DPTR, AMOV 11H,16HLCALL INIT8279STA1: LCALL LCMOV 15H,#07HMOV 14H,#06HLCALL DISPLAYLCALL FUWU00DJNZ 11H,STA1RETSTATUS2:MOV DPTR , #8400HMOV R3,#03HFLASH:MOV A,#9FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#96HMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#06HMOVX DPTR,AntsMOV 11H,17H ;传5秒LCALL INIT8279STA2: LCALL LCMOV 14H,#4LCALL DISPLAYLCALL FUWU00DJNZ 11H,STA2RETSTATUS3:MOV DPTR , #8400HMOV A,#69HMOVX DPTR, AMOV 11H,18H;传25秒LCALL INIT8279STA3: LCALL LCMOV 15H,#03HMOV 14H, #02HLCALL DISPLAYLCALL FUWU00DJNZ 11H,STA3RETSTATUS4:MOV DPTR , #8400HMOV R3,#03HFLASH1:MOV A,#6FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#69HMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#09HMOVX DPTR,AMOV 11H,19H; 传支5秒LCALL INIT8279STA4: LCALL LCMOV 14H,#00HLCALL DISPLAY LCALL FUWU00DJNZ 11H,STA4RETINIT8279:MOVDPTR,#Z8279MOVA,#LEDMODMOVX DPTR,AMOVA,#LEDFEQMOVX DPTR,AMOVA,#LEDCLSMOVX DPTR,ALCALL DELAYRETDISLED:PUSH DPHPUSH DPLPUSH ACCMOVA,#LEDWR0ADDA,R4MOVDPTR,#Z8279MOVX DPTR,AntsMOVDPTR,#LEDSEGMOVA,R5MOVC A,A+DPTRMOVDPTR,#D8279MOVX DPTR,APOPACCPOPDPLPOPDPHRETDELAY:PUSH 0PUSH 1PUSH 2DELAY1: MOV1,#0HDELAY2:MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2DJNZ 2,DELAY1 POP 2POP1POP0RETDISPLAY:MOV R5,12HMOV R4,15HLCALL DISLEDMOV R5,13HMOV R4,14HLCALL DISLEDMOV R2,#10LCALL DELAYRETLC:MOV A, 11HMOV B,#0AHDIV ABMOV 12H,AMOV 13H,BRETERROR: MOV R5,#10HMOV R4,#05HLCALL DISLEDMOV R5,#11HMOV R4,#04HLCALL DISLEDMOV R5,#12HMOV R4,#03HLCALL DISLEDMOV R5,#13HMOV R4,#02HLCALL DISLEDRETGETKEY: PUSH DPHPUSH DPL PUSH PSWMOV DPTR,#Z8279MOVX A,DPTRANL A,#07HJNZ GETVALMOV A,#00HSJMP NKBHITGETVAL:MOV A,#READKBntsMOVX DPTR,AMOV DPTR,#D8279MOVX A,DPTRANL A,#3FHMOV B ,AMOV A,#0FFHNKBHIT: POP PSWPOP DPLPOP DPHRETKEYA: LCALL INIT8279MOV R5,#0AHMOV R4,#06HLCALL DISLEDAJMP CIRCLERETKEYB: MOV R5,#0BHMOV R4,#06H;LCALL DISLEDLCALL ERRORRETKEYC: LCALL INIT8279MOV R5,#0CHMOV R4,#06HLCALL DISLEDWAIT1: LCALL GETKEYCJNE A,#0FFH,WAIT1MOV R5,BMOV 31H,BMOV R4,#01HLCALL DISLEDWAIT2: LCALL GETKEYCJNE A,#0FFH,WAIT2MOV R5,BMOV 30H,BMOV R4,#0MOV A,31HMOV B,#10MUL ABMOV B,30HADD A,B LCALL DISLEDRETKEYD:MOV 16H,AAJMP CIRCLERETKEY40:MOV 17H,AAJMP CIRCLERETKEY41:MOV 18H,AAJMP CIRCLERETKEY42:MOV 19H,AAJMP CIRCLERETKEYE: MOV DPTR,#8400HMOV A,#96HMOVX DPTR,AMOV R5,#0EHntsMOV R4,#06HLCALL DISLEDRETKEYF: MOV DPTR,#8400HMOV A,#96HMOVX DPTR,AMOV R5,#0FHMOV R4,#06HLCALL DISLEDRETFUWU00: PUSH 11HPUSH PSWLCALL GETKEYCJNE A,#0FFH,JAP0MOV 50H,BMOV A,50HCJNE A,#0BH,PADJLCALL KEYBWAIT0: LCALL GETKEYCJNE A,#0FFH,WAIT0MOV 50H,BMOV A,50HCJNE A,#0AH,PADJSJMP JAP0PADJ: MOV A,50HCJNE A,#0CH,PADE0LCALL KEYCMOV R2,#10LCALL DELAYLCALL KEYDRETPADE0: MOV A,50HCJNE A, #0EH, PADF0LCALL KEYEPADF0: MOV A,50HCJNE A, #0FH, PAD40LCALL KEYFPAD40: MOV A,50HCJNE A,#0FFH,PAD41LCALL KEY40PAD41: MOV A,50HCJNE A,#0FFH,PAD42LCALL KEY41PAD42: MOV A,50HCJNE A,#0FFH,JAP0LCALL KEY42JAP0: POP PSWPOP 11HLCALL KEYARETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;0,1,2,3,4,5,6,7,DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;8,9,A,B,C,D,E,F,DB 73H,40H,40H,73H;P,-,-,P,ENDntsntsZ8279 EQU0FF82HD8279 EQU0FF80HLEDMOD EQU00HLEDFEQ EQU2FHLEDCLS EQU0C1HLEDWR0 EQU80HREADKB EQU 40HINIT8279:MOVDPTR,#Z8279MOVA,#LEDMODMOVX DPTR,AMOVA,#LEDFEQMOVX DPTR,AMOVA,#LEDCLSMOVX DPTR,ALCALL DELAYRETDISLED:PUSH DPHPUSH DPLPUSH ACCMOVA,#LEDWR0ADDA,R4MOVDPTR,#Z8279MOVX DPTR,AMOVDPTR,#LEDSEGMOVA,R5MOVC A,A+DPTRMOVDPTR,#D8279MOVX DPTR,APOPACCPOPDPLPOPDPHRETDELAY:PUSH 0PUSH 1PUSH 2DELAY1: MOV1,#0HDELAY2:MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2DJNZ 2,DELAY1 POP 2POP1POP0RETDISPLAY:MOV R5,12HMOV R4,15HLCALL DISLEDMOV R5,13HMOV R4,14HLCALL DISLEDMOV R2,#10LCALL DELAYRETLC:MOV A, 11HMOV B,#0AHDIV ABMOV 12H,AMOV 13H,BRETntsERROR: MOV R5,#10HMOV R4,#05HLCALL DISLEDMOV R5,#11HMOV R4,#04HLCALL DISLEDMOV R5,#12HMOV R4,#03HLCALL DISLEDMOV R5,#13HMOV R4,#02HLCALL DISLEDRETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;0,1,2,3,4,5,6,7,DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;8,9,A,B,C,D,E,F,DB 73H,40H,40H,73H;P,-,-,P,ENDntsZ8279 EQU0FF82H ;8279状态/命令口地址D8279 EQU0FF80H ;8279数据口地址LEDMOD EQU00H ;左边输入八位字符显示;外部译码键扫描方式,双键互锁LEDFEQ EQU2FH ;扫描速率LEDCLS EQU0C1H ;清除显示RAMLEDWR0 EQU80H ;设定的将要写入的显示RAM地址 READKB EQU 40H ;读FIFO RAM地址0的命令字ORG 0000HMOV DPTR,#8406H ;8255控制口地址 MOV A, #80H ;命令字传入控制口MOVX DPTR,ALJMP START ;开始程序 ORG 0040HSTART: MOV 16H,#35 ;设定显示秒数MOV SP,#30H LCALL STATUS0 ;调用初始状态全红灯CIRCLE: LCALL STATUS1 ;南北绿灯东西红灯LCALL STATUS2 ;南北绿灯闪转黄灯东西红灯LCALL STATUS3 ;南北红灯东西绿灯LCALL STATUS4 ;南北红灯东西绿灯闪转黄灯LJMP CIRCLESTATUS0:MOV DPTR , #8400H MOV A,#0FHMOVX DPTR, AMOV R2,#10 ;延时一秒LCALL DELAY RETSTATUS1: ;南北绿灯东西红灯MOV DPTR , #8400HMOV A,#96HMOVX DPTR, AMOV 11H,16HLCALL INIT8279 ;初始化清屏 STA1: LCALL LC ;处理并调用显示的数据MOV 15H,#07H ;设定显示位数MOV 14H,#06HMOV R5,12HLCALL DISPLAY ;调用显示MOV R5, 13HMOV R2,#10LCALL DELAY ;延时LCALL FUWU ;调用键盘服务程序DJNZ 11H,STA1 RETSTATUS2: ;南北绿灯闪转黄灯东西红灯MOV DPTR , #8400HMOV R3,#03H ;闪烁三次FLASH:MOV A,#9FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#96HMOVX DPTR,AntsMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#06HMOVX DPTR,ALCALL INIT8279MOV 11H,#5 ;弯道时间STA2: LCALL LCMOV 14H,#4LCALL DISPLAYDJNZ 11H,STA2RETSTATUS3: ;南北红灯东西绿灯MOV DPTR , #8400HMOV A,#69HMOVX DPTR, AMOV 11H,#25 ;设定支道时间LCALL INIT8279STA3: LCALL LCMOV 15H,#03HMOV 14H, #02HLCALL DISPLAYDJNZ 11H,STA3RETSTATUS4: ;南北红灯东西绿灯闪转黄灯MOV DPTR , #8400HMOV R3,#03HFLASH1:MOV A,#6FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#69HMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#09HMOVX DPTR,AMOV 11H,#05HLCALL INIT8279STA4: LCALL LCMOV 14H,#00H ;让该位显示0LCALL DISPLAYDJNZ 11H,STA4 RETINIT8279: ;初始化MOVDPTR,#Z8279 MOVA,#LEDMODMOVX DPTR,AMOVA,#LEDFEQMOVX DPTR,AMOVA,#LEDCLSMOVX DPTR,ALCALL DELAYRETDISLED: ;显示字符子程序PUSH DPH PUSH DPLPUSH ACCMOVA,#LEDWR0ntsADDA,R4MOVDPTR,#Z8279MOVX DPTR,AMOVDPTR,#LEDSEGMOVA,R5MOVC A,A+DPTRMOVDPTR,#D8279MOVX DPTR,APOPACCPOPDPLPOPDPHRETDELAY: ;延时程序PUSH 0 ;延时100msPUSH 1PUSH 2DELAY1: MOV1,#0HDELAY2:MOV 0,#
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。