單片機三個實驗
發(fā)布時間:2020-09-23 來源: 事跡材料 點擊:
實驗一構(gòu)建單片機最小系統(tǒng)和實驗環(huán)境熟悉 一、單片機最小系統(tǒng)的組成原理圖
、單片機的工作原理 1. 運算器 運算器包括算術邏輯運算單元 ALU、累加器 ACC、寄存器 B、暫存器 TMP、程序 狀態(tài)字寄存器 PSW、十進制調(diào)整電路等。它能實現(xiàn)數(shù)據(jù)的算術邏輯運算、 位變量處理和 數(shù)據(jù)傳送操作。
。1)
算術邏輯單元 ALU ALU 在控制器根據(jù)指令發(fā)出的內(nèi)部信號控制下,對 8 位二進制數(shù)據(jù)進行加、減、乘、除 運算和邏輯與、或、非、異或、清零等運算。它具有很強的判跳、轉(zhuǎn)移、豐富的數(shù)據(jù)傳送、 提供存放中間結(jié)果以及常用數(shù)據(jù)寄存器的功能。
MCS-51 中位處理具有位處理功能,特別適 用于實時邏輯控制。
。2)
累加器 ACC 累加器 ACC 是 8 位寄存器,是最常用的專用寄存器,它既可存放操作數(shù),又可存放運
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 系列單片機中許多指令的操作數(shù)來自累加器 ACC。累加器非常繁 忙,在與外部存儲器或 I/O 接口進行數(shù)據(jù)傳送時,都要經(jīng)過 A 來完成。
。3)
寄存器 B 寄存器 B 是 8 位寄存器,主要用于乘、除運算。乘法運算時, B 中存放乘數(shù),乘法操 作后,高 8 位結(jié)果存于 B 寄存器中。除法運算時, B 中存放除數(shù),除法操作后,余數(shù)存于 寄存器 B 中。寄存器 B 也可作為一般的寄存器用。
。4)
程序狀態(tài)字 PSW 程序狀態(tài)字是 8 位寄存器,用于指示程序運行狀態(tài)信息。
其中有些位是根據(jù)程序執(zhí)行結(jié) 果由硬件自動設置的,而有些位可由用戶通過指令方法設定。
PSW 中各標志位名稱及定義 如下:
位序 D7 D6 D5 D4 D3 D2 D1 D0 位標志 CY AC F0 RS1 RS0 OV 一 P
CY( PSW.7):進(借)位標志位,也是位處理器的位累加器 C。在加減運算中,若操作結(jié) 果的最高位有進位或有借位時, CY 由硬件自動置 1,否則清“ 0”在位操作中,CY 作為位 累加器 C 使用,參于進行位傳送、位與、位或等位操作。另外某些控制轉(zhuǎn)移類指令也會影 響 CY 位狀態(tài)(第三章討論)。
AC( PSW.6):輔助進(借)位標志位。在加減運算中,當操作結(jié)果的低四位向高四位進位 或借位時此標志位由硬件自動置 1,否則清“ 0” F0( PSW.5):用戶標志位,由用戶通過軟件設定,決定程序的執(zhí)行方式。
RS1( PSW.4),RS0( PSW.3):寄存器組選擇位。用于設定當前通用寄存器組的組,其對應 關系如下:
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):溢出標志位。它反映運算結(jié)果是否溢出,溢出時 OV=1 ;否則 OV=0 。
OV 可作為條件轉(zhuǎn)移指令中的條件。
PSW.1 :未定義位。
P ( PSW.1):奇偶標志位。P=1,表示 ACC 中 1 的個數(shù)為奇數(shù);否則 P=0 。
P 也可以作為條 件轉(zhuǎn)移指令中的條件。
2. 控制器 控制器包括定時控制邏輯 (時鐘電路、復位電路),指令寄存器,指令譯碼器程序計數(shù) 器 PC,堆棧指針 SP,數(shù)據(jù)指針寄存器 DPTR 以及信息傳送控制部件等。
(1 )時鐘電路 MCS — 51 系列單片機芯片內(nèi)部有一個高增益反相放大器,輸入端為 XTAL1,輸出端為 XTAL2,一般在 XTAL1 與 XTAL2 之間接石英晶體振蕩器和微調(diào)電容,從而構(gòu)成一個穩(wěn)定 的自激振蕩器,就是單片機的內(nèi)部時鐘電路,如圖( A)所示。時鐘電路產(chǎn)生的振蕩脈沖經(jīng) 過二分頻以后,才成為單片機的時鐘信號。電容 C1 和 C2 為微調(diào)電容,可起頻率穩(wěn)定、微 調(diào)作用,一般取值在 5?30pf 之間,常取 30pf。晶振的頻率范圍是 1.2MHz~12MHz ,典型 值取 6 MHz。XTAL1 接地,XTAL2 接外部震蕩器,外接信號應是高電平持續(xù)時間大于 20ns 的方波,且脈沖頻率應低于 12 MHZ。如圖(B)所示。
韻?TL
KTAL1 V5S 國 AP WD5L 外部時鐘源接法 (2 )復位電路 對于使用 (A)內(nèi)部時鐘電路 (B)外部振蕩源 12MHZ 的晶振的單片機,復位信號持續(xù)時間應超過 4 卩 s 才能完成復位操作。
產(chǎn)生復位信號的電路有上電自動復位電路和按鍵手動復位電路兩種方式。
上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的,該電路通過電容充電在 RST 引腳上加了一個高電平完成復位操作。上電自動復位電路如圖( 按鍵手動復位電路。
按鍵手動復位是通過按鍵實現(xiàn)人為的復位操作, (b)所示。
a)所示。
按鍵手動復位電路如圖 8051 UTACCl ±
復位后內(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í)行指令時,由程序存儲器中讀取的指令代碼送入 指令存儲器,經(jīng)譯碼器后由定時與控制電路發(fā)出相應的控制信號,完成指令所指定的操作。
4•程序計數(shù)器 PC PC 是一個 16 位計數(shù)器,其內(nèi)容為單片機將要執(zhí)行的指令機器碼所在存儲單元的地址。
PC 具有自動加 1 的功能,從而實現(xiàn)程序的順序執(zhí)行。由于 PC 不可尋址的,因此用戶無法對它 直接進行讀寫操作,但可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以實現(xiàn)程序的轉(zhuǎn)移。
PC 的尋址范圍為 64KB,即地址空間為 0000?0FFFFH。
(4)堆棧指針 SP SP 為 8 位寄存器,用于指示棧頂單元地址。所謂堆棧是一種數(shù)據(jù)結(jié)構(gòu),它只允許在其 一端進行數(shù)據(jù)刪除和數(shù)據(jù)插入操作的線性表。數(shù)據(jù)寫入堆棧叫入棧( PUSH ),數(shù)據(jù)讀出堆 棧叫出棧(POP)。堆棧的最大特點是“后進先出”的數(shù)據(jù)操作原則。
MCS-51 系統(tǒng)復位后, SP 初始化為 07H。
VCC S051 1 1
22UF -r-
RST ° n
1 U
(5) 數(shù)據(jù)指針 DPTR 數(shù)據(jù)指針 DPTR 為 16 位寄存器,它是 MCS—51 中唯一的一個 16 位寄存器。編程時, 既可按 16 位寄存器使用,也可作為兩個 8 位寄存器分開使用。
DPH 為 DPTR 的高八位寄 存器, DPL 為 DPTR 的低八位寄存器。
DPTR 通常在訪問外部數(shù)據(jù)存儲器時作為地址指針 使用,尋址范圍為 64KB 。
三、實驗小結(jié) 單片機系統(tǒng)電路的基本模塊有:復位電路,晶振電路,上拉電阻,下載口等主要模塊。
其中 P0 口作為輸出使用必須對單片機的 I/O 口,因為 P0 為集電極開路,可以提高其功率和 電平轉(zhuǎn)換。在單片機最小系統(tǒng)的構(gòu)建中, EA 腳拉高是非常必要的,它可以影響單片機的正 常工作。
在檢測單片機是否正常工作, 可以通過檢測晶振兩端的信號的波形形狀。
在單片機 正常工作條件下, 其信號為正弦波。
經(jīng)過一周的時間基本完成單片機最小系統(tǒng)板的焊接部分 和單片機的工作原理, 以及對單片機外圍電路的焊接, 知道了硬件部分的重要性, 單片機最 小系統(tǒng)板的焊接最主要是晶振部分的焊接, 它為單片機提供了做工作的頻率, 是單片機的心 臟。
實驗二跑馬燈實驗及 74HC138 譯碼器 一、實驗原理 1、跑馬燈 (1) 參考實驗原理圖如下:
(跑馬燈原理圖) (2) 工作原理 給單片機的端口賦初值,點亮第一個 LED,然后延時一段時間后,點亮下一個 LED 依 次循環(huán)下去。形成動態(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) 當一個選通端 E1 為高電平,另兩個選通端 E2 和 E3 為低電平時,可將地址
端 A0 A1、A2 的二進制編碼在 Y0 至 Y7 對應的輸出端以低電平譯出。比如:
A0A1A2=110 寸,貝 U Y6 輸出端輸出低電平信號。
(2) 利用 E1、E2 和 E3 可級聯(lián)擴展成 24 線譯碼器;若外接一個反相器還可級 聯(lián)擴展成 32 線譯碼器。
(3)
若將選通端中的一個作為數(shù)據(jù)輸入端時, 74LS138 還可作數(shù)據(jù)分配器。
(4) 可用在 8086 的譯碼電路中,擴展內(nèi)存。
(1) 參考實驗原理圖如下:
U1
(2) 工作原理 根據(jù) 138 譯碼器的工作原理,當 G1G2AG2B=111 時,譯碼器工作,根據(jù) 74LS138 的 3 個譯碼信號 A、B、C 來選擇 Y0、Y1、Y2、Y3、Y4、Y5、Y6 作為輸出,各輸出為低電平 時,當共陽極的 LED 燈節(jié)高電平時,就會使相應的燈亮。
A、B、C 三個信號由單片機的 P1.0、P1.1 和 P1.2 來提供,而 P1.0、P1.1 和 P1.2 的值是通過匯編程序設置初始值后,然后 根據(jù)P1.0、P1.1 和 P1.2 的值加 1 和循環(huán)來時 8 各 LED 燈循環(huá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、跑馬燈實驗代碼:
#include<reg52.h> //定義 8052 寄存器的頭文件 #include<intrins.h> //包含 _cror_()的頭文件 #define uint unsigned int //宏定義 #defi ne uchar un sig ned char void delay(ui nt n) // 延時子程序 { 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)點亮 P1=i; delay(300); //調(diào)用延時函數(shù) }
四、實驗調(diào)試:
將硬件電路焊制完成后, 連接好電路, 仔細檢查無錯誤后, 我們將流水燈程 序下載至 STC89C52 單片機中,看到八個燈按順序依次循環(huán)點亮。但在焊制的過 程中由于八個 LED 燈是按共陽極接法連入電路中,所以可以只焊一個 470 Q 的上 拉電阻,此處上拉電阻的選擇規(guī)則如下:由于點亮 LED 需要大約 7~11mA 勺電流, 而電源供電為 5V,所以由歐姆定律可知上拉電阻為 714~454 Q, 此處選擇 470 Q 。
實驗中的接線是非常重要的, 在接線之前一定要用萬用表檢測線的好壞否則實驗 是很難成功的!
實驗三 8255 控制交通燈實驗 一、 實驗原理 1、交通燈原理 交通燈的變化規(guī)律是:先假定一個十字路口為東南西北走向交通燈的初始狀態(tài)為狀態(tài) 1,東西方向綠燈通車,南北方向紅燈。經(jīng)過過一段時間( 3S)轉(zhuǎn)換狀態(tài) 2,東西方向黃燈 閃亮,延時 2S,南北方向仍然紅燈。再轉(zhuǎn)換到狀態(tài) 3,東西方向紅燈通車,南北方向綠燈。
過一段時間(3S)轉(zhuǎn)換到狀態(tài) 4,南北方向黃燈閃亮,延時 2S,東西方向仍然紅燈。最后循 環(huán)至南北紅燈,東西綠燈。
實驗原理參考圖:
2、8255 芯片工作原理:
8255A 是一個 40 引腳的雙列直插式集成電路芯片。按功能可把 8255A 分為 三個邏輯電路部分,即:口電路、總線接口電路和控制邏輯電路 。
。1)
口電路 8255A 共有三個 8 位口,其中 A 口和 B 口是單純的數(shù)據(jù)口,供數(shù)據(jù) I/O 使用。
而C 口則既可以作數(shù)據(jù)口,又可以作控制口使用,用于實現(xiàn) A 口和 B 口的控制功 能。數(shù)據(jù)傳送中 A 口所需的控制信號由 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
總線接口電路用于實現(xiàn) 8255A 和單片微機的信號連接。其中包括:數(shù)據(jù)總線 緩沖器和讀/寫控制邏輯,數(shù)據(jù)總線緩沖器為 8 位雙向三態(tài)緩沖器,可直接和 80C51 的數(shù)據(jù)線相連,與 I/O 操作有關的數(shù)據(jù)、控制字和狀態(tài)信息都是通過該緩 沖器進行傳送。與讀寫有關的控制信號有 CS 為片選信號(低電平有效),RD 為讀信號(低電平有效),WF 為寫信號(低電 平有效)
, AO、A1 為端口選擇信號。8255A 共有四個可尋址的端口(即 A 口、B 口、C 口和控制寄存器),用二位地址編碼即可實現(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—復位信號(高電平有效)。復位之后,控制寄存器清除,各端口 被置為輸入方式。
讀寫控制邏輯用于實現(xiàn) 8255A 的硬件管理:芯片的選擇,口的尋址以及 規(guī)定各端口和單片微機之間的數(shù)據(jù)傳送方向。
(3)控制邏輯電路 控制邏輯電路包括 A 組控制和 B 組控制,合在一起構(gòu)成 8 位控制寄存器。
用于存放各口的工作方式控制字 8255A 工作方式及數(shù)據(jù) I/O 操作 (1)8255A 的工作方式(實驗用方式 0)
方式 0 基本輸入/輸出方式 方式 0 下,可供使用的是兩個 8 位口( A 口和 B 口)及兩個 4 位口( C 口高 4 位部分和低 4 位部分)。四個口可以是輸入和輸出的任何組合 方式 0 適用于無條件數(shù)據(jù)傳送,也可以把 C 口的某一位作為狀態(tài)位,實現(xiàn)查 詢方式的數(shù)據(jù)傳送。
(2) 數(shù)據(jù)輸入操作 用于輸入操作的聯(lián)絡信號有:
STB(StroBe)—選通脈沖,輸入,低電平有效。
當外設送來 STB 信號時,輸 入數(shù)據(jù)裝入 8255A 的鎖存器。
IBF(Input Buffer Full) —輸入緩沖器滿信號,輸出,高電平有效。
IBF 信號有效,表明數(shù)據(jù)已裝入鎖存器,因此它是一個狀態(tài)信號。
INTR(INTerrupt Request) —中斷請求信號,高電平有效,當 IBF 數(shù)據(jù)輸入 過程:當外設準備好數(shù)據(jù)輸入后,發(fā)出信號,輸入的數(shù)據(jù)送入緩沖器。然后 IBF 信號有效。如使用查詢方式,則 IBF 即作為狀態(tài)信號供查詢使用;如使 用中斷方式,當信號由低變高時,產(chǎn)生 INTR 信號,向單片微機發(fā)出中斷。
單片微機在響應中斷后執(zhí)行中斷服務程序時讀入數(shù)據(jù), 并使 INTR 信號變低, 同時也使 IBF 信號同時變低。以通知外設準備下一次數(shù)據(jù)輸入。
(3) 數(shù)據(jù)輸出操作 用于數(shù)據(jù)輸出操作的聯(lián)絡信號有:
ACK(ACKnowledge—) 外設響應信號輸入,低電平有效。
當外設取走輸出數(shù)據(jù),并處理完畢后向單片微機發(fā)回的響應信號為高,信號 由低變高 (后沿)時,中斷請求信號有效。向單片微機發(fā)出中斷請求。
OBF(Output Buffer Full )——輸出緩沖器滿信號,輸出,低電平有 效。
當單片微機把輸出數(shù)據(jù)寫入 8255A 鎖存器后,該信號有效,并送去啟動 外設以接收數(shù)據(jù)。
INTR-中斷請求信號,輸出,高電平有效。
數(shù)據(jù)輸出過程:外設接收并處理完一組數(shù)據(jù)后,發(fā)回 ACK 信號。該信號使 OBF 變高,表明輸出緩沖器已空。如使用查詢方式,則 OBF 可作為狀態(tài)信號供 查詢使用;如使用中斷方式,則當 ACK 信號結(jié)束時,INTR 有效,向單片微機 發(fā)出中斷請求。在中斷服務過程中,把下一個輸出數(shù)據(jù)寫入 8255A 的輸出緩沖 器。寫入后 OBF 有效,表明輸出數(shù)據(jù)已到,并以此信號啟動外設工作,取走并
處理 8255A 中的輸出數(shù)據(jù)。8255A C 口聯(lián)絡信號定義: C 口廳 方式 1 方式 2 獻 輸出 獻 輸出 PCj
OBFA
OBFA
ACKA
ACKA
IBFA
IBFA
STBA
STBA
PCs
INTRA
INTRA
INTRA
INTRA
PCs
預 ACKB
PCi
IBFT ®FB
卩必 INTRB INTO
三、實驗源程序代碼 #include<reg52.h> /定義 8052 單片機寄存器的頭文件 #include<absacc.h>/絕對地址處理頭文件,包含 XBYTE,用 XBYTE 來定義擴展 的 I/O 端口和外部 RAM 單元地址 #define uint unsigned int //宏定義 軟件流程圖 初姑化,南北紅燈 團弓磴 I: 灼亮*東 西黃燈囚體
#define uchar unsigned char #define CON XBYTE[0xffff] // 定義 8255 控制字寄存器端口 #define PA XBYTE[0xfcff] //定義 8255 端口 PA 地址 void delay(uint z); // 延時 void main() {
uint i=0; CON=0x80;〃寫方式控制字,方式 0,基本輸入輸出 PA=0xff; while(1) {
PA=0x1e;/凍西綠燈,南北紅燈 delay(1000);/延時 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) //延時子程序 {
uint x,y; for(x=z;x>0;x--) for(y=500;y>0;y--);
}
熱點文章閱讀