【正文】
。 P3 口 : P3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4 個(gè) TTL 門(mén)電流。作為輸入,由于外部下拉為低電平, P3 口將輸出電流( ILL)這是由于上拉的緣故。 RST:復(fù)位輸入。 ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在由外部程 序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次 /PSEN 有效。 /EA :當(dāng) /EA 保持低電平時(shí),則在此期間外部程序存儲(chǔ)器( 0000HFFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。 第 6 頁(yè) 共 17 頁(yè) XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 晶振是控制 CPU 的時(shí)鐘頻率的 ,也就是產(chǎn)生高低電平的周期(產(chǎn)生一個(gè)高電平 ,和一個(gè)低電平為一個(gè)周期 ,)一般說(shuō)來(lái)次頻率越高 ,電腦在單位時(shí)間里處 理的速度越快晶振本身并不產(chǎn)生振蕩,但它會(huì)以一個(gè)固定的頻率與外電路發(fā)生諧振,前提是外電路的振蕩頻率必須與晶振的固有振蕩頻率相一致,起碼也要非常接近,否則電路將停振 此次流水燈設(shè)計(jì),我們用 1MHZ 晶振和 30pf 的電容,它們組成一個(gè)穩(wěn)定的自己振蕩器。為單片機(jī)提供標(biāo)準(zhǔn)時(shí)鐘。 除了進(jìn)入系統(tǒng)的正常 初始化外,當(dāng)程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),也須重新啟動(dòng)單片機(jī),使其復(fù)位。片內(nèi) RAM不受復(fù)位的影響,上電后 RAM 中的內(nèi)容是隨機(jī)的。 單片機(jī)的復(fù)位操作有上電自動(dòng)復(fù)位和手動(dòng)按鍵復(fù)位 兩種方式。如圖所示。只要高電平能保持復(fù)位所需要的時(shí)間(約兩個(gè)機(jī)器周期),單片機(jī)就能實(shí)現(xiàn)復(fù)位。 A2A1A0A3A4A5A7A6A0A1A2A3A4A5A6A7A7A6A5A4A3A2A1A0X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1R62 2 0R52 2 0R42 2 0R32 2 0R22 2 0R12 2 0R02 2 0R72 2 0X1CR Y S T A LR 1 61 0 kC13 0 p fC23 0 p fC41nFD2L E D Y E L L O WD3L E D Y E L L O WD4L E D Y E L L O WD5L E D Y E L L O WD6L E D Y E L L O WD7L E D Y E L L O WD8L E D Y E L L O WD1L E D Y E L L O WR 1 42 2 0R 1 32 2 0R 1 22 2 0R 1 12 2 0R 1 02 2 0R92 2 0R82 2 0R 1 52 2 0D 1 0L E D Y E L L O WD 1 1L E D Y E L L O WD 1 2L E D Y E L L O WD 1 3L E D Y E L L O WD 1 4L E D Y E L L O WD 1 5L E D Y E L L O WD9L E D Y E L L O WD 1 6L E D Y E L L O W 圖 4 流水燈硬件原理圖 從原理圖中可以看出,如果要讓接在 口的 LED1 亮起來(lái),那么只要把 口的電平變?yōu)榈碗娖骄涂梢粤耍幌喾?,如果要接? 口的 LED1 熄滅,就要把 口的電平變?yōu)楦唠娖?;同理,接?~ 口的其他 7 個(gè) LED 的點(diǎn)亮和熄滅的方法同 LED1。在此我們還應(yīng)注意一點(diǎn),由于人眼的視覺(jué)暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時(shí)間很短,我們?cè)诳刂贫O管亮滅的時(shí)候應(yīng)該延時(shí)一段時(shí)間,否則我們就看不到“流水”效果了。 中 斷 控 制定 時(shí) / 計(jì) 數(shù) 器 1定 時(shí) / 計(jì) 數(shù) 器 0程 序 存 儲(chǔ) 器 數(shù) 據(jù) 存 儲(chǔ) 器4 K / 8 K 字節(jié) R O M1 2 8 / 2 5 6 字節(jié) R A M串 行 口時(shí) 鐘 電 路C P U總 線控 制并 行 口P 0 P 1 P 2 P 3T X D R X D控 制 圖 5 MCS51 系列單片機(jī)組成框圖 由圖 1 可見(jiàn), MCS51 系列單片機(jī)主要由以下部件通過(guò)片內(nèi)總線連接而成:中央處理器( CPU)、數(shù)據(jù)存儲(chǔ)器( RAM)、程序存儲(chǔ)器( ROM)、并行輸入 /輸出口( P0 口 ~P3 口)、串行口、定時(shí)器 /計(jì)數(shù)器、中斷控制、總線控制及時(shí)鐘電路。軟件編程是單片機(jī)應(yīng)用系統(tǒng)中的一個(gè)重要的組成部分,是單片機(jī)學(xué)習(xí)的重點(diǎn)和難點(diǎn)。 位控法 這是一種比較笨但又最易理解的方法,采用順序程序結(jié)構(gòu),用位指令控制 P1 口的每一個(gè)位輸出高低電平,從而來(lái)控制相應(yīng) LED 燈的亮滅。初值 11111110 送入 A MOV 30H,7 。A 送入 P1 口 (初始點(diǎn)亮 ) LCALL DELAY 。循環(huán)左移 DJNZ 30H,LEFT 。重置計(jì)數(shù)器,為右移次數(shù) RIGHT: MOV P1,A 。延時(shí) RR A 。未夠 7 次繼續(xù)右移 AJMP MAIN DELAY: MOV R5,195 。當(dāng) 端口滅時(shí), led 又變回 11111110,完成流水燈的循環(huán)工作。 //延時(shí)毫秒 12M, ms 最大值 255 void main() { uchar led。 //循環(huán)控制變量 while(1) { led = 0xfe。 i 7。 //led 值送入 P1 口 第 13 頁(yè) 共 17 頁(yè) delay_ms(100)。 //led 值