找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7171|回復(fù): 0
收起左側(cè)

8086+8255交通燈控制課程設(shè)計(jì)報(bào)告

[復(fù)制鏈接]
ID:349684 發(fā)表于 2018-6-11 18:39 | 顯示全部樓層 |閱讀模式
8255共有40個(gè)引腳,采用雙列直插式封裝,各引腳功能如下:

D0--D7:三態(tài)雙向數(shù)據(jù)線,與單片機(jī)數(shù)據(jù)總線連接,用來傳送數(shù)據(jù)信息。
CS:片選信號(hào)線,低電平有效,表示芯片被選中。
RD:讀出信號(hào)線,低電平有效,控制數(shù)據(jù)的讀出。
WR:寫入信號(hào)線,低電平有效,控制數(shù)據(jù)的寫入。
Vcc:+5V電源。
PA0--PA7:A口輸入/輸出線。
PB0--PB7:B口輸入/輸出線。
PC0--PC7:C口輸入/輸出線。
RESET:復(fù)位信號(hào)線。
A1、A0:地址線,用來選擇8255內(nèi)部端口。
GND:地線。

其控制邏輯為:


交通燈控制課程設(shè)計(jì)報(bào)告
課程名稱:微型計(jì)算機(jī)技術(shù)及應(yīng)用
專    業(yè):電氣工程及其自動(dòng)化
班    級(jí):************
學(xué)    號(hào):************
姓    名:************
指導(dǎo)教師: ************
日    期:2013-12-10

              目錄
第一章  設(shè)計(jì)內(nèi)容的概述
      一. 設(shè)計(jì)任務(wù)內(nèi)容
      二. 設(shè)計(jì)要求
第二章  硬件的設(shè)計(jì)
       一. 設(shè)計(jì)過程簡(jiǎn)單分析
       二. 硬件系統(tǒng)工作原理
      三. 硬件原理
   1. 8086各個(gè)引腳的連接方法
         2. 時(shí)鐘發(fā)生器8284芯片的說明
第三章 程序設(shè)計(jì)
  一.流程圖
  二.程序代碼
  三.硬件清單
  四.芯片資料
    1. 8255介紹
        2.8253介紹
        3. 8282介紹
        4.3—8譯碼器74LS138介紹
第四章 總結(jié)

               

                   第一章 設(shè)計(jì)內(nèi)容的概述   

一.設(shè)計(jì)任務(wù)內(nèi)容                        

    用8255來控制LED燈,用8253來定時(shí),達(dá)到交通控制的目的。

二.設(shè)計(jì)要求

    一開始,(南北用1,3東西為2,4)四個(gè)路口都為紅燈,然后南北變?yōu)榫G燈通車東西變?yōu)榧t色,30秒之后后,黃燈變亮,黃燈閃爍5次之后南北變?yōu)榧t燈,東西變?yōu)榫G燈通車,30秒之后后,黃燈變亮,黃燈閃爍5次之后南北變綠燈,東西變?yōu)榧t燈,重復(fù)上述過程。

第二章  硬件的設(shè)計(jì)

一.設(shè)計(jì)過程簡(jiǎn)單分析

     分析:紅,黃,綠燈可分別接在8255的A口,B口和C口上,燈的亮滅可直接由8086輸出0,1控制。30秒延時(shí)及閃爍由8253控制,由閃爍的實(shí)現(xiàn)方法可由8253來實(shí)現(xiàn)。
    設(shè)8253各口地址分別為:設(shè)8253基地址即通道0地址為04A0H;通道1為04A2H;通道2為04A4H;命令控制口為04A6H。
黃燈閃爍的頻率為1HZ,所以想到由8253產(chǎn)生一個(gè)1HZ的方波, 8255控制或門打開的時(shí)間,在或門打開的時(shí)間內(nèi),8253將方波信號(hào)輸入或門使黃燈閃爍。
由于計(jì)數(shù)值最大為65535,1MHZ/65536的值遠(yuǎn)大于2HZ,所以采用兩個(gè)計(jì)數(shù)器級(jí)聯(lián)的方式,8253通道0的clock0輸入由分頻器產(chǎn)生的1MHZ時(shí)鐘脈沖,工作在方式 3即方波發(fā)生器方式,理論設(shè)計(jì)輸出 周期為0.01s的方波。1MHZ的時(shí)鐘脈沖其重復(fù)周期為T=1/1MHZ=1s,因此通道0的計(jì)數(shù)初值為10000=2710H。由此方波分別作為clock1和clock2的輸入時(shí)鐘脈沖,所以通道1和通道2的輸入時(shí)鐘頻率為100HZ,通道1作計(jì)數(shù)器工作在方式1,計(jì)數(shù)初值3000=BB8H既30s,計(jì)數(shù)到則輸出一個(gè)高電平到8255的PA7口,8255將A口數(shù)據(jù)輸入到8086,8086檢測(cè)到高電平既完成30s定時(shí)。通道2工作在方式3需輸出一個(gè)1HZ的方波,通過一個(gè)或門和8086共同控制黃燈的閃爍,因此也是工作在方波發(fā)生器方式,其計(jì)數(shù)初值為100=64H,將黃燈的狀態(tài)反饋到8055的端口PB7和PC7,同樣輸入到8086,8086通過兩次檢測(cè)端口狀態(tài)可知黃燈的狀態(tài)變化,計(jì)9次狀態(tài)變化可完成5次閃爍。
三個(gè)通道的門控信號(hào)都未用,均接+5V即可。
二.硬件系統(tǒng)工作原理
工作原理說明:
    此系統(tǒng)是通過并行接口芯片8255A和8086計(jì)算機(jī)的硬件連接,以及通過8253延時(shí)的方法,來實(shí)現(xiàn)十字路口交通燈的模擬控制。
如硬件連接圖所示,紅燈(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的三個(gè)門控端接+5V,CLOCK0接由分頻器產(chǎn)生的1MHZ的時(shí)鐘脈沖,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通過檢測(cè)此端口是否有高電平來判斷是否30S定時(shí)到。OUT2產(chǎn)生1MHZ方波通過或門和8255的B口共同控制黃燈的閃爍。8255三個(gè)口全部工作在方式0既基本輸入輸出方式,紅綠燈的轉(zhuǎn)換由軟件編程實(shí)現(xiàn)。
三.硬件原理
由于8255A與8086CPU是以低八位數(shù)據(jù)線相連接的,所以應(yīng)該是8255A的、線分別與8086CPU的線相連,而將8086的線作為選通信號(hào)。如果是按8255A內(nèi)部地址來看,則在圖中它的地址是PA口地址即(CS+000H),PB口地址為(CS+001H),PC口地址為(CS+002H),命令控制口地址為(CS+003H),其中,CS為8255片選信號(hào)的首地址;若是按8086CPU地址來看,則8255A的地址是PA口地址即(CS+000H),PB口地址為(CS+002H),PC口地址為(CS+004H),命令控制口地址為(CS+006H)。當(dāng)CS=0288H,則PA口地址為0288H,PB口地址為028AH,PC口地址為028CH,命令控制口地址為028EH。
1.8086各個(gè)引腳的連接方法
(1)引腳:通常用此引線產(chǎn)生片選信號(hào),當(dāng)為=1,=0編碼時(shí),在數(shù)據(jù)總線低8位和偶地址之間進(jìn)行字節(jié)傳送()。
(2)CLK(Clock)時(shí)鐘信號(hào)(輸入):CLK為CPU和總線控制器提供基本的定時(shí)脈沖。時(shí)鐘周期是非對(duì)稱的,當(dāng)它為有效高電平的時(shí)間和時(shí)鐘周期的比為33%時(shí),提供最佳的內(nèi)部定時(shí)。由8284時(shí)鐘發(fā)生器產(chǎn)生,8086CPU使用的時(shí)鐘頻率,因芯片型號(hào)不同,時(shí)鐘頻率不同。這里采用5MHz。
(3)(+5V),GND(地):CPU所需電源=+5V。GND為地線。
(4)QS0ALE(Address Latch Enable)地址鎖存允許信號(hào),輸出高電平有效,作地址鎖存器8282/8283的片選信號(hào),在地址周期狀態(tài),ALE有效,表示AB、DB上傳送的是地址信息,將它鎖存。這是由于AB、DB分時(shí)復(fù)用所需要的,ALE信號(hào)線不能懸空。如圖所示,加入2片地址鎖存器8282。
(5)RESET:復(fù)位信號(hào),輸入,高電平有效。8086接到復(fù)位信號(hào)后,停止現(xiàn)行操作,并初始化段寄存器DS,SS,ES,標(biāo)志寄存器PSW,指令指針I(yè)P和指令隊(duì)列,而使CS=FFFFH。RESET信號(hào)至少保持四個(gè)周期以上的高電平,當(dāng)它變?yōu)榈碗娖綍r(shí)(一個(gè)下降沿),CPU執(zhí)行重啟過程,8086將從地址FFF0H開始執(zhí)行指令。通常FFFF0H單元開始的幾個(gè)單元中存放一條JMP指令,將入口轉(zhuǎn)到引導(dǎo)和裝配程序中,從而實(shí)現(xiàn)對(duì)系統(tǒng)的初始化,引導(dǎo)監(jiān)控程序或操作系統(tǒng)程序。由于出現(xiàn)突然斷電或其它情況時(shí),8086可能正在執(zhí)行交通燈程序,現(xiàn)有的地址丟失,應(yīng)按下RESET鍵重新開始。另外,應(yīng)將8255A與8086的RESET線相連,保持同步。
(6)MN/(Minimun/MaximuN): 最小、最大工作模式選擇信號(hào),輸入。此時(shí)MN/接+5V,構(gòu)成單處理器系統(tǒng),系統(tǒng)控制信號(hào)由CPU提供。
接下來,對(duì)8282芯片作一下說明:
:8位數(shù)據(jù)輸入;:8位數(shù)據(jù)輸出;STB:選通信號(hào);
:輸出允許信號(hào),在不帶DMA控制器的8086單處理器系統(tǒng)中,它接地。
其實(shí),這就是8個(gè)D觸發(fā)器。由于只用,所以用兩片即可。
2.時(shí)鐘發(fā)生器8284芯片的說明
(1)時(shí)鐘信號(hào)發(fā)生器:
=0時(shí),時(shí)鐘信號(hào)輸入由X1 、X2 端接上晶體,由晶體振蕩器產(chǎn)生時(shí)鐘信號(hào);
CLK:3分頻OSC后的時(shí)鐘,輸出頻率4.77MHz,占空比為1/3,大約滿足8086CPU的輸入頻率5MHz、占空比33%的要求。
(2)復(fù)位生成電路:
輸入的信號(hào)來觸發(fā)內(nèi)部同步觸發(fā)器,由此產(chǎn)生信號(hào)RESET,送到CPU的RESET端,復(fù)位信號(hào)由CLK的下降沿同步。此時(shí),端接“電源好“信號(hào),使系統(tǒng)上電后自動(dòng)復(fù)位。
此為最小模式系統(tǒng),除了8086CPU,I/O接口芯片8255A,定時(shí)計(jì)數(shù)芯片8353外,其它配置如下:
    1片8284A,作為時(shí)鐘發(fā)生器;
2片8282,作為地址鎖存器;
2片74LS138,作為地址選通譯碼器;
1個(gè)二輸入或非門;1個(gè)4輸入或非門;1個(gè)二輸入與非門;4個(gè)或門
12個(gè)發(fā)光二極管;12個(gè)限流電阻;1個(gè)復(fù)位信號(hào)開關(guān)。
                  第三章 程序設(shè)計(jì)
一.流程圖

                                
三.硬件清單  
   1片8255,作為控制外設(shè)
   1片8253,作為數(shù)據(jù)控制器
   1片8284A,作為時(shí)鐘發(fā)生器;
   2片8282,作為地址鎖存器;
   2片74LS138,作為地址選通譯碼器;
   1個(gè)二輸入或非門;1個(gè)4輸入或非門;1個(gè)二輸入與非門;4個(gè)或門
   12個(gè)發(fā)光二極管;12個(gè)限流電阻;1個(gè)復(fù)位信號(hào)開關(guān)。
四.芯片資料
  1.8255介紹   
     8255的內(nèi)部結(jié)構(gòu)
8255A是一個(gè)40引腳的雙列直插式集成電路芯片
按功能可把8255A分為三個(gè)邏輯電路部分,即:口電路、總線接口電路和控制邏輯電路。
(1)口電路
    8255A共有三個(gè)8位口,其中A口和B口是單純的數(shù)據(jù)口,供數(shù)據(jù)I/O使用。而C口則既可以作數(shù)據(jù)口,又可以作控制口使用,用于實(shí)現(xiàn)A口和B口的控制功能。
數(shù)據(jù)傳送中A口所需的控制信號(hào)由C口高位部分(PC7~PC4)提供,因此把A口和C口高位部分合在一起稱之為A組;同樣理由把B口和C口低位部分(PC3~PC0)合在一起稱之為B組。            
(2)總線接口電路
   總線接口電路用于實(shí)現(xiàn)8255A和單片微機(jī)的信號(hào)連接。其中包括:
(a)數(shù)據(jù)總線緩沖器
    數(shù)據(jù)總線緩沖器為8位雙向三態(tài)緩沖器,可直接和80C51的數(shù)據(jù)線相連,與I/O操作有關(guān)的數(shù)據(jù)、控制字和狀態(tài)信息都是通過該緩沖器進(jìn)行傳送。
(b)讀/寫控制邏輯
         與讀寫有關(guān)的控制信號(hào)有
         CS—片選信號(hào)(低電平有效)
         RD—讀信號(hào)(低電平有效)
         WR—寫信號(hào)(低電平有效)            
         A0、A1—端口選擇信號(hào)。8255A共有四個(gè)可尋址的端口(即A口、B口、C口和控制寄存器),用二位地址編碼即可實(shí)現(xiàn)選擇。參見下表。
RESET—復(fù)位信號(hào)(高電平有效)。復(fù)位之后,控制寄存器清除,各端口被置為輸入方式。
讀寫控制邏輯用于實(shí)現(xiàn)8255A的硬件管理:芯片的選擇,口的尋址以及規(guī)定各端口和單片微機(jī)之間的數(shù)據(jù)傳送方向。
(c)控制邏輯電路
     控制邏輯電路包括A組控制和B組控制,合在一起構(gòu)成8位控制寄存器。用于存放各口的工作方式控制字
8255A工作方式及數(shù)據(jù)I/O操作
(1)8255A的工作方式
    8255A共有三種工作方式,即方式0、方式1、方式2.
(a)方式0  基本輸入/輸出方式
   方式0下,可供使用的是兩個(gè)8位口(A口和B口)及兩個(gè)4位口(C口高4位部分和低4位部分)。四個(gè)口可以是輸入和輸出的任何組合。
方式0適用于無條件數(shù)據(jù)傳送,也可以把C口的某一位作為狀態(tài)位,實(shí)現(xiàn)查詢方式的數(shù)據(jù)傳送。
(b)方式1  選通輸入/輸出方式
      A口和B口分別用于數(shù)據(jù)的輸入/輸出。而C口則作為數(shù)據(jù)傳送的聯(lián)絡(luò)信號(hào)。具體定義見表7–2?梢夾口和B口的聯(lián)絡(luò)信號(hào)都是三個(gè),如果A或B只有一個(gè)口按方式1使用,則剩下的另外13位口線仍然可按方式0使用。如果兩個(gè)口都按方式1使用,則還剩下2位口線,這兩位口線仍然可以進(jìn)行位狀態(tài)的輸入輸出。
方式1適用于查詢或中斷方式的數(shù)據(jù)輸入/輸出。
(c)方式2  雙向數(shù)據(jù)傳送方式
     只有A口才能選擇這種工作方式,這時(shí)A口既能輸入數(shù)據(jù)又能輸出數(shù)據(jù)。在這種方式下需使用C口的五位線作控制線,信號(hào)定義如表7–2所示。方式2適用于查詢或中斷方式的雙向數(shù)據(jù)傳送。如果把A口置于方式2下,則B口只能工作于方式0.
(2)數(shù)據(jù)輸入操作
     用于輸入操作的聯(lián)絡(luò)信號(hào)有:
STB(StroBe)—選通脈沖,輸入,低電平有效。 當(dāng)外設(shè)送來STB信號(hào)時(shí),輸入數(shù)據(jù)裝入8255A的鎖存器。
IBF(Input Buffer Full) —輸入緩沖器滿信號(hào),輸出,高電平有效。
IBF信號(hào)有效,表明數(shù)據(jù)已裝入鎖存器,因此它是一個(gè)狀態(tài)信號(hào)。
INTR(INTerrupt Request)—中斷請(qǐng)求信號(hào),高電平有效,當(dāng)IBF數(shù)據(jù)輸入過程:當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù)輸入后,發(fā)出信號(hào),輸入的數(shù)據(jù)送入緩沖器。然后IBF信號(hào)有效。如使用查詢方式,則IBF即作為狀態(tài)信號(hào)供查詢使用;如使用中斷方式,當(dāng)信號(hào)由低變高時(shí),產(chǎn)生INTR信號(hào),向單片微機(jī)發(fā)出中斷。單片微機(jī)在響應(yīng)中斷后執(zhí)行中斷服務(wù)程序時(shí)讀入數(shù)據(jù),并使INTR信號(hào)變低,同時(shí)也使IBF信號(hào)同時(shí)變低。以通知外設(shè)準(zhǔn)備下一次數(shù)據(jù)輸入。
(3)數(shù)據(jù)輸出操作
用于數(shù)據(jù)輸出操作的聯(lián)絡(luò)信號(hào)有:
ACK(ACKnowledge)—外設(shè)響應(yīng)信號(hào)輸入,低電平有效。
當(dāng)外設(shè)取走輸出數(shù)據(jù),并處理完畢后向單片微機(jī)發(fā)回的響應(yīng)信號(hào)為高,信號(hào)由低變高(后沿)時(shí),中斷請(qǐng)求信號(hào)有效。向單片微機(jī)發(fā)出中斷請(qǐng)求。
OBF(Output Buffer Full)——輸出緩沖器滿信號(hào),輸出,低電平有效。
當(dāng)單片微機(jī)把輸出數(shù)據(jù)寫入8255A鎖存器后,該信號(hào)有效,并送去啟動(dòng)外設(shè)以接收數(shù)據(jù)。
INTR—中斷請(qǐng)求信號(hào),輸出,高電平有效。
數(shù)據(jù)輸出過程:外設(shè)接收并處理完一組數(shù)據(jù)后,發(fā)回ACK信號(hào)。該信號(hào)使OBF變高,表明輸出緩沖器已空。如使用查詢方式,則OBF可作為狀態(tài)信號(hào)供查詢使用;如使用中斷方式,則當(dāng)ACK信號(hào)結(jié)束時(shí),INTR有效,向單片微機(jī)發(fā)出中斷請(qǐng)求。在中斷服務(wù)過程中,把下一個(gè)輸出數(shù)據(jù)寫入8255A的輸出緩沖器。寫入后OBF有效,表明輸出數(shù)據(jù)已到,并以此信號(hào)啟動(dòng)外設(shè)工作,取走并處理8255A中的輸出數(shù)據(jù)。
表7–2 8255A C口聯(lián)絡(luò)信號(hào)定義
   
2.8253定時(shí)計(jì)數(shù)器
8253內(nèi)部可分為6個(gè)模塊,每個(gè)模塊的功能如下:
1. 數(shù)據(jù)總線緩沖器及數(shù)據(jù)總線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
讀計(jì)數(shù)器0
讀計(jì)數(shù)器1
讀計(jì)數(shù)器2
無操作
寫計(jì)數(shù)器0
寫計(jì)數(shù)器1
寫計(jì)數(shù)器2
寫控制字
3. 控制字寄存器
在初始化編程時(shí),CPU寫入方式控制字到控制字寄存器中,用以選擇計(jì)數(shù)通道及其相應(yīng)的工作方式。
8253的控制字:
8253的工作方式也是有控制字來決定,其控制字意義如下
4. 計(jì)數(shù)通道0、計(jì)數(shù)通道1、計(jì)數(shù)通道2
3個(gè)計(jì)數(shù)通道內(nèi)部結(jié)構(gòu)完全相同。每個(gè)計(jì)數(shù)通道都由一個(gè)16位計(jì)數(shù)初值寄存器、一個(gè)16位減法計(jì)數(shù)器和一個(gè)16位計(jì)數(shù)值鎖存器組成
計(jì)數(shù)初值存于預(yù)置寄存器,在計(jì)數(shù)過程中,減法計(jì)數(shù)器的值不斷遞減,而預(yù)置寄存器中的預(yù)置不變。輸出鎖存器用于寫入鎖存命令時(shí),鎖定當(dāng)前計(jì)數(shù)值。
計(jì)數(shù)器的3個(gè)引腳說明:
(1)CLK時(shí)鐘輸入信號(hào)
在計(jì)數(shù)過程中,此引腳上每輸入一個(gè)時(shí)鐘信號(hào)(下降沿),計(jì)數(shù)器的計(jì)數(shù)值減1
(2) GATE門控輸入信號(hào)
控制計(jì)數(shù)器工作,可分成電平控制和上升沿控制兩種類型
(3) OUT計(jì)數(shù)器輸出信號(hào)
當(dāng)一次計(jì)數(shù)過程結(jié)束(計(jì)數(shù)值減為0),OUT引腳上將產(chǎn)生一個(gè)輸出信號(hào)
8253有6種工作方式,由方式控制字確定
區(qū)分這6種工作方式的主要標(biāo)志由3點(diǎn):一是輸出波形不同;二是啟動(dòng)計(jì)數(shù)器的觸發(fā)方式不同;三是計(jì)數(shù)過程中門控信號(hào)GATE對(duì)計(jì)數(shù)器操作的控制不同。
1..方式0--低電平輸出(GATE信號(hào)上升沿繼續(xù)計(jì)數(shù))
2.方式1--低電平輸出(GATE信號(hào)上升沿重新計(jì)數(shù))
3.方式2--周期性脈沖輸出
4.方式3--周期性方波輸出
OUT輸出低電平,裝入計(jì)數(shù)值n后,OUT立即跳變?yōu)楦唠娖。如果?dāng)前GATE為高電平,則立即開始減“1”計(jì)數(shù),OUT保持為高電平,若n為偶數(shù),則當(dāng)計(jì)數(shù)值減到n/2時(shí),OUT跳變?yōu)榈碗娖,一直保持到?jì)數(shù)值為“0”,系統(tǒng)才重新置入計(jì)數(shù)值n,實(shí)現(xiàn)循環(huán)計(jì)數(shù)。這時(shí)OUT端輸出周期為n×CLK周期,占空比為1:1的方波序列:若n為奇數(shù),則OUT端輸出周期為n×CLK周期,占空比(n+1)/2 : (n-1)/2的近似方波序列。
5.方式4--單次負(fù)脈沖輸出(軟件觸發(fā))
6.方式5--單次負(fù)脈沖輸出(硬件觸發(fā))
每種工作方式的設(shè)置過程類似:
⑴ 設(shè)定工作方式
⑵ 設(shè)定計(jì)數(shù)初值
〔 ⑶ 硬件啟動(dòng) 〕
⑷ 計(jì)數(shù)初值進(jìn)入減1計(jì)數(shù)器
⑸ 每輸入一個(gè)時(shí)鐘計(jì)數(shù)器減1的計(jì)數(shù)過程
⑹ 計(jì)數(shù)過程結(jié)束
3.8282
:8位數(shù)據(jù)輸入;:8位數(shù)據(jù)輸出;STB:選通信號(hào);
:輸出允許信號(hào),在不帶DMA控制器的8086單處理器系統(tǒng)中,它接地。
其實(shí),這就是8個(gè)D觸發(fā)器。由于只用,所以用兩片即可。
4.3—8譯碼器74LS138
    74LS138譯碼器引腳圖,邏輯圖及功能表如下
   
                     第四章 總結(jié)
在這多設(shè)計(jì)交通燈系統(tǒng)的過程中,我深深體會(huì)到了理論和實(shí)際的差距。在做關(guān)于交通燈系統(tǒng)設(shè)計(jì)中我查閱很多這方面的資料,了解一些芯片的功能,比如說要了解8086芯片中各個(gè)引腳的功能,怎么樣去使用8255這個(gè)可編程并行接口芯片,怎么樣使用8253來定時(shí)及輸出一定頻率的脈沖,怎么樣用8282這個(gè)地址鎖存器來存儲(chǔ)高位地址和低位地址以及交通有哪些規(guī)則.我在已有的理論基礎(chǔ)上,明白了制作實(shí)物的一般過程。
整個(gè)設(shè)計(jì)過程,開始最大的問題是不知道從哪里下手,從哪里開始切入,后來通過查資料明白了這個(gè)問題。再后來就是編程,尤其是芯片初始化,整了很多次,最后還是在同學(xué)的幫助下完成的。其實(shí),準(zhǔn)確的說不是我一個(gè)人獨(dú)自完成的,在許多地方,我的同學(xué)都提出了寶貴的意見,再次感謝他們。

  1.       DATA SEGMENT; 設(shè)置數(shù)據(jù)段,以及端口地址分配
  2.         PORTA EQU 218H
  3.         PORTB EQU 219H
  4.         PORTC EQU 21AH
  5.         PTCON8255 EQU 21BH
  6.         PORT0  EQU 238H
  7.         PORT1  EQU 239H
  8.         PORT2  EQU 240H
  9.         PTCON8253 EQU 241H
  10. DATA ENDS
  11. CODE SEGMENT
  12.     ASSUME DS:DATA,CS:CODE
  13. INIT:    MOV AX,DATA
  14.          MOV DS,AX
  15.          MOV DX, PTCON8253
  16.          MOV AL,36H
  17.          OUT DX,AL
  18.          MOV DX,PORT0
  19.          MOV AX,2710H
  20.          OUT DX,AL
  21.          MOV AL,AH
  22.          OUT DX,AL;    通道0工作方式3 周期0.01s
  23.         MOV DX, PTCON8253
  24.          MOV AL,71H
  25.          OUT DX,AL;通道1工作方式1
  26.          MOV DX, PTCON8253
  27.          MOV AL,96H
  28.          OUT DX,AL
  29.          MOV DX,PORT2
  30.          MOV AL,64H
  31.          OUT DX,AL;     通道2工作方式3 周期1s 8253初始化完成
  32.          MOV DX, PTCON8255
  33.          MOV AL,80H
  34.          OUT DX,AL;8255初始化 A,B,C口均工作在方式0
  35.          MOV DX,PORTA
  36.          MOV AL,0
  37.          OUT DX,AL
  38.          MOV DX,PORTB
  39.          MOV AL,0FH
  40.          OUT DX,AL
  41.          MOV DX,PORTC
  42.         MOV AL,0FH
  43.         OUT DX,AL;燈初始化完成
  44. STA:    MOV DX,PORTA
  45.         MOV AL,0A0H
  46.         OUT DX,AL
  47.         MOV DX,PORTB
  48.         MOV AL,0F0H
  49.         OUT DX,AL
  50.         MOV DX,PORTC
  51.         MOV AL,50H
  52.         OUT DX,AL;1,3綠燈亮,2,4紅燈亮
  53.         MOV DX,PORT1
  54.         MOV AX,0BB8H
  55.         OUT DX,AL
  56.         MOV AL,AH
  57.         OUT DX,AL;8253通道1賦值 開始計(jì)時(shí)
  58. SCAN1:  MOV AL,0
  59.         MOV DX,PTCON8255
  60.         MOV AL,90H
  61.         OUT DX,AL
  62.         MOV DX,PORTA
  63.         IN AL,DX
  64.         AND AL,0FH
  65.         CMP AL,1
  66.         JNZ SCAN1;掃描PA7口
  67. FLA1:   MOV DX, PTCON8255
  68.         MOV AL,80H
  69.         OUT DX,AL
  70.         MOV DX,PORTC
  71.         MOV AL,0F0H
  72.         OUT DX,AL
  73.         MOV DX,PORTB
  74.         MOV AL,50H
  75.         OUT DX,AL
  76.         MOV CX,0
  77. TEST1: MOV DX,PTCON8255;檢測(cè)PB7
  78.         MOV AL,82H
  79.         OUT DX,AL
  80.         MOV DX,PORTB
  81.         IN AL,DX
  82.         AND AL,0FH
  83.         MOV AH,AL
  84.         MOV DX,PTCON8255
  85.         MOV AL,82H
  86.         OUT DX,AL
  87.         MOV DX,PORTB
  88.         IN AL,DX
  89.         AND AL,0FH
  90.         XOR AL,AH
  91.         ADD  CL,AL
  92.         CMP CL,9
  93.         JNZ TEST1;閃爍5次
  94.         MOV DX, PTCON8255
  95.         MOV AL,80H
  96.         OUT DX,AL
  97.         MOV DX,PORTA
  98.         MOV AL,50H
  99.         OUT DX,AL
  100.         MOV DX,PORTB
  101.         MOV AL,0F0H
  102.         OUT DX,AL
  103.         MOV DX,PORTC
  104.         MOV AL,0A0H;1,3紅燈亮,2,4綠燈亮
  105.         MOV DX,PORT1
  106.         MOV AX,0BB8H
  107.         OUT DX,AL
  108.         MOV AL,AH
  109.         OUT DX,AL;8253通道1賦值 開始計(jì)時(shí)
  110. SCAN2: MOV AL,0
  111.         MOV DX,PTCON8255
  112.         MOV AL,90H
  113.         OUT DX,AL
  114.         MOV DX,PORTA
  115.         IN AL,DX
  116.         AND AL,0FH
  117.         CMP AL,1
  118.         JNZ SCAN2
  119. FLA2:   MOV DX, PTCON8255
  120.         MOV AL,80H
  121.         OUT DX,AL
  122.         MOV DX,PORTC
  123.         MOV AL,0F0H
  124.         OUT DX,AL
  125.         MOV DX,PORTB
  126.         MOV AL,0A0H
  127.         OUT DX,AL
  128. TEST2:  MOV DX,PTCON8255
  129.          MOV AL,88H
  130.          OUT DX,AL
  131.          MOV DX,PORTC
  132.          IN AL,DX
  133.          AND AL,0FH
  134.          MOV AH,AL
  135.          MOV DX,PTCON8255
  136.          MOV AL,88H
  137.          OUT DX,AL
  138.          MOV DX,PORTC
  139.          IN AL,DX
  140.          AND AL,0FH
  141.          XOR AL,AH
  142.          ADD  CL,AL
  143.          CMP CL,9
  144.        JNZ TEST2;閃爍5次
  145.         CODE   ENDS                                          
  146.        END STA   
復(fù)制代碼



完整的Word格式文檔51黑下載地址:
微機(jī)8086-8255-交通燈-課程設(shè)計(jì).doc (284 KB, 下載次數(shù): 42)


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表