課程設(shè)計(jì)說明書
課程設(shè)計(jì)名稱:
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
課程設(shè)計(jì)題目:
微機(jī)打印口外接交通燈模擬LED顯示器
學(xué)
院
名
稱:
信息工程學(xué)院
專業(yè):
計(jì)算機(jī)科學(xué)與技術(shù)
班級(jí):
學(xué)號(hào):
姓名:
評(píng)分:
教師:
年
X
月
X
日
設(shè)計(jì)選題及功能說明
設(shè)計(jì)選題:微機(jī)打印口外接交通燈模擬LED顯示器。
課題要求及功能說明:
通過微機(jī)打印插座(25D)設(shè)計(jì),用微機(jī)編程可實(shí)現(xiàn)對(duì)打印口外接12個(gè)路口交通燈(紅、綠、黃)的控制顯示等。
設(shè)有一個(gè)十字路口,1、3為南北方向,2、4為東西方向,初始為四個(gè)路口的紅燈全亮,之后,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車;
延時(shí)一段時(shí)間后,1、3路口的綠燈熄滅,而1、3路口的黃燈開始閃爍,閃爍若干次后,1、3路口紅燈亮,而同時(shí)2、4路口的綠燈亮,2、4方向通車;
延時(shí)一段時(shí)間后,2、4路口的綠燈熄滅,而黃燈開始閃爍,閃爍若干次后,再切換到1、3路口方向,之后重復(fù)上述過程。
硬件電路設(shè)計(jì)
硬件電路采用Protel
Technology公司的CAD工具Protel
99進(jìn)行設(shè)計(jì)。
2.1
8255A芯片選擇
按照課題設(shè)計(jì)要求,我們選擇通過8255A并口來控制LED發(fā)光二極管的亮滅,8255A具有3個(gè)通道3種工作方式的可編程并行接口芯片。使用前要寫入一個(gè)方式控制字選擇A、B、C三個(gè)端口各自的工作方式,共有三種;
方式0
:基本的輸入輸出方式,即無須聯(lián)絡(luò)就可以直接進(jìn)行的I/O方式。其中A、B、C口的高四位或低四位可分別設(shè)置成輸入或輸出。
方式1
:選通I/O,此時(shí)接口和外圍設(shè)備需聯(lián)絡(luò)信號(hào)進(jìn)行協(xié)調(diào),只有A口和B口可以工作在方式1,此時(shí)C口的某些線被規(guī)定為A口或B口與外圍設(shè)備的聯(lián)絡(luò)信號(hào),余下的線只有基本的I/O功能,即只工作在方式0.方式2:
雙向I/O方式,只有A口可以工作在這種方式,該I/O線即可輸入又可輸出,此時(shí)C口有5條線被規(guī)定為A口和外圍設(shè)備的雙向聯(lián)絡(luò)線,C口剩下的三條線可作為B口方式1的聯(lián)絡(luò)線,也可以和B口一起方式0的I/O線。
8255A引腳信號(hào)如右圖
2.2電路設(shè)計(jì)
本設(shè)計(jì)用DB25
連接8255控制12個(gè)LED亮滅
電路原理圖如圖1:
圖1
交通燈原理圖
2.3印刷電路圖設(shè)計(jì)
制作pcb印刷電路板,采用的是自動(dòng)布線的方法。即利用正確的原理圖制作網(wǎng)絡(luò)表,然后新建CAM
output
configuration文件,在設(shè)定好印刷板得規(guī)格大小后導(dǎo)入剛才生成的網(wǎng)絡(luò)表,然后再調(diào)整各元件的位置,等待其自動(dòng)布線。經(jīng)過多次設(shè)計(jì)修改,本交通燈模擬LED顯示器的PCB圖如圖2所示
圖2
交通燈模擬LED顯示器
測(cè)試程序
用匯編語言編寫對(duì)交通燈的測(cè)試程序要根據(jù)交通燈原理圖,主機(jī)與8255A連接:從交通燈原理圖可以看出,低電平有效/CS選擇8255A,通過對(duì)A0、A1控制選擇8255A的PBPC端口,低電平有效/WR控制輸入;8255A與交通燈連接:8255A的端口PB高4位分別與交通燈的四個(gè)方向的綠燈相連,PC端口的低4位與四個(gè)方向的紅燈相連,PC端口的高4位與四個(gè)方向的黃燈,從交通燈原理圖可看出一下特點(diǎn)(1)相對(duì)方向的燈保持一致,如1、3,方向,2、4方向。那么在設(shè)計(jì)程序時(shí),1、3方向的一樣,2、4方向的一樣(2)四個(gè)方向的交通燈可能出現(xiàn)的組合:紅綠、紅黃,不會(huì)出現(xiàn)綠黃。既不能出現(xiàn)端口PB高4位與PC端口的高4位同時(shí)有效的情況。根據(jù)以上所述程序可以設(shè)計(jì)為如下
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
小結(jié)
通過本次關(guān)于微機(jī)打印口外接交通燈模擬LED顯示器的課程設(shè)計(jì),我了解了交通燈的工作原理,而在此基礎(chǔ)上設(shè)計(jì)原理圖和硬件電路板,則讓我對(duì)課本上的知識(shí)進(jìn)行了實(shí)際的應(yīng)用,例如DB25
25幀的打印機(jī)接口,8255A芯片,對(duì)他們的功能及作用都有了較深的理解。完成本次實(shí)驗(yàn)的工具軟件是protel99,這是一款電子工程師設(shè)計(jì)電路原理圖和PCB的行業(yè)軟件。不過值得注意的是,本軟件的漢化版經(jīng)常出現(xiàn)問題,特別是對(duì)制作pcb圖的影響很大。所以建議使用protel99的英文版。通過主機(jī)打印口和8255A接口的連接,對(duì)db25各個(gè)針腳功能有了更深入得了解,拓展了課本上的知識(shí)。因?yàn)樵谡麄€(gè)小組中我主要負(fù)責(zé)制作pcb這一塊,所以覺得確定印刷電路板的尺寸大小,定印刷電路層次和元器件布局很重要。實(shí)驗(yàn)的最后一部分是編寫程序,增強(qiáng)了我的匯編語言能力。
參考文獻(xiàn)
戴梅萼
史嘉權(quán)
微型計(jì)算機(jī)技術(shù)及應(yīng)用(第4版)
清華大學(xué)出版社
2008年2月
Protel
99SE電路設(shè)計(jì)基礎(chǔ)與工程范例
趙景波
王臣業(yè)編著
清華大學(xué)出版社2008年5月
Protel
99SE
電路設(shè)計(jì)與制板
朱云芳
江樺
翟旭等編著
機(jī)械工業(yè)出版社
2007年11月
匯編語言程序設(shè)計(jì)教程
(第二版)
卜艷萍編著
清華大學(xué)出版社
2007
胡景春
實(shí)踐優(yōu)秀作品選編
東南大學(xué)出版社
2010年2月
胡景春
劉洪
微機(jī)原理\單片機(jī)應(yīng)用實(shí)驗(yàn)指導(dǎo)(第二版)
南昌航院計(jì)算機(jī)系
2004
附錄一
電路原理圖
附錄二
PCB圖
附錄三
25針并行口打印機(jī)口的針腳功能表
南chang航空大學(xué)