8255共有40個引腳,采用雙列直插式封裝,各引腳功能如下: D0--D7:三態雙向數據線,與單片機數據總線連接,用來傳送數據信息。
CS:片選信號線,低電平有效,表示芯片被選中。
RD:讀出信號線,低電平有效,控制數據的讀出。
WR:寫入信號線,低電平有效,控制數據的寫入。
Vcc:+5V電源。
PA0--PA7:A口輸入/輸出線。
PB0--PB7:B口輸入/輸出線。
PC0--PC7:C口輸入/輸出線。
RESET:復位信號線。
A1、A0:地址線,用來選擇8255內部端口。
GND:地線。 其控制邏輯為:
交通燈控制課程設計報告 課程名稱:微型計算機技術及應用 專 業:電氣工程及其自動化 班 級:************ 學 號:************ 姓 名:************ 指導教師: ************ 日 期:2013-12-10
目錄 第一章 設計內容的概述 一. 設計任務內容 二. 設計要求 第二章 硬件的設計 一. 設計過程簡單分析 二. 硬件系統工作原理 三. 硬件原理 1. 8086各個引腳的連接方法 2. 時鐘發生器8284芯片的說明 第三章 程序設計 一.流程圖 二.程序代碼 三.硬件清單 四.芯片資料 1. 8255介紹 2.8253介紹 3. 8282介紹 4.3—8譯碼器74LS138介紹 第四章 總結 第一章 設計內容的概述 一.設計任務內容 用8255來控制LED燈,用8253來定時,達到交通控制的目的。 二.設計要求 一開始,(南北用1,3東西為2,4)四個路口都為紅燈,然后南北變為綠燈通車東西變為紅色,30秒之后后,黃燈變亮,黃燈閃爍5次之后南北變為紅燈,東西變為綠燈通車,30秒之后后,黃燈變亮,黃燈閃爍5次之后南北變綠燈,東西變為紅燈,重復上述過程。 
第二章 硬件的設計 一.設計過程簡單分析 分析:紅,黃,綠燈可分別接在8255的A口,B口和C口上,燈的亮滅可直接由8086輸出0,1控制。30秒延時及閃爍由8253控制,由閃爍的實現方法可由8253來實現。 設8253各口地址分別為:設8253基地址即通道0地址為04A0H;通道1為04A2H;通道2為04A4H;命令控制口為04A6H。 黃燈閃爍的頻率為1HZ,所以想到由8253產生一個1HZ的方波, 8255控制或門打開的時間,在或門打開的時間內,8253將方波信號輸入或門使黃燈閃爍。 由于計數值最大為65535,1MHZ/65536的值遠大于2HZ,所以采用兩個計數器級聯的方式,8253通道0的clock0輸入由分頻器產生的1MHZ時鐘脈沖,工作在方式 3即方波發生器方式,理論設計輸出 周期為0.01s的方波。1MHZ的時鐘脈沖其重復周期為T=1/1MHZ=1 s,因此通道0的計數初值為10000=2710H。由此方波分別作為clock1和clock2的輸入時鐘脈沖,所以通道1和通道2的輸入時鐘頻率為100HZ,通道1作計數器工作在方式1,計數初值3000=BB8H既30s,計數到則輸出一個高電平到8255的PA7口,8255將A口數據輸入到8086,8086檢測到高電平既完成30s定時。通道2工作在方式3需輸出一個1HZ的方波,通過一個或門和8086共同控制黃燈的閃爍,因此也是工作在方波發生器方式,其計數初值為100=64H,將黃燈的狀態反饋到8055的端口PB7和PC7,同樣輸入到8086,8086通過兩次檢測端口狀態可知黃燈的狀態變化,計9次狀態變化可完成5次閃爍。 三個通道的門控信號都未用,均接+5V即可。 二.硬件系統工作原理 工作原理說明: 此系統是通過并行接口芯片8255A和8086計算機的硬件連接,以及通過8253延時的方法,來實現十字路口交通燈的模擬控制。 如硬件連接圖所示,紅燈(RLED),黃燈(YLEDD)和綠燈(GLED)分別接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分別接1,2,3,4路口的紅燈,B,C口類推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通過地址鎖存器8282,接到三八譯碼器,譯碼后分別連到8255和8253的CS片選端。8253的三個門控端接+5V,CLOCK0接由分頻器產生的1MHZ的時鐘脈沖,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通過檢測此端口是否有高電平來判斷是否30S定時到。OUT2產生1MHZ方波通過或門和8255的B口共同控制黃燈的閃爍。8255三個口全部工作在方式0既基本輸入輸出方式,紅綠燈的轉換由軟件編程實現。 三.硬件原理 由于8255A與8086CPU是以低八位數據線相連接的,所以應該是8255A的 、 線分別與8086CPU的 、 線相連,而將8086的 線作為選通信號。如果是按8255A內部地址來看,則在圖中它的地址是PA口地址即(CS+000H),PB口地址為(CS+001H),PC口地址為(CS+002H),命令控制口地址為(CS+003H),其中,CS為8255片選信號 的首地址;若是按8086CPU地址來看,則8255A的地址是PA口地址即(CS+000H),PB口地址為(CS+002H),PC口地址為(CS+004H),命令控制口地址為(CS+006H)。當CS=0288H,則PA口地址為0288H,PB口地址為028AH,PC口地址為028CH,命令控制口地址為028EH。 1.8086各個引腳的連接方法 (1) 引腳:通常用此引線產生片選信號,當為 =1, =0編碼時,在數據總線低8位和偶地址之間進行字節傳送( ~ )。 (2)CLK(Clock)時鐘信號(輸入):CLK為CPU和總線控制器提供基本的定時脈沖。時鐘周期是非對稱的,當它為有效高電平的時間和時鐘周期的比為33%時,提供最佳的內部定時。由8284時鐘發生器產生,8086CPU使用的時鐘頻率,因芯片型號不同,時鐘頻率不同。這里采用5MHz。 (3) (+5V),GND(地):CPU所需電源 =+5V。GND為地線。 (4)QS0ALE(Address Latch Enable)地址鎖存允許信號,輸出高電平有效,作地址鎖存器8282/8283的片選信號,在 地址周期狀態,ALE有效,表示AB、DB上傳送的是地址信息,將它鎖存。這是由于AB、DB分時復用所需要的,ALE信號線不能懸空。如圖所示,加入2片地址鎖存器8282。 (5)RESET:復位信號,輸入,高電平有效。8086接到復位信號后,停止現行操作,并初始化段寄存器DS,SS,ES,標志寄存器PSW,指令指針IP和指令隊列,而使CS=FFFFH。RESET信號至少保持四個周期以上的高電平,當它變為低電平時(一個下降沿),CPU執行重啟過程,8086將從地址FFF0H開始執行指令。通常FFFF0H單元開始的幾個單元中存放一條JMP指令,將入口轉到引導和裝配程序中,從而實現對系統的初始化,引導監控程序或操作系統程序。由于出現突然斷電或其它情況時,8086可能正在執行交通燈程序,現有的地址丟失,應按下RESET鍵重新開始。另外,應將8255A與8086的RESET線相連,保持同步。 (6)MN/ (Minimun/MaximuN): 最小、最大工作模式選擇信號,輸入。此時MN/ 接+5V,構成單處理器系統,系統控制信號由CPU提供。 接下來,對8282芯片作一下說明: ~ :8位數據輸入; ~ :8位數據輸出;STB:選通信號; :輸出允許信號,在不帶DMA控制器的8086單處理器系統中,它接地。其實,這就是8個D觸發器。由于只用 ~ ,所以用兩片即可。 2.時鐘發生器8284芯片的說明 (1)時鐘信號發生器: =0時,時鐘信號輸入由X1 、X2 端接上晶體,由晶體振蕩器產生時鐘信號;CLK:3分頻OSC后的時鐘,輸出頻率4.77MHz,占空比為1/3,大約滿足8086CPU的輸入頻率5MHz、占空比33%的要求。 (2)復位生成電路: 由 輸入的信號來觸發內部同步觸發器,由此產生信號RESET,送到CPU的RESET端,復位信號由CLK的下降沿同步。此時, 端接“電源好“信號,使系統上電后自動復位。 此為最小模式系統,除了8086CPU,I/O接口芯片8255A,定時計數芯片8353外,其它配置如下: 1片8284A,作為時鐘發生器; 2片8282,作為地址鎖存器; 2片74LS138,作為地址選通譯碼器; 1個二輸入或非門;1個4輸入或非門;1個二輸入與非門;4個或門 12個發光二極管;12個限流電阻;1個復位信號開關。 第三章 程序設計 一.流程圖
三.硬件清單 1片8255,作為控制外設 1片8253,作為數據控制器 1片8284A,作為時鐘發生器; 2片8282,作為地址鎖存器; 2片74LS138,作為地址選通譯碼器; 1個二輸入或非門;1個4輸入或非門;1個二輸入與非門;4個或門 12個發光二極管;12個限流電阻;1個復位信號開關。 四.芯片資料 1.8255介紹 8255的內部結構 8255A是一個40引腳的雙列直插式集成電路芯片 按功能可把8255A分為三個邏輯電路部分,即:口電路、總線接口電路和控制邏輯電路。 (1)口電路 8255A共有三個8位口,其中A口和B口是單純的數據口,供數據I/O使用。而C口則既可以作數據口,又可以作控制口使用,用于實現A口和B口的控制功能。 數據傳送中A口所需的控制信號由C口高位部分(PC7~PC4)提供,因此把A口和C口高位部分合在一起稱之為A組;同樣理由把B口和C口低位部分(PC3~PC0)合在一起稱之為B組。 (2)總線接口電路 總線接口電路用于實現8255A和單片微機的信號連接。其中包括: (a)數據總線緩沖器 數據總線緩沖器為8位雙向三態緩沖器,可直接和80C51的數據線相連,與I/O操作有關的數據、控制字和狀態信息都是通過該緩沖器進行傳送。 (b)讀/寫控制邏輯 與讀寫有關的控制信號有 CS—片選信號(低電平有效) RD—讀信號(低電平有效) WR—寫信號(低電平有效) A0、A1—端口選擇信號。8255A共有四個可尋址的端口(即A口、B口、C口和控制寄存器),用二位地址編碼即可實現選擇。參見下表。 RESET—復位信號(高電平有效)。復位之后,控制寄存器清除,各端口被置為輸入方式。 讀寫控制邏輯用于實現8255A的硬件管理:芯片的選擇,口的尋址以及規定各端口和單片微機之間的數據傳送方向。 (c)控制邏輯電路 控制邏輯電路包括A組控制和B組控制,合在一起構成8位控制寄存器。用于存放各口的工作方式控制字 8255A工作方式及數據I/O操作 (1)8255A的工作方式 8255A共有三種工作方式,即方式0、方式1、方式2. (a)方式0 基本輸入/輸出方式 方式0下,可供使用的是兩個8位口(A口和B口)及兩個4位口(C口高4位部分和低4位部分)。四個口可以是輸入和輸出的任何組合。 方式0適用于無條件數據傳送,也可以把C口的某一位作為狀態位,實現查詢方式的數據傳送。 (b)方式1 選通輸入/輸出方式 A口和B口分別用于數據的輸入/輸出。而C口則作為數據傳送的聯絡信號。具體定義見表7–2。可見A口和B口的聯絡信號都是三個,如果A或B只有一個口按方式1使用,則剩下的另外13位口線仍然可按方式0使用。如果兩個口都按方式1使用,則還剩下2位口線,這兩位口線仍然可以進行位狀態的輸入輸出。 方式1適用于查詢或中斷方式的數據輸入/輸出。 (c)方式2 雙向數據傳送方式 只有A口才能選擇這種工作方式,這時A口既能輸入數據又能輸出數據。在這種方式下需使用C口的五位線作控制線,信號定義如表7–2所示。方式2適用于查詢或中斷方式的雙向數據傳送。如果把A口置于方式2下,則B口只能工作于方式0. (2)數據輸入操作 用于輸入操作的聯絡信號有: STB(StroBe)—選通脈沖,輸入,低電平有效。 當外設送來STB信號時,輸入數據裝入8255A的鎖存器。 IBF(Input Buffer Full) —輸入緩沖器滿信號,輸出,高電平有效。 IBF信號有效,表明數據已裝入鎖存器,因此它是一個狀態信號。 INTR(INTerrupt Request)—中斷請求信號,高電平有效,當IBF數據輸入過程:當外設準備好數據輸入后,發出信號,輸入的數據送入緩沖器。然后IBF信號有效。如使用查詢方式,則IBF即作為狀態信號供查詢使用;如使用中斷方式,當信號由低變高時,產生INTR信號,向單片微機發出中斷。單片微機在響應中斷后執行中斷服務程序時讀入數據,并使INTR信號變低,同時也使IBF信號同時變低。以通知外設準備下一次數據輸入。 (3)數據輸出操作 用于數據輸出操作的聯絡信號有: ACK(ACKnowledge)—外設響應信號輸入,低電平有效。 當外設取走輸出數據,并處理完畢后向單片微機發回的響應信號為高,信號由低變高(后沿)時,中斷請求信號有效。向單片微機發出中斷請求。 OBF(Output Buffer Full)——輸出緩沖器滿信號,輸出,低電平有效。 當單片微機把輸出數據寫入8255A鎖存器后,該信號有效,并送去啟動外設以接收數據。 INTR—中斷請求信號,輸出,高電平有效。 數據輸出過程:外設接收并處理完一組數據后,發回ACK信號。該信號使OBF變高,表明輸出緩沖器已空。如使用查詢方式,則OBF可作為狀態信號供查詢使用;如使用中斷方式,則當ACK信號結束時,INTR有效,向單片微機發出中斷請求。在中斷服務過程中,把下一個輸出數據寫入8255A的輸出緩沖器。寫入后OBF有效,表明輸出數據已到,并以此信號啟動外設工作,取走并處理8255A中的輸出數據。 表7–2 8255A C口聯絡信號定義 2.8253定時計數器 8253內部可分為6個模塊,每個模塊的功能如下: 1. 數據總線緩沖器及數據總線D0~D7 2. 讀/寫控制邏輯及控制引腳
CS* A1 A0 |
I/O地址 |
讀操作RD* |
寫操作WR* | 0 0 0 0 0 1 0 1 0 0 1 1 | 40H 41H 42H 43H | 讀計數器0 讀計數器1 讀計數器2 無操作 | 寫計數器0 寫計數器1 寫計數器2 寫控制字 |
3. 控制字寄存器 在初始化編程時,CPU寫入方式控制字到控制字寄存器中,用以選擇計數通道及其相應的工作方式。 8253的控制字: 8253的工作方式也是有控制字來決定,其控制字意義如下 4. 計數通道0、計數通道1、計數通道2 3個計數通道內部結構完全相同。每個計數通道都由一個16位計數初值寄存器、一個16位減法計數器和一個16位計數值鎖存器組成 計數初值存于預置寄存器,在計數過程中,減法計數器的值不斷遞減,而預置寄存器中的預置不變。輸出鎖存器用于寫入鎖存命令時,鎖定當前計數值。 計數器的3個引腳說明: (1)CLK時鐘輸入信號 在計數過程中,此引腳上每輸入一個時鐘信號(下降沿),計數器的計數值減1 (2) GATE門控輸入信號 控制計數器工作,可分成電平控制和上升沿控制兩種類型 (3) OUT計數器輸出信號 當一次計數過程結束(計數值減為0),OUT引腳上將產生一個輸出信號 8253有6種工作方式,由方式控制字確定 區分這6種工作方式的主要標志由3點:一是輸出波形不同;二是啟動計數器的觸發方式不同;三是計數過程中門控信號GATE對計數器操作的控制不同。 1..方式0--低電平輸出(GATE信號上升沿繼續計數) 2.方式1--低電平輸出(GATE信號上升沿重新計數) 3.方式2--周期性脈沖輸出 4.方式3--周期性方波輸出 OUT輸出低電平,裝入計數值n后,OUT立即跳變為高電平。如果當前GATE為高電平,則立即開始減“1”計數,OUT保持為高電平,若n為偶數,則當計數值減到n/2時,OUT跳變為低電平,一直保持到計數值為“0”,系統才重新置入計數值n,實現循環計數。這時OUT端輸出周期為n×CLK周期,占空比為1:1的方波序列:若n為奇數,則OUT端輸出周期為n×CLK周期,占空比(n+1)/2 : (n-1)/2的近似方波序列。 5.方式4--單次負脈沖輸出(軟件觸發) 6.方式5--單次負脈沖輸出(硬件觸發) 每種工作方式的設置過程類似: ⑴ 設定工作方式 ⑵ 設定計數初值 〔 ⑶ 硬件啟動 〕 ⑷ 計數初值進入減1計數器 ⑸ 每輸入一個時鐘計數器減1的計數過程 ⑹ 計數過程結束 3.8282 ~ :8位數據輸入; ~ :8位數據輸出;STB:選通信號; :輸出允許信號,在不帶DMA控制器的8086單處理器系統中,它接地。其實,這就是8個D觸發器。由于只用 ~ ,所以用兩片即可。 4.3—8譯碼器74LS138 74LS138譯碼器引腳圖,邏輯圖及功能表如下 第四章 總結 在這多設計交通燈系統的過程中,我深深體會到了理論和實際的差距。在做關于交通燈系統設計中我查閱很多這方面的資料,了解一些芯片的功能,比如說要了解8086芯片中各個引腳的功能,怎么樣去使用8255這個可編程并行接口芯片,怎么樣使用8253來定時及輸出一定頻率的脈沖,怎么樣用8282這個地址鎖存器來存儲高位地址和低位地址以及交通有哪些規則.我在已有的理論基礎上,明白了制作實物的一般過程。 整個設計過程,開始最大的問題是不知道從哪里下手,從哪里開始切入,后來通過查資料明白了這個問題。再后來就是編程,尤其是芯片初始化,整了很多次,最后還是在同學的幫助下完成的。其實,準確的說不是我一個人獨自完成的,在許多地方,我的同學都提出了寶貴的意見,再次感謝他們。
- DATA SEGMENT; 設置數據段,以及端口地址分配
- PORTA EQU 218H
- PORTB EQU 219H
- PORTC EQU 21AH
- PTCON8255 EQU 21BH
- PORT0 EQU 238H
- PORT1 EQU 239H
- PORT2 EQU 240H
- PTCON8253 EQU 241H
- DATA ENDS
- CODE SEGMENT
- ASSUME DS:DATA,CS:CODE
- INIT: MOV AX,DATA
- MOV DS,AX
- MOV DX, PTCON8253
- MOV AL,36H
- OUT DX,AL
- MOV DX,PORT0
- MOV AX,2710H
- OUT DX,AL
- MOV AL,AH
- OUT DX,AL; 通道0工作方式3 周期0.01s
- MOV DX, PTCON8253
- MOV AL,71H
- OUT DX,AL;通道1工作方式1
- MOV DX, PTCON8253
- MOV AL,96H
- OUT DX,AL
- MOV DX,PORT2
- MOV AL,64H
- OUT DX,AL; 通道2工作方式3 周期1s 8253初始化完成
- MOV DX, PTCON8255
- MOV AL,80H
- OUT DX,AL;8255初始化 A,B,C口均工作在方式0
- MOV DX,PORTA
- MOV AL,0
- OUT DX,AL
- MOV DX,PORTB
- MOV AL,0FH
- OUT DX,AL
- MOV DX,PORTC
- MOV AL,0FH
- OUT DX,AL;燈初始化完成
- STA: MOV DX,PORTA
- MOV AL,0A0H
- OUT DX,AL
- MOV DX,PORTB
- MOV AL,0F0H
- OUT DX,AL
- MOV DX,PORTC
- MOV AL,50H
- OUT DX,AL;1,3綠燈亮,2,4紅燈亮
- MOV DX,PORT1
- MOV AX,0BB8H
- OUT DX,AL
- MOV AL,AH
- OUT DX,AL;8253通道1賦值 開始計時
- SCAN1: MOV AL,0
- MOV DX,PTCON8255
- MOV AL,90H
- OUT DX,AL
- MOV DX,PORTA
- IN AL,DX
- AND AL,0FH
- CMP AL,1
- JNZ SCAN1;掃描PA7口
- FLA1: MOV DX, PTCON8255
- MOV AL,80H
- OUT DX,AL
- MOV DX,PORTC
- MOV AL,0F0H
- OUT DX,AL
- MOV DX,PORTB
- MOV AL,50H
- OUT DX,AL
- MOV CX,0
- TEST1: MOV DX,PTCON8255;檢測PB7
- MOV AL,82H
- OUT DX,AL
- MOV DX,PORTB
- IN AL,DX
- AND AL,0FH
- MOV AH,AL
- MOV DX,PTCON8255
- MOV AL,82H
- OUT DX,AL
- MOV DX,PORTB
- IN AL,DX
- AND AL,0FH
- XOR AL,AH
- ADD CL,AL
- CMP CL,9
- JNZ TEST1;閃爍5次
- MOV DX, PTCON8255
- MOV AL,80H
- OUT DX,AL
- MOV DX,PORTA
- MOV AL,50H
- OUT DX,AL
- MOV DX,PORTB
- MOV AL,0F0H
- OUT DX,AL
- MOV DX,PORTC
- MOV AL,0A0H;1,3紅燈亮,2,4綠燈亮
- MOV DX,PORT1
- MOV AX,0BB8H
- OUT DX,AL
- MOV AL,AH
- OUT DX,AL;8253通道1賦值 開始計時
- SCAN2: MOV AL,0
- MOV DX,PTCON8255
- MOV AL,90H
- OUT DX,AL
- MOV DX,PORTA
- IN AL,DX
- AND AL,0FH
- CMP AL,1
- JNZ SCAN2
- FLA2: MOV DX, PTCON8255
- MOV AL,80H
- OUT DX,AL
- MOV DX,PORTC
- MOV AL,0F0H
- OUT DX,AL
- MOV DX,PORTB
- MOV AL,0A0H
- OUT DX,AL
- TEST2: MOV DX,PTCON8255
- MOV AL,88H
- OUT DX,AL
- MOV DX,PORTC
- IN AL,DX
- AND AL,0FH
- MOV AH,AL
- MOV DX,PTCON8255
- MOV AL,88H
- OUT DX,AL
- MOV DX,PORTC
- IN AL,DX
- AND AL,0FH
- XOR AL,AH
- ADD CL,AL
- CMP CL,9
- JNZ TEST2;閃爍5次
- CODE ENDS
- END STA
復制代碼
完整的Word格式文檔51黑下載地址:
微機8086-8255-交通燈-課程設計.doc
(284 KB, 下載次數: 42)
2018-6-11 18:38 上傳
點擊文件名下載附件
|