您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页51单片机交通灯设计汇编实验

51单片机交通灯设计汇编实验

来源:化拓教育网
实验四、中断实验报告

一、实验内容

参照实验电路,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正

常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。

二、程序流程图

3实验仿真电路

中华人民共和国雄起!+5VR110k1716151413121110GFEDCBA2827262524232221D6D5D4D3D2D1D03233343536373839U1P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT1P3.2/INT0P3.1/TXDP3.0/RXDP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD0ATC51P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.087654321Y2G2R2Y1G1R1R1EAALEPSEN313029ABCDEFGY1G1G2RST9R2Y2RP1D0D1D2D3D4D5D687654321RESPACK-7XTAL218XTAL119+5V制作者:徐宏明 4、实验程序 ORG 0000H JMP MAIN

ORG 0003H ;外部中断0的入口地址 JMP X0_INT

ORG 000BH ;T0中断的入口地址 JMP T0_INT

;*************************************** MAIN:

MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H

MOV R1, #20 ;定时1s SETB TR0 SETB ET0 SETB PT0 SETB EX0 SETB IT0 SETB EA MOV SP, #60H M_LOOP:

;*************************************** N_B:

MOV 30H, #11H ;南北 MOV P1, 30H MOV R5, #30 ; CALL DISPLAY MOV R2, #27 LOOP1:

CALL WAIT_1S

DJNZ R2, LOOP1 ;判断是否过了27s ;-------------------------- MOV 30H, #21H MOV P1, 30H MOV R2, #3 LOOP11:

CALL WAIT_1S

DJNZ R2, LOOP11 ;判断是否过了3秒 ;*************************************** D_X:

MOV 30H, #0AH ;东西 MOV P1, 30H MOV R5, #30 CALL DISPLAY MOV R2, #27 LOOP2:

CALL WAIT_1S

DJNZ R2, LOOP2 ;判断是否过了27s ;-------------------------- MOV 30H, #0CH MOV P1, 30H MOV R2, #3 LOOP22:

CALL WAIT_1S

DJNZ R2, LOOP22 ;判断是否过了3秒 JMP M_LOOP

;*************************************** WAIT_1S: ;等待新秒出现 JNB 20H.0, $ CLR 20H.0

DEC R5 CALL DISPLAY RET

;----------------------------- DISPLAY: MOV A, R5 MOV B, #10 DIV AB

MOV DPTR, #TAB1 MOVC A, @A + DPTR MOV P2, A MOV A, B

MOV DPTR, #TAB1 MOVC A, @A + DPTR MOV P0, A RET TAB1:

DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH ;*************************************** X0_INT:

MOV P1, #09H ;全部红灯 PUSH ACC PUSH B PUSH PSW

SETB RS0 ;换工作区 MOV R5, #10 ;倒计时显示 CALL DISPLAY

MOV R1, #20 ;定时1s ;----------------

MOV R2, #10 ;倒计时 LOOP3:

CALL WAIT_1S

DJNZ R2, LOOP3 ;判断是否到了10s ;----------------

POP PSW ;恢复原区 CALL DISPLAY ;显示原值 MOV P1, 30H ;显示原灯 POP B POP ACC RETI

;-----------------------------

T0_INT: ;T0中断,高优先级 MOV TL0, #0B0H

MOV TH0, #3CH ;50ms中断一次 DJNZ R1, EXIT_T0

MOV R1, #20 ;定时1s SETB 20H.0 ;每到一秒就置一 EXIT_T0: RETI

;*************************************** END

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务