?? at89s51.c
字號:
設(shè)為首頁 | 加入收藏夾 | 請投華仔一票
八文網(wǎng) - 匯聚八方文檔 - 做最優(yōu)秀的免費(fèi)文檔下載網(wǎng)站
AT89S51單片機(jī)實驗及實踐教程
文檔類型: Adobe Acrobat PDF 文檔 文檔大小:1.96M
AT89S51單片機(jī)實驗及實踐教程 www.supermcu.com
- 1 -
AT89S51
單片機(jī)實驗及實踐教程
孫安青 編著
西譜單
機(jī)電子網(wǎng) www.supermcu.com
AT89S51單片機(jī)實驗及實踐教程 www.supermcu.com
- 2 -
目 錄
第一章 AT
9S51單片機(jī)實驗及實踐系統(tǒng)板簡介┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅1
第二章 Keil C軟件使用┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅14
第三章 AT89S51單片機(jī)下載器軟件使用┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅25
第四章 實驗及實踐課題┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅28
1. 閃爍燈┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅28
2. 模擬開關(guān)燈┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅31
3. 多路開關(guān)狀態(tài)指示┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅33
4. 廣告燈的左移右移┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅37
5. 廣告燈(利用取表方式)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅40
6. 報警產(chǎn)生器┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅43
7. I/O并行口直接驅(qū)動LED顯示┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅46
8. 按鍵識別方法之一┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅49
9. 一鍵多功能按鍵識別技術(shù)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅53
10. 00-99計數(shù)器┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅57
11. 00-59秒計時器(利用軟件延時)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅60
12. 可預(yù)置可逆4位計數(shù)器┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅63
13. 動態(tài)數(shù)碼顯示技術(shù)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅67
14. 4×4矩陣式鍵盤識別技術(shù)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅70
15. 定時計數(shù)器T0作定時應(yīng)用技術(shù)(一)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅79
16. 定時計數(shù)器T0作定時應(yīng)用技術(shù)(二)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅84
17. 99秒馬表設(shè)計┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅89
18. "嘀,嘀,……"報警聲┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅95
19. "叮咚"門鈴┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅99
20. 數(shù)字鐘(★)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅105
21. 拉幕式數(shù)碼顯示技術(shù)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅114
22. 電子琴┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅121
23. 模擬計算器數(shù)字輸入及顯示┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅134
24. 8×8LED點陣顯示技術(shù)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅141
25. 點陣LED"0-9"數(shù)字顯示技術(shù)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅146
26. 點陣式LED簡單圖形顯示技術(shù)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅153
27. ADC0809 A/D轉(zhuǎn)換器基本應(yīng)用技術(shù)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅157
28. 數(shù)字電壓表┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅163
29. 兩點間溫度控制┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅167
30. 四位數(shù)數(shù)字溫度計┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅172
31. 6位數(shù)顯頻率計數(shù)器┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅177
32. 電子密碼鎖設(shè)計┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅180
33. 4×4鍵盤及8位數(shù)碼管顯示構(gòu)成的電子密碼鎖┅┅┅┅┅┅┅┅┅┅┅186
34. 帶有存儲器功能的數(shù)字溫度計-DS1624技術(shù)應(yīng)用┅┅┅┅┅┅┅┅┅┅199
35. DS18B20數(shù)字溫度計使用┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅211
AT89S51單片機(jī)實驗及實踐教程 www.supermcu.com
- 3 -
概述:
單片機(jī)以其高可靠性,高性價比,低電壓,低功耗等一系列優(yōu)點,近幾年得到迅猛發(fā)展和大范圍推廣,
廣泛應(yīng)用于工業(yè)控制系統(tǒng),數(shù)據(jù)采集系統(tǒng),智能化儀器儀表,及通訊設(shè)備,日常消費(fèi)類產(chǎn)品,玩具等.并
且已經(jīng)深入到工業(yè)生產(chǎn)的各個環(huán)節(jié)以及人民生活的各層次中,如車間流水線控制,自動化系統(tǒng)等,智能型
家用電器(冰箱,空調(diào),彩電)等,無不含有CPU控制器,即單片機(jī).
為適應(yīng)目前人才緊缺的狀態(tài),著眼于培養(yǎng)單片機(jī)人才,單片機(jī)工程師.我們推出了針對培養(yǎng)學(xué)習(xí)者應(yīng)
用能力的AT89-ISP在線下載實驗儀.以配合各大,中專院校,高職,技校等紛紛增加及擴(kuò)大的單片機(jī)教
學(xué)的需要.
特點:
1,在系統(tǒng)可編程特性:
首開單片機(jī)學(xué)習(xí)開發(fā)系統(tǒng)的先河,可方便地在系統(tǒng)實現(xiàn)程序下載,實時修改程序的不足之處,并立即
從目標(biāo)系統(tǒng)中反映出修改的結(jié)果,大大縮短單片機(jī)學(xué)習(xí)開發(fā)的周期,提高效率
2,代碼全速仿真:
彌補(bǔ)傳統(tǒng)學(xué)習(xí)系統(tǒng)不能全速仿真的缺陷,使系統(tǒng)運(yùn)行的結(jié)果完全反映代碼的執(zhí)行情況,更切實地吻合
教學(xué)儀器的特點.其次,在軟件開發(fā)前的仿真調(diào)試后,完全可燒寫入目標(biāo)芯片,并能獲得完全一致的
代碼執(zhí)行結(jié)果.是集學(xué)習(xí),開發(fā)于一身的優(yōu)良的目標(biāo)系統(tǒng);
3,系統(tǒng)資源豐富:
★ 內(nèi)置RAM 32KB模塊
★ 內(nèi)置8位動態(tài)數(shù)碼顯示模塊
★ 內(nèi)置8X8點陣顯示模塊
★ 4位靜態(tài)數(shù)碼顯示模塊
★ 4位級聯(lián)的74LS164串并轉(zhuǎn)換模塊
★ 內(nèi)置8通道8位A/D轉(zhuǎn)換
★ 內(nèi)置8位D/A轉(zhuǎn)換
★ 內(nèi)置2路SPI和I2C總線接口
★ 內(nèi)置4路1-Wire總線接口
★ 內(nèi)置4X4矩陣式鍵盤
★ 內(nèi)置4路獨(dú)立式鍵盤
★ 內(nèi)置4路撥動開關(guān)
★ 內(nèi)置8位LED發(fā)光二極管
★ 內(nèi)置3路0-5V之間可調(diào)的電壓
★ 內(nèi)置音頻放大模塊
★ 2路繼電器控制模塊
★ 2路4分頻模塊
★ 內(nèi)置RS232通信模塊
4,資源的可重復(fù)利用性:
目標(biāo)系統(tǒng)上的所有資源均能重復(fù)利用并能通過軟件調(diào)配或通過擴(kuò)展槽增加其它的功能提高系統(tǒng)的實
用性
5,軟硬結(jié)合,操作簡單方便:
我們不僅提供豐富的硬件資源,也提供良好的上位機(jī)控制軟件,只要通過軟件的功能操作就能實現(xiàn):
源代碼的調(diào)試編譯,查找與修改錯誤之處,在線代碼下載等功能.使單片機(jī)的學(xué)習(xí)與開發(fā)一體化,集
成化,更進(jìn)一步體現(xiàn)系統(tǒng)學(xué)習(xí)的優(yōu)越性.
新型芯片I2C,SPI及1-Wire串行接口實驗
▲ I2C串行EEPROM 24C02
AT89S51單片機(jī)實驗及實踐教程 www.supermcu.com
- 4 -
▲ SPI串行EEPROM 93C46A
▲ SPI串行實時時鐘 DS1302
▲ I2C串行EEPROM+溫度傳感器 DS1624
▲ SPI串行EEPROM+看門狗+復(fù)位 X25045
▲ 1-Wire串行溫度傳感器 DS18B20
▲ 1-Wire串行EEPROM DS2450
基本的接口實驗
▲ 燈控制實驗
▲ 循環(huán)燈控制實驗
▲ 動態(tài)數(shù)碼顯示控制實驗
▲ 靜態(tài)數(shù)碼顯示控制實驗
▲ 繼電器驅(qū)動控制實驗
▲ 8X8點陣實驗
▲ RS232串行通信實驗
▲ 74LS164串/并轉(zhuǎn)換實驗
▲ 4X4矩陣式鍵盤按鍵識別實驗
▲ 獨(dú)立式按鍵識別技術(shù)實驗
▲ RAM數(shù)據(jù)存儲器擴(kuò)展實驗
▲ 音樂控制實驗
▲ A/D轉(zhuǎn)換實驗
▲ D/A轉(zhuǎn)換實驗
▲ 定時計數(shù)器基本應(yīng)用實驗
▲ 中斷技術(shù)基本應(yīng)用
實踐課題實驗
▲ 99秒表實驗(定時器及數(shù)碼顯示的應(yīng)用)
▲ 萬年歷時間實驗(定時器,數(shù)碼顯示及鍵盤的應(yīng)用)
▲ 廣告字幕機(jī)移動實驗(8X8點陣應(yīng)用)
▲ 空調(diào)溫度控制實驗(溫度傳感器應(yīng)用)
▲ 溫度測量實驗(溫度傳感器及數(shù)碼顯示應(yīng)用)
▲ 電子琴實驗(4X4鍵盤,音樂控制應(yīng)用)
▲ 電子密碼鎖(4X4鍵盤,數(shù)碼顯示,及音樂控制)
▲ 單片機(jī)與PC機(jī)的通信實驗(通信設(shè)計應(yīng)用)
▲ 微波爐控制設(shè)計實驗
▲ 洗衣機(jī)控制設(shè)計實驗
適用對象:
1, 學(xué)校實驗室教學(xué)
2, 個人學(xué)習(xí)實驗及開發(fā)
3, 學(xué)生科研項目開發(fā)
AT89S51I /'? ZZZVXSHUPFXFRP
- 5 -
1 0? $76 )(rP' rC 2ˇ4 S1T
AT89S51)(rP' rC 2ˇ4 S~ 1T 2ˇ4 S L .@ C$d +¨! + 7 ^
( 0 ,X)¨3^ , f4 ¨?!8¨^ AEàL,X)((Q5 )( 5 oAEà,X
) W~
! .@ + 4 V
1 4 +<{ +
2ˇ4 S oZ2C^4 +<{ +¨ ×ü2ˇ4 S,X " 0^ ¨Eg9 +Realy in 1'Realy
in 20^ Eg9 { C^4 +<¨4 +<{,X + 0^,X J\Eg9'Eg ~ /~
com1 open1 short1¨com2 open2 short2¨+bE 4 +<) ) {¨'4 + ¨com1'short1, E ¨com2'short2, E ×'4 +< ¨com1'open1,
E ¨com2'open2, E ~J+C^s) 11/
11
2 5×+_$d +
ü2ˇ4 S m 5×+_$d ¨+TL4319' 5×+_,XA×8V¨A×8V8רü0 2.50V
K¨× U2ˇ4 S L U 5×+_8 (
F…A' o 5×+_¨+Var Vref Out
0^ Eg ~J+C^s) V 12/
12
3 C^^A×+_ +
!8 + U*üb o0
5VK¨,X^ ,X +_¨G^
0 5×+_$d3^ 0
+_ ~E C^, f( 0
,X~ h-+VR1¨VR2¨
VR30^ Eg ~K',X+C^s)
V 13/
AT89S51I /'? ZZZVXSHUPFXFRP
- 6 -
13
4 +$d +
+$d +2ˇ4 S JW + o 5V+$d¨+$dEg9 / ¨ / x,¨#+$d +$d {
Eg9¨Eg9,X+_ U"¨,¨#Eg9h b7.5V¨x#Eg9h b5V¨E E 7805 0^0_#+$do4 2ˇ4 JW + 0¨" / USBy 9 " 5V+$d¨ U*ü, hG!+,XUSB4 +6
9 " 5V,¨#+$d¨ü+$d +t -x+C^¨G+C^ -`C^¨AE 7805 0^0_< +6
+$d 3 ‰J+C^s) V 14/
14
5 / c EQ +
A +' $d/ c - EQAT 8 9 S 5 1 5 AT89S528 (¨WL U' ,XISP EQG! S*ü9' E ,Xs6 ~K',X+C^s) V 15/
15
AT89S51I /'? ZZZVXSHUPFXFRP
- 7 -
6 +GE@6 +
232+GE@6G *üMAX2328 (^TTL+GE@6 RS 232+G ¨^ *üb)( E ¨
)( )(K¨,XE ¨üA 2ˇ4 S oZ DB9,Xy ¨J *üISP EQ< +,X/ c
EQy ¨/~ISPInterface¨" y )( JWK RS232y ,XE 0^ ¨/~Common
Port~K',X+C^s) V 16/
16
7 Ne)[{*ó ' ¨E 0^ {W ,X> ' ¨DR1 DR88X8&
L +,X> {0^ ¨DC1 DC88X8& L +,X {0^ ~K',X+C^s) V 112
/
AT89S51I /'? ZZZVXSHUPFXFRP
- 10 -
112
13 C^ 'U1u / +
A +G *ü8 'U1u0 / 0*ü¨G^ *üf4 9{¨3^ ) {! '
U1u,X &A¨'{ "+G ¨ 'U1u ¨P +G ¨ 'U'X&A×{+G,XEg9+L1
L8Eg9~+C^s) V 113
113
14 A - +
ü2ˇ4 S oZ A - +¨{A - Y0 Y7Eg ~+C^s) V 114
AT89S51I /'? ZZZVXSHUPFXFRP
- 11 -
114
15 JE@6 +
A 2ˇ4 S G *üZ 74LS164~/ˇ! , DB RXDTXD0^ Eg9×K',X+C^s) V 115/
115
16 D E@6 +
2ˇ4 S ,XD E@6 +G *üZ8!,XD/AE@68 (DAC08329' D E@6E / ¨DAC0832+
#Eg _D/AE@68 (¨?!8¨ M6y L E LM3589' +#+_,XE@6~J,XD+ ,X
Eg9 D0 D70^ Eg9¨{DAC0832 0,X{ +WRCS0^ Eg9¨ G ,XEg
AOUT0^ Eg ¨+bLM358 0ü +$d5 ¨?!8 U4 LM358t9f12V+_¨ 12V
GND 12V0^ t9~K',X+C^s) V 116/
AT89S51I /'? ZZZVXSHUPFXFRP
- 12 -
116
17 )(2ˇ4
A 2ˇ4 S ,X)(2ˇ4 ^ K, +
> K, 3G-‰L K, ¨W+> ' 4 ¨ü! > ,Xx & 5B K¨E 4h4>
K, EL U16 K, 4 ×K',X+C^s) V 123/
AT89S51I /'? ZZZVXSHUPFXFRP
- 16 -
123
24 .% DB,|< +
ZE h G ,XDB ) ,XL U¨ü2ˇ4 S t9Z32KBDB,|<~RAM ¨DB4 D0
D7,X0^ Eg9¨P 8!4 A8 A150^ Eg9¨{DB,| > 35,17) D NO
SULQWI+HOOR,DP.(,/ Q 'D/ c;> ,X C
SULQWI,ZLOOEH\RXUIULHQG Q
ZKLOH
'
AT89S51I /'? ZZZVXSHUPFXFRP
- 23 -
üEg9 E~/ c ¨Aˇ5 4 , Z_-,Y4 Ee,X[ ,XQ Z ¨G .HLOF 7 |A GK
+¨J AEà,XNp8F /*üt "… ¨E S*ü ( JíA^¨ b P 4 / )[~/ cEg9'!' ¨
V /
ü ¨)ˇ3URMHFW9°)¨aü 9°))ˇ%XLOW7DUJHWE NM~ 5 S*ü KK ) ¨
4 A s ¨a)ˇ3URMHFW9°)¨ü 9°))ˇ6WDUW6WRS'HEXJ6HVVLRQ~ 5 S*ü
KK &WUO) #)V /
AT89S51I /'? ZZZVXSHUPFXFRP
- 24 -
A×A'/ cü ¨)ˇ'HEXJ9°)¨ü 9°))ˇ*RE NM¨~ 5 S*ü KK ) ¨
' a)ˇ'HEXJ9°)¨ü 9°))ˇ6WRS5XQQLQJE NM~ 5 S*ü KK (VF ×a)ˇ
9LHZ9°)¨aü 9°))ˇ6HULDO:LQGRZVE NM¨^ , / cE > ,X4§p¨J4§
pV /
7 !8¨
ü .HLO& .Z 'H / ,X )ˇ3URMHFW9°)¨aü 9°))ˇü ¨
)ˇ2XWSXW)ˇ&UHDWH+(;)LOHE NM¨S/ c4 A {*ó +(; - ¨o EQ/ c EQ $76 )(~
1 0? $76 )( EQAT89S51I /'? ZZZVXSHUPFXFRP
- 25 -
$76 )( EQ "L8F ~
AT89S51I /'? ZZZVXSHUPFXFRP
- 26 -
~ "L8 ^)(,XY "L8F ¨G)(YF… 520 ,XY "L8 0~
~ P' 4 E 4 / ¨ EQ)(YF… 520 ,XY - ,XY , !¤EW¨8 / c
EQE / ' EQ^A'5B^-,'E s6 ~
~ > EQ ^4 E .(,/ & EC E@ +(; ,X[ > 9 ¨')ˇ> EQ J ¨
) V /,X A-~
üE G E ‰ +(; 4 ,X[ ¨E WJ& ˇ' J ¨G^/ c - > 9 - / ~
> EQ V /
^ ^ - / ,X - E E ,63 EQ4 EQ $76 )(~
AT89S51I /'? ZZZVXSHUPFXFRP
- 27 -
~ A'5B A EC o 0 E > A'5B¨& ˇ J ¨ ) V /,X+ M6
üE G ^ E > E 0^ ,XA'5B¨EA'5B,X > E 0^ ¨
&20^&20^&20^&20¨BAu1k,X.@ (M& 9 n¨T Ax
&20¨G> E ~
" ¨E ^ 8 (,Xt !E > A'5B¨E / E ‰¨ AEt 8
(,X/ cAEE > t -x
J n! 8 (,X/ cE > 4{t -x
J n! 8 (,X/ cE > '4{t -x
J n! ¨ 8 (,X/ cE > 4{t -x
~ -, ^ )(,X8 ( 520 ,X/ cAˇ" 9 - / ¨& ˇ-, J ¨
G^-, +(; ,X[ ~
~ E E A EC 2ˇ4 ~
üE > / cA×A',X í¨ 8E E .(,/ & EC ^4 A Q,X/ cE@ +(; [ ¨E E M6
,X "'¨> EQ/ c ¨& ˇ7 | J ¨/ c EQ)(YF… 520 8 (¨ & ˇE > ¨
G^ , / c,X4§p~"… ¨! G ¨ / c,X í¨ U& ˇae J ¨!^ , h,X 0~
1 0? rP' rC A Nl
1 K & &C
U O *―
V 4.1.1/ üP1.00^ y 'U1uL1¨SL1üAE0 &A¨
&A,X K¨K¨Lh0.2/ ~
U *dC )5-
AT89S51I /'? ZZZVXSHUPFXFRP
- 28 -
4.1.1
U 2*4fi9- %E3
^)(2ˇ4 ,XP1.00^ *ü―4 E y C^ 'U1u / + ,XL10^
~
U /: @í@―?
~ / c,XA'Au "'
0)(,X ,X;> ,X K¨\-`¨DG / 4{¨?!8¨ U",XK & K¨K¨Lh0.2
/ ¨, b / 9A¨¨, ¨ ü;> ¨ 9 / c¨9E' ,X U
"¨E ,X / cV)A'Au6 M6K' 4 Js)
V 4.1.1/,X- 8 J'12MHz¨?!8¨1 <<ó1 /
<<ó /
MOV R6,#20 2 2
D1: MOV R7,#248 2 22 2h h
DJNZ R7,$ 2 2h248 (498
DJNZ R6,D1 2 2h
?!8¨ M6,X / c K¨ PV~
+ ^- ¨' 5 ^5 ¨ PV¨5 ^5 ¨ PV !8 ,X
Au )!~VrP' U" / PV¨PVh5 PV¨í 5 ¨ $/ cV
'(/$< 0295
'0295
'0295
'-1=5
'-1=5'
'-1=5'
5(7
~2 Eg {
V 1/¨'P1.00^ Eg P +G¨GP1.0 1 ¨B 'U1u,X) ―+ ^- ¨E
'U1uL1'X&A×'P1.00^ Eg "+G¨GP1.0 0 ¨ 'U1uL1 × ^ S*ü
SETBP1.0 SP1.00^ Eg P +G¨S*üCLRP1.0 SP1.00^ Eg "+G~
U /: u-
V 4.1.2/
AT89S51單片機(jī)實驗及實踐教程 www.supermcu.com
- 29 -
圖4.1.2
6. 匯編源程序
ORG 0
START: CLR P1.0
LCALL DELAY
SETB P1.0
LCALL DELAY
LJMP START
DELAY: MOV R5,#20 ;延時子程序,延時0.2秒
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
7. C語言源程序
#include
sbit L1=P1^0;
void delay02s(void) //延時0.2秒子程序
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void main(void)
{
while(1)
{
L1=0;
delay02s();
L1=1;
delay02s();
}
}
2. 模擬開關(guān)燈
1. 實驗任務(wù)
如圖4.2.1所示,監(jiān)視開關(guān)K1(接在P3.0端口上),用發(fā)光二極管L1(接在單片機(jī)P1.0端口上)顯示
開關(guān)狀態(tài),如果開關(guān)合上,L1亮,開關(guān)打開,L1熄滅.
2. 電路原理圖
AT89S51I /'? ZZZVXSHUPFXFRP
- 30 -
4.2.1
U 2*4fi9- %E3
~1 ^)(2ˇ4 ,XP1.00^ *ü―4 E y C^ 'U1u / +
,XL10^ ×
~2 ^)(2ˇ4 ,XP3.00^ *ü―4 E y C^…| G ,XK10^ ×
U /: @í@―?
~1 G( ,X #E /
)( G( ,X #, b)(9A¨¨ )(,XP3.00^ Eg9 ¨5àEg9,X
P +G'"+G / ¨'… GK1… ¨GEg9P +G¨, ' G ¨'…| GK1
… ¨GEg9"+G¨, ' GK` ~)(^ G *üJBBIT¨REL 5 JNBBIT¨REL
9' G( ,X #G^~
~2 Eg {
V 3/¨'P1.00^ Eg P +G¨GP1.0 1 ¨B 'U1u,X) ―+ ^- ¨E
'U1uL1'X&A×'P1.00^ Eg "+G¨GP1.0 0 ¨ 'U1uL1 × ^ S*ü
SETBP1.0 SP1.00^ Eg P +G¨S*üCLRP1.0 SP1.00^ Eg "+G~
U /: u-
K1 GK` Z
L1
L1&A
AT89S51單片機(jī)實驗及實踐教程 www.supermcu.com
- 31 -
圖4.2.2
6. 匯編源程序
ORG 00H
START: JB P3.0,LIG
CLR P1.0
SJMP START
LIG: SETB P1.0
SJMP START
END
7. C語言源程序
#include
sbit K1=P3^0;
sbit L1=P1^0;
void main(void)
{
while(1)
{
if(K1==0)
{
L1=0; //燈亮
}
else
{
L1=1; //燈滅
}
}
}
3. 多路開關(guān)狀態(tài)指示
1. 實驗任務(wù)
如圖4.3.1所示,AT89S51單片機(jī)的P1.0-P1.3接四個發(fā)光二極管L1-L4,P1.4-P1.7接了四個開關(guān)
K1-K4,編程將開關(guān)的狀態(tài)反映到發(fā)光二極管上.(開關(guān)閉合,對應(yīng)的燈亮,開關(guān)斷開,對應(yīng)的燈滅).
2. 電路原理圖
AT89S51I /'? ZZZVXSHUPFXFRP
- 32 -
4.3.1
U 2*4fi9- %E3
~1 ^)(2ˇ4 ,XP1.0 P1.3*ü―4 E y C^ 'U1u / + ,X
L1 L40^ ×
~2 ^)(2ˇ4 ,XP1.4 P1.7*ü―4 E y C^…| G ,XK1 K40^
×
4 / cA'AuY
~1 G( #
b G( #¨, )(9A¨¨Eg9G2ˇ¨ ^EB# #! G( ¨B!
G,X( A}, h,X 'U1u /¨^ G *üJBP1.X¨REL JNBP1.X¨REL
9' ×3^ # C^ G( ¨' A}J /¨^ G *üMOVA¨P1
^P10^ ,X( U /: u-
AT89S51單片機(jī)實驗及實踐教程 www.supermcu.com
- 33 -
圖4.3.2
6. 方法一(匯編源程序)
ORG 00H
START: MOV A,P1
ANL A,#0F0H
RR A
RR A
RR A
RR A
XOR A,#0F0H
MOV P1,A
SJMP START
END
7. 方法一(C語言源程序)
#include
unsigned char temp;
void main(void)
{
while(1)
{
temp=P1>>4;
temp=temp | 0xf0;
P1=temp;
}
}
8. 方法二(匯編源程序)
ORG 00H
START: JB P1.4,NEXT1
CLR P1.0
SJMP NEX1
NEXT1: SETB P1.0
NEX1: JB P1.5,NEXT2
CLR P1.1
SJMP NEX2
NEXT2: SETB P1.1
NEX2: JB P1.6,NEXT3
CLR P1.2
SJMP NEX3
開始
讀P1口數(shù)據(jù)到ACC
ACC內(nèi)容右移4次
ACC內(nèi)容與F0H相或
ACC內(nèi)容送入P1口
AT89S51單片機(jī)實驗及實踐教程 www.supermcu.com
- 34 -
NEXT3: SETB P1.2
NEX3: JB P1.7,NEXT4
CLR P1.3
SJMP NEX4
NEXT4: SETB P1.3
NEX4: SJMP START
END
9. 方法二(C語言源程序)
#include
void main(void)
{
while(1)
{
if(P1_4==0)
{
P1_0=0;
}
else
{
P1_0=1;
}
if(P1_5==0)
{
P1_1=0;
}
else
{
P1_1=1;
}
if(P1_6==0)
{
P1_2=0;
}
else
{
P1_2=1;
}
if(P1_7==0)
{
P1_3=0;
}
else
{
P1_3=1;
}
}
}
4. 廣告燈的左移右移
1. 實驗任務(wù)
做單一燈的左移右移,硬件電路如圖4.4.1所示,八個發(fā)光二極管L1-L8分別接在單片機(jī)的P1.0-P1.7
接口上,輸出"0"時,發(fā)光二極管亮,開始時P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0
亮,重復(fù)循環(huán).
2. 電路原理圖
AT89S51I /'? ZZZVXSHUPFXFRP
- 35 -
U 2*4fi9- %E3
^)(2ˇ4 ,XP1.0 P1.7*ü88 f4 E y C^ 'U1u / + ,XL1
L80^ ¨ U" P1.0 h-L1¨P1.1 h-L2¨¨P1.7 h-L8~
U /: @í@―?
^ E *üEg 0^ MOVP1¨A MOVP1¨ DATA¨ U4 3t E~,X ¨G^E'Eg {,X|0~
! E ,XDBAEà¨K',XDBV ><1
AT89S51I /'? ZZZVXSHUPFXFRP
- 36 -
U /: u-
4.4.2
U !v4E# /:
25*
67$57 0295
029$)(+
6(7%&
/223 0293$
/&$//'(/$<
5/&$
'-1=5/223
0295
/223 0293$
/&$//'(/$<
55&$
'-1=5/223
/-0367$57
'(/$< 0295
' 0295
' 0295
'-1=5
'-1=5'
'-1=5'
5(7
(1'
U & A /# /:
#include
unsigned char i;
unsigned char temp;
unsigned char a,b;
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
AT89S51I /'? ZZZVXSHUPFXFRP
- 37 -
{
while(1)
{
temp=0xfe;
P1=temp;
delay();
for(i=1;i<8;i++)
{
a=temp<>(8-i);
P1=a|b;
delay();
}
for(i=1;i>i;
b=temp< / cA'Au,X í¨ U*ü ,X 9'
~1 *üMOVDPTR¨ DATA16,X 9SDB J\ ,<,X ~
~2 *üMOVCA¨ A DPTR,X ¨B3t<,Xat DPTR,X¨^ S/ c
AuDU /: u-
4.5.2
U !v4E# /:
ORG 0
START: MOV DPTR,#TABLE
LOOP: CLR A
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -