课程设计说明书
课程设计名称:
微机原理与接口技术课程设计
课程设计题目:
微机打印口外接交通灯模拟LED显示器
学
院
名
称:
信息工程学院
专业:
计算机科学与技术
班级:
学号:
姓名:
评分:
教师:
年
X
月
X
日
设计选题及功能说明
设计选题:微机打印口外接交通灯模拟LED显示器。
课题要求及功能说明:
通过微机打印插座(25D)设计,用微机编程可实现对打印口外接12个路口交通灯(红、绿、黄)的控制显示等。
设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;
延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4方向通车;
延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次后,再切换到1、3路口方向,之后重复上述过程。
硬件电路设计
硬件电路采用Protel
Technology公司的CAD工具Protel
99进行设计。
2.1
8255A芯片选择
按照课题设计要求,我们选择通过8255A并口来控制LED发光二极管的亮灭,8255A具有3个通道3种工作方式的可编程并行接口芯片。使用前要写入一个方式控制字选择A、B、C三个端口各自的工作方式,共有三种;
方式0
:基本的输入输出方式,即无须联络就可以直接进行的I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入或输出。
方式1
:选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0.方式2:
双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。
8255A引脚信号如右图
2.2电路设计
本设计用DB25
连接8255控制12个LED亮灭
电路原理图如图1:
图1
交通灯原理图
2.3印刷电路图设计
制作pcb印刷电路板,采用的是自动布线的方法。即利用正确的原理图制作网络表,然后新建CAM
output
configuration文件,在设定好印刷板得规格大小后导入刚才生成的网络表,然后再调整各元件的位置,等待其自动布线。经过多次设计修改,本交通灯模拟LED显示器的PCB图如图2所示
图2
交通灯模拟LED显示器
测试程序
用汇编语言编写对交通灯的测试程序要根据交通灯原理图,主机与8255A连接:从交通灯原理图可以看出,低电平有效/CS选择8255A,通过对A0、A1控制选择8255A的PBPC端口,低电平有效/WR控制输入;8255A与交通灯连接:8255A的端口PB高4位分别与交通灯的四个方向的绿灯相连,PC端口的低4位与四个方向的红灯相连,PC端口的高4位与四个方向的黄灯,从交通灯原理图可看出一下特点(1)相对方向的灯保持一致,如1、3,方向,2、4方向。那么在设计程序时,1、3方向的一样,2、4方向的一样(2)四个方向的交通灯可能出现的组合:红绿、红黄,不会出现绿黄。既不能出现端口PB高4位与PC端口的高4位同时有效的情况。根据以上所述程序可以设计为如下
DATAPT
EQU
378H
CTRLPT
EQU
37AH
INTCNT
EQU
GDURA
EQU
YDURA
EQU
RDURA
EQU
GSTATE
EQU
0
Y1STATE
EQU
Y2STATE
EQU
RSTATE
EQU
Y3STATE
EQU
Y4STATE
EQU
DSEG
SEGMENT
OLD1CH
DD
?
LTSTATE
DB
?
YBLKCNT
DB
0
DSEG
ENDS
CSEG
SEGMENT
ASSUME
CS:
CSEG,DS:
DSEG
START:
MOV
DX,CTRLPT
MOV
AL,11101100B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,10000000B
OUT
DX,AL
MOV
AX,351CH
INT
21H
MOV
WORD
PTR
OLD1CH,BX
MOV
WORD
PTR
OLD1CH
+
2,ES
MOV
DX,OFFSET
NEW1CH
MOV
AX,251CH
CALL
GREEN
INT
21H
MOV
AH,0
INT
16H
LDS
DX,OLD1CH
MOV
AX,251CH
INT
21H
MOV
AH,4CH
INT
21H
NEW1CH:
CMP
CX,0
JZ
NEXT
DEC
CX
IRET
NEXT:
CMP
LTSTATE,GSTATE
JZ
GRN
CMP
LTSTATE,Y1STATE
JZ
YLW1
CMP
LTSTATE,Y2STATE
JZ
YLW2
CMP
LTSTATE,RSTATE
JZ
RD
CMP
LTSTATE,Y3STATE
JZ
YLW3
CMP
LTSTATE,Y4STATE
JZ
YLW4
GRN:
CALL
GREEN
IRET
YLW1:
CALL
YELLOW1
IRET
YLW2:
CALL
YELLOW2
IRET
RD:
CALL
RED
RET
YLW3:
CALL
YELLOW3
IRET
YLW4:
CALL
YELLOW4
IRET
GREEN
PROC
;
;绿灯
PUSH
AX
PUSH
DX
MOV
DX,CTRLPT
MOV
AL,11101000B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,11110000B;1、3方向的绿灯,2、4方向的红灯亮30秒
OUT
DX,AL
MOV
DX,MOV
AL,11100100B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,10100101B
OUT
DX,AL
MOV
CX,GDURA
*
INTCNT
MOV
LTSTATE,Y1STATE
POP
DX
POP
AX
RET
GREEN
ENDP
YELLOW1
PROC
;黄灯
PUSH
AX
PUSH
DX
MOV
DX,CTRLPT
MOV
AL,11100100B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,11110101B
;
1、3方向的黄灯亮0.5秒(黄灯一共闪烁3次,即亮灭各3次)
OUT
DX,AL
MOV
DX,CTRLPT
MOV
AL,11101000B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,10100000B
OUT
DX,AL
MOV
CX,INTCNT
/
MOV
LTSTATE,Y2STATE
POP
DX
POP
AX
RET
YELLOW1
ENDP
YELLOW2
PROC
PUSH
AX
PUSH
DX
MOV
DX,CTRLPT
MOV
AL,11101000B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,11110000B;
1、3方向的黄灯灭0.5秒(黄灯一共闪烁3次,即亮灭各3次)
OUT
DX,AL
MOV
CX,INTCNT
/
INC
YBLKCNT
CMP
YBLKCNT,YDURA
JZ
CHGRED
MOV
LTSTATE,Y1STATE
JMP
Y2RET
CHGRED:
MOV
LTSTATE,RSTATE
MOV
YBLKCNT,0
Y2RET:
POP
DX
POP
AX
RET
YELLOW2
ENDP
RED
PROC
;红灯
PUSH
AX
PUSH
DX
MOV
DX,CTRLPT
MOV
AL,11100100B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,01011010B;
1、3方向的红灯,2、4方向的绿灯亮30秒
OUT
DX,AL
MOV
CX,RDURA
*
INTCNT
MOV
LTSTATE,Y3STATE
POP
DX
POP
AX
RET
RED
ENDP
YELLOW3
PROC;
PUSH
AX
PUSH
DX
MOV
DX,CTRLPT
MOV
AL,11100100B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,11111010B
;
2、4方向的黄灯亮0.5秒(黄灯一共闪烁3次,即亮灭各3次)
OUT
DX,AL
MOV
DX,CTRLPT
MOV
AL,11101000B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,01010000B
OUT
DX,AL
MOV
CX,INTCNT
/
MOV
LTSTATE,Y4STATE
POP
DX
POP
AX
RET
YELLOW3
ENDP
YELLOW4
PROC
PUSH
AX
PUSH
DX
MOV
DX,CTRLPT
MOV
AL,11101000B
OUT
DX,AL
MOV
DX,DATAPT
MOV
AL,11110000B
;
2、4方向的黄灯灭0.5秒(黄灯一共闪烁3次,即亮灭各3次)
OUT
DX,AL
MOV
CX,INTCNT
/
INC
YBLKCNT
CMP
YBLKCNT,YDURA
JZ
CHGGRN
MOV
LTSTATE,Y3STATE
JMP
Y4RET
CHGGRN:
MOV
LTSTATE,GSTATE
MOV
YBLKCNT,0
Y4RET:
POP
DX
POP
AX
RET
YELLOW4
ENDP
CSEG
ENDS
END
START
小结
通过本次关于微机打印口外接交通灯模拟LED显示器的课程设计,我了解了交通灯的工作原理,而在此基础上设计原理图和硬件电路板,则让我对课本上的知识进行了实际的应用,例如DB25
25帧的打印机接口,8255A芯片,对他们的功能及作用都有了较深的理解。完成本次实验的工具软件是protel99,这是一款电子工程师设计电路原理图和PCB的行业软件。不过值得注意的是,本软件的汉化版经常出现问题,特别是对制作pcb图的影响很大。所以建议使用protel99的英文版。通过主机打印口和8255A接口的连接,对db25各个针脚功能有了更深入得了解,拓展了课本上的知识。因为在整个小组中我主要负责制作pcb这一块,所以觉得确定印刷电路板的尺寸大小,定印刷电路层次和元器件布局很重要。实验的最后一部分是编写程序,增强了我的汇编语言能力。
参考文献
戴梅萼
史嘉权
微型计算机技术及应用(第4版)
清华大学出版社
2008年2月
Protel
99SE电路设计基础与工程范例
赵景波
王臣业编著
清华大学出版社2008年5月
Protel
99SE
电路设计与制板
朱云芳
江桦
翟旭等编著
机械工业出版社
2007年11月
汇编语言程序设计教程
(第二版)
卜艳萍编著
清华大学出版社
2007
胡景春
实践优秀作品选编
东南大学出版社
2010年2月
胡景春
刘洪
微机原理\单片机应用实验指导(第二版)
南昌航院计算机系
2004
附录一
电路原理图
附录二
PCB图
附录三
25针并行口打印机口的针脚功能表
南chang航空大学