这是51单片机的交通灯模拟
掌握单片机内部通用资源如中断、定时计数器、串行口及并行端口的应用。
- 试验内容
编写模拟交通灯运行控制程序。要求红绿灯亮灯延时时间为30秒,黄灯亮灯延时时间为10秒。利用二位八段LED显示器进行时间显示。时间显示采用倒计时的方式。时间归零时信号进行切换。
- 实验要求
时间的延时必须采用定时器定时中断方式进行,定时器0或定时器1可任选一个(默认为0)。编程时请充分考虑定期器的时间扩展问题。
利用二位八段LED显示器进行时间显示,显示码采用串行口模式0进行输出。
掌握中断系统的基本概念及使用方法。如:中断被响应所需的必要条件;一个完整的中断响应过程;中断优先级的概念
信号灯的控制由并行口P0口输出进行快关控制。
单片机源程序如下:
- S_OK BIT 20H.0
- ORG 0000H
- AJMP MAIN
- ORG 000BH
- AJMP SECOND
- ORG 0030H
- MAIN:
- MOV SP, #60H
- CLR EA
- MOV SCON, #00H
- MOV TMOD, #01H
- MOV TL0, #0B0H
- MOV TH0, #3CH
- SETB ET0
- SETB PT0
- SETB EA
- SETB TR0
- MOV R7, #10
- HONGDENG:
- MOV P0,#21H
- MOV R0, #30
- LOOP1: MOV A, R0
- LCALL XIANSHI
- JNB S_OK, $
- CLR S_OK
- DEC R0
- DJNZ R0, LOOP1
- HUANGDENG:
- MOV P0,#12H
- MOV R0, #10
- LOOP2: MOV A, R0
- LCALL XIANSHI
- JNB S_OK, $
- CLR S_OK
- DEC R0
- DJNZ R0, LOOP2
- LVDENG:
- MOV P0,#0CH
- MOV R0, #30
- LOOP3: MOV A, R0
- LCALL XIANSHI
- JNB S_OK, $
- CLR S_OK
- DEC R0
- DJNZ R0, LOOP3
- LJMP MAIN
- XIANSHI:
- MOV 22H, R0
- MOV B, #10
- DIV AB
- MOV DPTR, #TAB
- MOVC A, @A+DPTR
- MOV 4BH, A
- MOV A, B
- MOVC A, @A+DPTR
- MOV 4AH, A
- MOV 4CH, #0FFH; 前四个显示管灭
- MOV 4DH, #0FFH
- MOV 4EH, #0FFH
- MOV 4FH, #0FFH
- MOV R1, #4AH
- MOV R0, #06H
- FASONG:
- MOV A, @R1
- CLR TI
- MOV SBUF, A
- JNB TI, $
- INC R1
- DJNZ R0, FASONG
- MOV R0, 22H
- RET
- SECOND:
- CLR EA
- CLR S_OK
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
交通灯.rar
(82.64 KB, 下载次数: 27)
|