單片機(jī)三個(gè)實(shí)驗(yàn)
發(fā)布時(shí)間:2020-09-23 來(lái)源: 事跡材料 點(diǎn)擊:
實(shí)驗(yàn)一構(gòu)建單片機(jī)最小系統(tǒng)和實(shí)驗(yàn)環(huán)境熟悉 一、單片機(jī)最小系統(tǒng)的組成原理圖
、單片機(jī)的工作原理 1. 運(yùn)算器 運(yùn)算器包括算術(shù)邏輯運(yùn)算單元 ALU、累加器 ACC、寄存器 B、暫存器 TMP、程序 狀態(tài)字寄存器 PSW、十進(jìn)制調(diào)整電路等。它能實(shí)現(xiàn)數(shù)據(jù)的算術(shù)邏輯運(yùn)算、 位變量處理和 數(shù)據(jù)傳送操作。
(1)
算術(shù)邏輯單元 ALU ALU 在控制器根據(jù)指令發(fā)出的內(nèi)部信號(hào)控制下,對(duì) 8 位二進(jìn)制數(shù)據(jù)進(jìn)行加、減、乘、除 運(yùn)算和邏輯與、或、非、異或、清零等運(yùn)算。它具有很強(qiáng)的判跳、轉(zhuǎn)移、豐富的數(shù)據(jù)傳送、 提供存放中間結(jié)果以及常用數(shù)據(jù)寄存器的功能。
MCS-51 中位處理具有位處理功能,特別適 用于實(shí)時(shí)邏輯控制。
。2)
累加器 ACC 累加器 ACC 是 8 位寄存器,是最常用的專用寄存器,它既可存放操作數(shù),又可存放運(yùn)
OpF Y1 "If XTAL1 ra.o/ADO XTAL2 PD.1/AD1 P0.2/AD2 P0.3/AD3 RST P0.-4/AD4 FO.^DJ P0.6/AD6 F0.7/AD7 rSEN P2 C/AS P2..1/A9 P2.3^AIO P2/VA11 ALE P2.4/A12 EA r2 5/A13 F1.(MT2 P2.6/AI4 F3JO/RXD PI 1JT2F.X PI i rrxn Pl 7 Pl^jTHTn PI .3 P33imTi Pl.4 P3.-iyT0 Pl 5/MOST P3 5m P1.6/M1SO P3.6WR P1.7JSCK P3 価
vcc L 菊 32 JL 1 2 3 4 RES PACK S 22 23 24 25 盤 27 23 ID 11 12 1 歲 14 15 Lb 17
1S P SDOuF iQi 12IvI JI f vce ATE 昭鋁 21
算的中間結(jié)果。MCS — 51 系列單片機(jī)中許多指令的操作數(shù)來(lái)自累加器 ACC。累加器非常繁 忙,在與外部存儲(chǔ)器或 I/O 接口進(jìn)行數(shù)據(jù)傳送時(shí),都要經(jīng)過(guò) A 來(lái)完成。
。3)
寄存器 B 寄存器 B 是 8 位寄存器,主要用于乘、除運(yùn)算。乘法運(yùn)算時(shí), B 中存放乘數(shù),乘法操 作后,高 8 位結(jié)果存于 B 寄存器中。除法運(yùn)算時(shí), B 中存放除數(shù),除法操作后,余數(shù)存于 寄存器 B 中。寄存器 B 也可作為一般的寄存器用。
(4)
程序狀態(tài)字 PSW 程序狀態(tài)字是 8 位寄存器,用于指示程序運(yùn)行狀態(tài)信息。
其中有些位是根據(jù)程序執(zhí)行結(jié) 果由硬件自動(dòng)設(shè)置的,而有些位可由用戶通過(guò)指令方法設(shè)定。
PSW 中各標(biāo)志位名稱及定義 如下:
位序 D7 D6 D5 D4 D3 D2 D1 D0 位標(biāo)志 CY AC F0 RS1 RS0 OV 一 P
CY( PSW.7):進(jìn)(借)位標(biāo)志位,也是位處理器的位累加器 C。在加減運(yùn)算中,若操作結(jié) 果的最高位有進(jìn)位或有借位時(shí), CY 由硬件自動(dòng)置 1,否則清“ 0”在位操作中,CY 作為位 累加器 C 使用,參于進(jìn)行位傳送、位與、位或等位操作。另外某些控制轉(zhuǎn)移類指令也會(huì)影 響 CY 位狀態(tài)(第三章討論)。
AC( PSW.6):輔助進(jìn)(借)位標(biāo)志位。在加減運(yùn)算中,當(dāng)操作結(jié)果的低四位向高四位進(jìn)位 或借位時(shí)此標(biāo)志位由硬件自動(dòng)置 1,否則清“ 0” F0( PSW.5):用戶標(biāo)志位,由用戶通過(guò)軟件設(shè)定,決定程序的執(zhí)行方式。
RS1( PSW.4),RS0( PSW.3):寄存器組選擇位。用于設(shè)定當(dāng)前通用寄存器組的組,其對(duì)應(yīng) 關(guān)系如下:
RS1 RS0 寄存器組 R0~R7 地址 0 0 組 0 00~07H 0 1 組 1 08~0FH 1 0 組 2 10~17H 1 1 組 3 18~1FH
OV( PSW.2):溢出標(biāo)志位。它反映運(yùn)算結(jié)果是否溢出,溢出時(shí) OV=1 ;否則 OV=0 。
OV 可作為條件轉(zhuǎn)移指令中的條件。
PSW.1 :未定義位。
P ( PSW.1):奇偶標(biāo)志位。P=1,表示 ACC 中 1 的個(gè)數(shù)為奇數(shù);否則 P=0 。
P 也可以作為條 件轉(zhuǎn)移指令中的條件。
2. 控制器 控制器包括定時(shí)控制邏輯 (時(shí)鐘電路、復(fù)位電路),指令寄存器,指令譯碼器程序計(jì)數(shù) 器 PC,堆棧指針 SP,數(shù)據(jù)指針寄存器 DPTR 以及信息傳送控制部件等。
(1 )時(shí)鐘電路 MCS — 51 系列單片機(jī)芯片內(nèi)部有一個(gè)高增益反相放大器,輸入端為 XTAL1,輸出端為 XTAL2,一般在 XTAL1 與 XTAL2 之間接石英晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定 的自激振蕩器,就是單片機(jī)的內(nèi)部時(shí)鐘電路,如圖( A)所示。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng) 過(guò)二分頻以后,才成為單片機(jī)的時(shí)鐘信號(hào)。電容 C1 和 C2 為微調(diào)電容,可起頻率穩(wěn)定、微 調(diào)作用,一般取值在 5?30pf 之間,常取 30pf。晶振的頻率范圍是 1.2MHz~12MHz ,典型 值取 6 MHz。XTAL1 接地,XTAL2 接外部震蕩器,外接信號(hào)應(yīng)是高電平持續(xù)時(shí)間大于 20ns 的方波,且脈沖頻率應(yīng)低于 12 MHZ。如圖(B)所示。
韻?TL
KTAL1 V5S 國(guó) AP WD5L 外部時(shí)鐘源接法 (2 )復(fù)位電路 對(duì)于使用 (A)內(nèi)部時(shí)鐘電路 (B)外部振蕩源 12MHZ 的晶振的單片機(jī),復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò) 4 卩 s 才能完成復(fù)位操作。
產(chǎn)生復(fù)位信號(hào)的電路有上電自動(dòng)復(fù)位電路和按鍵手動(dòng)復(fù)位電路兩種方式。
上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的,該電路通過(guò)電容充電在 RST 引腳上加了一個(gè)高電平完成復(fù)位操作。上電自動(dòng)復(fù)位電路如圖( 按鍵手動(dòng)復(fù)位電路。
按鍵手動(dòng)復(fù)位是通過(guò)按鍵實(shí)現(xiàn)人為的復(fù)位操作, (b)所示。
a)所示。
按鍵手動(dòng)復(fù)位電路如圖 8051 UTACCl ±
復(fù)位后內(nèi)部暫存器的狀態(tài)如下: PC 0000H TCON 00H ACC 00H TL0 00H PSW 00H TH0 00H SP 07H TL1 00H DPTR 0000H TH1 00H P0~P3 FFH SCON 00H IP XX 000000B SBUF 不定 IE 0 X 000000B PCON 0 XXX 0000B TMOD 00H
(3)指令寄存器和指令譯碼器
指令寄存器中存放指令代碼, CPU 執(zhí)行指令時(shí),由程序存儲(chǔ)器中讀取的指令代碼送入 指令存儲(chǔ)器,經(jīng)譯碼器后由定時(shí)與控制電路發(fā)出相應(yīng)的控制信號(hào),完成指令所指定的操作。
4•程序計(jì)數(shù)器 PC PC 是一個(gè) 16 位計(jì)數(shù)器,其內(nèi)容為單片機(jī)將要執(zhí)行的指令機(jī)器碼所在存儲(chǔ)單元的地址。
PC 具有自動(dòng)加 1 的功能,從而實(shí)現(xiàn)程序的順序執(zhí)行。由于 PC 不可尋址的,因此用戶無(wú)法對(duì)它 直接進(jìn)行讀寫操作,但可以通過(guò)轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以實(shí)現(xiàn)程序的轉(zhuǎn)移。
PC 的尋址范圍為 64KB,即地址空間為 0000?0FFFFH。
(4)堆棧指針 SP SP 為 8 位寄存器,用于指示棧頂單元地址。所謂堆棧是一種數(shù)據(jù)結(jié)構(gòu),它只允許在其 一端進(jìn)行數(shù)據(jù)刪除和數(shù)據(jù)插入操作的線性表。數(shù)據(jù)寫入堆棧叫入棧( PUSH ),數(shù)據(jù)讀出堆 棧叫出棧(POP)。堆棧的最大特點(diǎn)是“后進(jìn)先出”的數(shù)據(jù)操作原則。
MCS-51 系統(tǒng)復(fù)位后, SP 初始化為 07H。
VCC S051 1 1
22UF -r-
RST ° n
1 U
(5) 數(shù)據(jù)指針 DPTR 數(shù)據(jù)指針 DPTR 為 16 位寄存器,它是 MCS—51 中唯一的一個(gè) 16 位寄存器。編程時(shí), 既可按 16 位寄存器使用,也可作為兩個(gè) 8 位寄存器分開使用。
DPH 為 DPTR 的高八位寄 存器, DPL 為 DPTR 的低八位寄存器。
DPTR 通常在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)作為地址指針 使用,尋址范圍為 64KB 。
三、實(shí)驗(yàn)小結(jié) 單片機(jī)系統(tǒng)電路的基本模塊有:復(fù)位電路,晶振電路,上拉電阻,下載口等主要模塊。
其中 P0 口作為輸出使用必須對(duì)單片機(jī)的 I/O 口,因?yàn)?P0 為集電極開路,可以提高其功率和 電平轉(zhuǎn)換。在單片機(jī)最小系統(tǒng)的構(gòu)建中, EA 腳拉高是非常必要的,它可以影響單片機(jī)的正 常工作。
在檢測(cè)單片機(jī)是否正常工作, 可以通過(guò)檢測(cè)晶振兩端的信號(hào)的波形形狀。
在單片機(jī) 正常工作條件下, 其信號(hào)為正弦波。
經(jīng)過(guò)一周的時(shí)間基本完成單片機(jī)最小系統(tǒng)板的焊接部分 和單片機(jī)的工作原理, 以及對(duì)單片機(jī)外圍電路的焊接, 知道了硬件部分的重要性, 單片機(jī)最 小系統(tǒng)板的焊接最主要是晶振部分的焊接, 它為單片機(jī)提供了做工作的頻率, 是單片機(jī)的心 臟。
實(shí)驗(yàn)二跑馬燈實(shí)驗(yàn)及 74HC138 譯碼器 一、實(shí)驗(yàn)原理 1、跑馬燈 (1) 參考實(shí)驗(yàn)原理圖如下:
(跑馬燈原理圖) (2) 工作原理 給單片機(jī)的端口賦初值,點(diǎn)亮第一個(gè) LED,然后延時(shí)一段時(shí)間后,點(diǎn)亮下一個(gè) LED 依 次循環(huán)下去。形成動(dòng)態(tài)閃亮的效果。
2、138 譯碼器電路 74LS138 譯碼器: 4P0IP. S01CJ TOP 妝 YO tT«i ¥1 (VI) vi 訊\ Y3 (T5) Y4 冋
圖 8 74LS138 譯碼器芯片圖 74LS138 為 3 線—8 線譯碼器,共有 54/74S138 和 54/74LS138 兩種線路 X— XTAL1 XTAL2 RST PSEN ALE EA R2 510 D2 R3 510 D3 R4 D4 R6 510 R7 510 P1 0/T2 P1 1/T2EX P1 2 P1 3 P1 4 P1 5 P1 6 P1 7
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 3 37 3藥3 33 3右22 3 24 3 26 3 28一 W D8 □Nnnan 7 R5 8 510 510 510 D5 D6 D7 AT89C52 R8
結(jié)構(gòu)型式。其工作原理如下:
(1) 當(dāng)一個(gè)選通端 E1 為高電平,另兩個(gè)選通端 E2 和 E3 為低電平時(shí),可將地址
端 A0 A1、A2 的二進(jìn)制編碼在 Y0 至 Y7 對(duì)應(yīng)的輸出端以低電平譯出。比如:
A0A1A2=110 寸,貝 U Y6 輸出端輸出低電平信號(hào)。
(2) 利用 E1、E2 和 E3 可級(jí)聯(lián)擴(kuò)展成 24 線譯碼器;若外接一個(gè)反相器還可級(jí) 聯(lián)擴(kuò)展成 32 線譯碼器。
(3)
若將選通端中的一個(gè)作為數(shù)據(jù)輸入端時(shí), 74LS138 還可作數(shù)據(jù)分配器。
(4) 可用在 8086 的譯碼電路中,擴(kuò)展內(nèi)存。
(1) 參考實(shí)驗(yàn)原理圖如下:
U1
(2) 工作原理 根據(jù) 138 譯碼器的工作原理,當(dāng) G1G2AG2B=111 時(shí),譯碼器工作,根據(jù) 74LS138 的 3 個(gè)譯碼信號(hào) A、B、C 來(lái)選擇 Y0、Y1、Y2、Y3、Y4、Y5、Y6 作為輸出,各輸出為低電平 時(shí),當(dāng)共陽(yáng)極的 LED 燈節(jié)高電平時(shí),就會(huì)使相應(yīng)的燈亮。
A、B、C 三個(gè)信號(hào)由單片機(jī)的 P1.0、P1.1 和 P1.2 來(lái)提供,而 P1.0、P1.1 和 P1.2 的值是通過(guò)匯編程序設(shè)置初始值后,然后 根據(jù)P1.0、P1.1 和 P1.2 的值加 1 和循環(huán)來(lái)時(shí) 8 各 LED 燈循環(huán)點(diǎn)亮。
19 18 b XTAL1 XTAL2 RST
1 510
510 PSEN ALE EA P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 PO.O/ADO P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 ----- 38 —37 —36 —35 34 ----- 33 —32 21 —22 —23 ----- 24 —25 26 27 28 10 11 AT89C52 R3 510 R4 510 R5 510 R6 D4 -BLUE D5 -BLUE D7 -BLUE 510 R7 R8 LED-BLUE ABC
12 3 EEE
0 1 2 3 4 5 6 7 YYYYYYYY
-匸
151413
一12 1315 16
二、軟件流程圖 1、138 譯碼器程序流程圖:
三、源程序代碼 1、跑馬燈實(shí)驗(yàn)代碼:
#include<reg52.h> //定義 8052 寄存器的頭文件 #include<intrins.h> //包含 _cror_()的頭文件 #define uint unsigned int //宏定義 #defi ne uchar un sig ned char void delay(ui nt n) // 延時(shí)子程序 { uchar i; while( n--) for(i=0;i<255;i++); } void mai n() { uchar i;
while(1) { for(i=0;i<8;i++) //左右循環(huán)點(diǎn)亮 P1=i; delay(300); //調(diào)用延時(shí)函數(shù) }
四、實(shí)驗(yàn)調(diào)試:
將硬件電路焊制完成后, 連接好電路, 仔細(xì)檢查無(wú)錯(cuò)誤后, 我們將流水燈程 序下載至 STC89C52 單片機(jī)中,看到八個(gè)燈按順序依次循環(huán)點(diǎn)亮。但在焊制的過(guò) 程中由于八個(gè) LED 燈是按共陽(yáng)極接法連入電路中,所以可以只焊一個(gè) 470 Q 的上 拉電阻,此處上拉電阻的選擇規(guī)則如下:由于點(diǎn)亮 LED 需要大約 7~11mA 勺電流, 而電源供電為 5V,所以由歐姆定律可知上拉電阻為 714~454 Q, 此處選擇 470 Q 。
實(shí)驗(yàn)中的接線是非常重要的, 在接線之前一定要用萬(wàn)用表檢測(cè)線的好壞否則實(shí)驗(yàn) 是很難成功的!
實(shí)驗(yàn)三 8255 控制交通燈實(shí)驗(yàn) 一、 實(shí)驗(yàn)原理 1、交通燈原理 交通燈的變化規(guī)律是:先假定一個(gè)十字路口為東南西北走向交通燈的初始狀態(tài)為狀態(tài) 1,東西方向綠燈通車,南北方向紅燈。經(jīng)過(guò)過(guò)一段時(shí)間( 3S)轉(zhuǎn)換狀態(tài) 2,東西方向黃燈 閃亮,延時(shí) 2S,南北方向仍然紅燈。再轉(zhuǎn)換到狀態(tài) 3,東西方向紅燈通車,南北方向綠燈。
過(guò)一段時(shí)間(3S)轉(zhuǎn)換到狀態(tài) 4,南北方向黃燈閃亮,延時(shí) 2S,東西方向仍然紅燈。最后循 環(huán)至南北紅燈,東西綠燈。
實(shí)驗(yàn)原理參考圖:
2、8255 芯片工作原理:
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 口高位部分(PCT- PC4 提供,因此把 A 口和 C口高位部分合在一起稱之為 A 組;同樣理由把 B 口和 C 口低位部分(PC4 PC0 合在一起稱之為 B 組。
。2)總線接口電路 C1 C2 CRYSTAL F 8
R1 1k U1 XTAL1 XTAL2 PSEN ALE EA P1 P1 P1 P1 0/T2 1/T2EX 2 3 RP1 RESPACK-8 U2 P1 P1 P1 P1 AT89C52 P0.0/AD0 P0.1/AD1 P0.2/AD2 D0 D1 D2 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PBO PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 LED-YELLOW D10 d0 d2 d3 40 d4 39 d5 38 + D1 -RED D8 29 30— 31— 20UF RST 3 4 5 6 7 8 9 1 2 39 34 P2.0/A8 RD RESET CS P3.7/RD P2.1/A9 P2.2/A10 P2.3/A11 P3.4/T0 P3.5/T1 P3.6/WR WR A0 A1 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 D3 D4 D5 D6 D7 8255A 3 LED- D-GREEN d4 d4 D D-YELL d3 LED-GREEN 4 ED-RED LED-RED
總線接口電路用于實(shí)現(xiàn) 8255A 和單片微機(jī)的信號(hào)連接。其中包括:數(shù)據(jù)總線 緩沖器和讀/寫控制邏輯,數(shù)據(jù)總線緩沖器為 8 位雙向三態(tài)緩沖器,可直接和 80C51 的數(shù)據(jù)線相連,與 I/O 操作有關(guān)的數(shù)據(jù)、控制字和狀態(tài)信息都是通過(guò)該緩 沖器進(jìn)行傳送。與讀寫有關(guān)的控制信號(hào)有 CS 為片選信號(hào)(低電平有效),RD 為讀信號(hào)(低電平有效),WF 為寫信號(hào)(低電 平有效)
, AO、A1 為端口選擇信號(hào)。8255A 共有四個(gè)可尋址的端口(即 A 口、B 口、C 口和控制寄存器),用二位地址編碼即可實(shí)現(xiàn)選擇。參見下表。
CS A1
A0
RD WR. 所選端口 操啣 | 0 0
0
0
1 A 口 讀端口 A
0 0
1
0
1 B 口 :讀端口 B
0
1
0
0
1 C 口 讀端口 C
0
0
0 1 0
A 口 寫端口 A
0 0 1 1
0 B 口 :寫端 E B
0 1 0 1
0 C 口 寫端口 c
0 1
1
1 0 控制寄存器 寫控制字 1 X X X 冥 /
簸據(jù)總線緩沖器輸出高阻抗 讀寫端口表 RESE—復(fù)位信號(hào)(高電平有效)。復(fù)位之后,控制寄存器清除,各端口 被置為輸入方式。
讀寫控制邏輯用于實(shí)現(xiàn) 8255A 的硬件管理:芯片的選擇,口的尋址以及 規(guī)定各端口和單片微機(jī)之間的數(shù)據(jù)傳送方向。
。3)控制邏輯電路 控制邏輯電路包括 A 組控制和 B 組控制,合在一起構(gòu)成 8 位控制寄存器。
用于存放各口的工作方式控制字 8255A 工作方式及數(shù)據(jù) I/O 操作 (1)8255A 的工作方式(實(shí)驗(yàn)用方式 0)
方式 0 基本輸入/輸出方式 方式 0 下,可供使用的是兩個(gè) 8 位口( A 口和 B 口)及兩個(gè) 4 位口( C 口高 4 位部分和低 4 位部分)。四個(gè)口可以是輸入和輸出的任何組合 方式 0 適用于無(wú)條件數(shù)據(jù)傳送,也可以把 C 口的某一位作為狀態(tài)位,實(shí)現(xiàn)查 詢方式的數(shù)據(jù)傳送。
(2) 數(shù)據(jù)輸入操作 用于輸入操作的聯(lián)絡(luò)信號(hào)有:
STB(StroBe)—選通脈沖,輸入,低電平有效。
當(dāng)外設(shè)送來(lái) 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ù)輸入 過(guò)程:當(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ù)輸出過(guò)程:外設(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ù)過(guò)程中,把下一個(gè)輸出數(shù)據(jù)寫入 8255A 的輸出緩沖 器。寫入后 OBF 有效,表明輸出數(shù)據(jù)已到,并以此信號(hào)啟動(dòng)外設(shè)工作,取走并
處理 8255A 中的輸出數(shù)據(jù)。8255A C 口聯(lián)絡(luò)信號(hào)定義: C 口廳 方式 1 方式 2 獻(xiàn) 輸出 獻(xiàn) 輸出 PCj
OBFA
OBFA
ACKA
ACKA
IBFA
IBFA
STBA
STBA
PCs
INTRA
INTRA
INTRA
INTRA
PCs
預(yù) ACKB
PCi
IBFT ®FB
卩必 INTRB INTO
三、實(shí)驗(yàn)源程序代碼 #include<reg52.h> /定義 8052 單片機(jī)寄存器的頭文件 #include<absacc.h>/絕對(duì)地址處理頭文件,包含 XBYTE,用 XBYTE 來(lái)定義擴(kuò)展 的 I/O 端口和外部 RAM 單元地址 #define uint unsigned int //宏定義 軟件流程圖 初姑化,南北紅燈 團(tuán)弓磴 I: 灼亮*東 西黃燈囚體
#define uchar unsigned char #define CON XBYTE[0xffff] // 定義 8255 控制字寄存器端口 #define PA XBYTE[0xfcff] //定義 8255 端口 PA 地址 void delay(uint z); // 延時(shí) void main() {
uint i=0; CON=0x80;〃寫方式控制字,方式 0,基本輸入輸出 PA=0xff; while(1) {
PA=0x1e;/凍西綠燈,南北紅燈 delay(1000);/延時(shí) for(i=3;i>0;i--)// 黃燈閃爍三次 {
PA=0x2e; delay(100); PA=0x3e; delay(100); }
PA=0x33;〃東西紅燈,南北綠燈 delay(1000); for(i=3;i>0;i--)// 黃燈閃爍三次 {
PA=0x35; delay(100); PA=0x37; delay(100); }
void delay(uint z) //延時(shí)子程序 {
uint x,y; for(x=z;x>0;x--) for(y=500;y>0;y--);
}
相關(guān)熱詞搜索:單片機(jī) 實(shí)驗(yàn)
熱點(diǎn)文章閱讀