微机原理课程设计-交通灯设计
- 格式:doc
- 大小:183.50 KB
- 文档页数:8
微机原理课程设计-交通灯设计
交通灯控制实验
一、实验目的:
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
1.掌握8255A方式0的使用与编程
2.PC机及配套的接口电路实验装置
3.IC芯片:8255A应用
二、实验设备:
PC机及配套的接口电路实验装置
IC芯片:8255A
三、实验内容:
1.方案设计
(1)L6、L5、L4作为南北路口的交通灯与PA6、PA5、PA4相连,L2、L1、L0作为东西路口的交通灯与PA2、PA1、PA0相连,编程使六个灯按交通灯变化规律燃灭。
发光二极管“0”为亮,“1”为灭。
状态P
A
7
P
A
6
P
A
5
P
A
4
PA
3
PA
2
PA
1
P
A
PA 状态说明
0 0 0 0 0 0 0 0 0 00 关灯
1 0 0 0 1 0 1 0 0 14 南北:红
东西:绿
2 0 0 0 1 0 0 1 0 12 南北:红
东西:黄
3 0 0 0 1 0 0 0 0 10 南北:红
东西:关
4 0 1 0 0 0 0 0 1 41 南北:绿
东西:红
5 0 0 1 0 0 0 0 1 21 南北:黄
东西:红
6 0 0 0 0 0 0 0 1 01 南北:关
东西:红
其中状态1和4持续30秒,其他状态持续0.5
秒,又状态2和3,状态5和6之间各循环5次。
整个控制过程,要按照上面的流程,依次把相应的控制码输出到端口A ,6个交通灯就能够按照要求实现交通管理。
状态变换的流程图为: (2)编程与运行 构造整个流程对灯光进行控制的代码表: 14,12,10,12,10,12,10,12,10,12,10,41,21,01,21,01,21,01,21,01,21,01 以上均为十六进制且假设黄灯闪动5次。
程序依次从代码表中取出控制码输出到端口A ,输出“14H ”和“41H ”后延时30秒,输出其他码后延时0.5秒,整个过程循环进行。
假设8255A 的口地址为304H-307H 。
2.电路原理图
3 2 1
4
5 6
3.程序流程图:
否,短
4.源程序代码:
DATA SEGMENT
TIME1 EQO 10
TIME2 EQO 80
OUT_CODE DB 14H,5 DUP(12H,10H),41H,5 DUP(21H,01H),0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,307H ;控制字端口地址送DX
MOV AL,80H ;送方式字
OUT DX,AL
MOV DX,304H ;端口A的输出端送DX
LPPO0: LEA SI. OUT_CODE ;数据段
LPPO1:MOV AL,[SI]
AND AL,AL
JZ LOOP0
OUT DX,AL
INC SI
MOV CX,TIME1 ;短延时
TEST AL,44H ;测码字为14H或41H?
JZ DELAY1 ;均非
MOV CX,TIME2 ;长延时
DELAY1:PUSH CX ;延时程序
PUSH AX
MOV CX,0040H
A1: MOV AX,056CH
A2: DEC AX
JNZ A2
LOOP A1
POP AX
POP CX
LOOP DELAY1
MOV AH,0BH ;检测是否有键盘输入
INT 21H
AND AL,AL
JZ LOOP1
XOR AL,AL ;关灯退出
OUT DX,AL
MOV AH,4CH ;返回DOS系统
INT 21H
CODE ENDS
END START
四、心得体会:
经过本次微机原理课程设计,我了解了汇编综合性实验的整体设计思路与实验流图。
通过参阅书籍及电子文档,在编写程序和设计硬件电路中,我对课堂上学到的理论知识有了更深的理解,并且应用到实际上去。
而且在运用到实际的过程中,通过发现问题、改正问题,继而解决问题。
在接口电路方面,开始做接口实验的时候自己对这些芯片还不是很熟悉,后来查阅实验指导书并结合平时自己做实验的经历,慢慢的我能够对这些芯片进行编程使用。
五、参考文献
[1] 朱定华微机原理、汇编与接口技术
清华大学出版社2007
[2] 赵欢微机原理与应用实训高等教育出版社2005
[3] 邹道胜微机原理实验指导华中科技大学出版社2009。