51單片機(jī)實(shí)訓(xùn)指導(dǎo)_第1頁(yè)
51單片機(jī)實(shí)訓(xùn)指導(dǎo)_第2頁(yè)
51單片機(jī)實(shí)訓(xùn)指導(dǎo)_第3頁(yè)
51單片機(jī)實(shí)訓(xùn)指導(dǎo)_第4頁(yè)
51單片機(jī)實(shí)訓(xùn)指導(dǎo)_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目 錄基本I/O口實(shí)訓(xùn)1外部數(shù)據(jù)存儲(chǔ)器的應(yīng)用(6264)4外部數(shù)據(jù)存儲(chǔ)器的應(yīng)用(2864)6鍵盤顯示接口芯片的應(yīng)用8并口擴(kuò)展的應(yīng)用12A/D轉(zhuǎn)換的實(shí)訓(xùn)14D/A轉(zhuǎn)換的實(shí)訓(xùn)20采集溫度21制作音樂盒27制作四字單色顯示屏31控制微型打印機(jī)39實(shí)驗(yàn)一:基本I/O口的實(shí)訓(xùn)目的:通過對(duì)單片機(jī)的編程仿真,學(xué)會(huì)單片機(jī)仿真系統(tǒng)的基本工作過程。要求:用LED的亮/滅來(lái)體現(xiàn)單片機(jī)高/低電平的變化,連接單片機(jī)的基本I/O口,對(duì)單片機(jī)進(jìn)行編程使其完成:(1)8個(gè)LED順序點(diǎn)亮,順序熄滅,依此循環(huán)4次。(2)8個(gè)LED,第1、3、5、7與2、4、6、8 LED交替點(diǎn)亮,依此循環(huán)4次。(3)(1)和(2)無(wú)限次循環(huán)。原

2、理:步驟:1,連接系統(tǒng)板的P1口到LED。 2,連接PC機(jī)和仿真機(jī)的串口線。 3,給仿真機(jī)接通電源。 4,打開仿真機(jī)的電源開關(guān),電源燈亮表示仿真系統(tǒng)已經(jīng)帶電。 5,編程。 6,調(diào)試。 7,改換其它I/O口,調(diào)試程序。參考程序: ORG 0000H MAIN:MOV P1,#0FFH MOV R7,#04H BACK1:SETB P3.0 CLR P1.0 LCALL YS CLR P1.1 LCALL YS CLR P1.2 LCALL YS CLR P1.3 LCALL YS CLR P1.4 LCALL YS CLR P1.5 LCALL YS CLR P1.6 LCALL YS CLR

3、P1.7 LCALL YS SETB P1.0 LCALL YS SETB P1.1 LCALL YS SETB P1.2 LCALL YS SETB P1.3 LCALL YS SETB P1.4 LCALL YS SETB P1.5 LCALL YS SETB P1.6 LCALL YS SETB P1.7 LCALL YS CLR P3.0 DJNZ R7,BACK1 MOV R7,#04H BACK2:SETB P3.0 CLR P1.1 CLR P1.3 CLR P1.5 CLR P1.7 LCALL YS LCALL YS SETB P1.1 SETB P1.3 SETB P1.5

4、 SETB P1.7 CLR P1.0 CLR P1.2 CLR P1.4 CLR P1.6 LCALL YS LCALL YS SETB P1.0 SETB P1.2 SETB P1.4 SETB P1.6 CLR P3.0 DJNZ R7,BACK2 LJMP MAIN YS: MOV TMOD,#01H MOV R5,#05H LOOP:MOV TH0,#4CH MOV TL0,#00H SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 DJNZ R5,LOOP RET SJMP $ END心得體會(huì):實(shí)驗(yàn)二:外部數(shù)據(jù)存儲(chǔ)器的應(yīng)用(6264)目的:學(xué)會(huì)用單片機(jī)和外部數(shù)據(jù)

5、存儲(chǔ)器進(jìn)行交流,了解單片機(jī)和外部數(shù)據(jù)進(jìn)行交換時(shí)的時(shí)序關(guān)系。要求:以6264數(shù)據(jù)存儲(chǔ)器為實(shí)例,按照系統(tǒng)板上的硬件地址對(duì)其進(jìn)行編程,寫出 單片機(jī)與6264的接口地址,讀出6264中連續(xù)16個(gè)字節(jié)的隨機(jī)數(shù),由小到大排序,然后再存放到6264的相應(yīng)字節(jié)中。(由BC7281顯示地址及數(shù)據(jù),前四位地址,最后兩位數(shù)據(jù))原理: 步驟:1,連接PC機(jī)和仿真機(jī)的串口線。2,連接P1.0DAT,P1.1KEY,P1.2CLK。 3,給仿真機(jī)接通電源。 4,打開仿真機(jī)的電源開關(guān),電源燈亮表示仿真機(jī)已經(jīng)帶電。 5,編程。 6,調(diào)試。參考程序:CCQ EQU 2000H;外部數(shù)據(jù)RAM的地址從2000H開始到3FFFH結(jié)

6、束BIT_COUNTDATA06FHTIMERDATA06EHTIMER1DATA06DHTEMPDATA06CHDATA_INDATA02FHDATA_OUTDATA02EHCLKBITP1.2 ;定義I/O口DATBITP1.0 ;KEYBITP1.1 ;ORG 0000HMAIN:LCALL XSFWMOVR0,#30HMOVR1,#10HMOV DPTR,#CCQBACK:MOVX A,DPTRMOVR0,AINCR0INCDPTRDJNZR1,BACKLCALLPAIXUMOVR0,#30HMOVR1,#10HMOV DPTR,#CCQ;外部數(shù)據(jù)RAM的地址從2000H開始到3FFF

7、H結(jié)束BACK1:MOV A,R0MOVXDPTR,AINCR0INCDPTRDJNZR1,BACK1LCALL XSSHJSJMP $PAIXU:MOV R0,#30H;排序子程序MOV R1,#31HMOV 40H,#0FHLOP:MOV 41H,40HLP:MOVA,R0CLRCYSUBB A,R1JC NEXTMOV A,R0XCH A,R1MOV R0,ANEXT:INC R1DJNZ 41H,LPINC R0MOV A,R0INC AMOV R1,ADJNZ 40H,LOPRET;*XSFW:MOV TIMER,#50START_DELAY:MOV TIMER1,#255;延時(shí)以確

8、保BC728X完成復(fù)位START_DELAY1:DJNZ TIMER1,START_DELAY1DJNZ TIMER,START_DELAYMOV DATA_OUT,#12H;BC728X初始化LCALL SENDMOV DATA_OUT,#80H;設(shè)定為164模式, 不反相LCALL SENDRET;*;* 向BC728X發(fā)送一個(gè)字節(jié)子程序,待發(fā)送數(shù)據(jù)存于DATA_OUT;*SEND:CLRCLK;在CLK輸出一脈沖SETBCLKWAIT1:JBDAT,WAIT1;等待DAT變?yōu)榈碗娖紺LRCLK;再輸出一CLK脈沖SETBCLKWAIT2:JNBDAT,WAIT2;等待DAT恢復(fù)高電平(輸

9、入狀態(tài))MOVBIT_COUNT,#8SEND_LOOP:MOVC,DATA_OUT.7;輸出BIT7MOVDAT,CCLRCLK;輸出一CLK脈沖SETBCLK MOVA,DATA_OUT RLA MOVDATA_OUT,A;DATA_OUT左移一位NOP;短暫延時(shí)NOP NOPDJNZBIT_COUNT,SEND_LOOPSETBDAT;恢復(fù)DAT為高電平RET;*;* 從BC728X接收一個(gè)字節(jié)子程序,接收到的數(shù)據(jù)存于DATA_IN;*RECEIVE:CLRCLK;發(fā)出一CLK脈沖SETBCLKWAIT3:JBDAT,WAIT3;等待DAT低電平響應(yīng)信號(hào)CLRCLK;再發(fā)出一CLK脈沖,

10、準(zhǔn)備接收數(shù)據(jù)SETBCLKMOVBIT_COUNT,#8RECV_LOOP:NOP;短暫延時(shí)NOPNOPNOPNOPNOPNOPNOP MOVA,DATA_INMOVC,DAT;讀入一位 RLCAMOVDATA_IN,ACLRCLK;發(fā)出CLK脈沖SETBCLKDJNZBIT_COUNT,RECV_LOOPRETXSSHJ:MOVR0,#30HMOVR1,#10HMOV41H,#00HMOV DPTR,#CCQBACK3:MOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,DPHANLA,#0F0H;取鍵碼的低4位SWAP AADD A,41HMOVDATA_OUT,a

11、;在第0位顯示LCALLSENDMOV A,41HADD A,#10HMOV 41H,AMOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,DPHANLA,#0FH;取鍵碼的低4位ADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDMOV A,41HADD A,#10HMOV 41H,AMOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,DPLANLA,#0F0H;取鍵碼的低4位SWAP AADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDMOV A,41HADD A,#10HMOV 41H,AM

12、OVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,DPLANLA,#0FH;取鍵碼的低4位ADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDMOV A,41HADD A,#30HMOV 41H,AMOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,R0ANLA,#0F0H;取鍵碼的低4位SWAP AADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDMOV A,41HADD A,#10HMOV 41H,AMOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,R0ANLA,#0

13、FH;取鍵碼的低4位ADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDINC R0INC DPTRLCALL YS2MOV41H,#00HDJNZR1,BACK2RETBACK2: LJMP BACK3YS:MOV 60H,#02HYS1:MOV 61H,#33HYS2:MOV62H,#33HYS3:DJNZ 62H,YS3DJNZ 61H,YS2DJNZ 60H,YS1RETEND心得體會(huì):實(shí)驗(yàn)三:外部數(shù)據(jù)存儲(chǔ)器的應(yīng)用(2864)目的:學(xué)會(huì)單片機(jī)和外部程序存儲(chǔ)器的交流,知道比較程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的差異。要求:以2864數(shù)據(jù)存儲(chǔ)器為實(shí)例,按照系統(tǒng)板上的硬件地址對(duì)其

14、進(jìn)行編程,寫出 單片機(jī)與2864的接口地址,讀出2864中連續(xù)16個(gè)字節(jié)的隨機(jī)數(shù),由小到大排序,然后再存放到2864的相應(yīng)字節(jié)中。(由BC7281顯示地址及數(shù)據(jù),前四位地址,最后兩位數(shù)據(jù))原理:步驟:1,連接PC機(jī)和仿真機(jī)的串口線。2,連接P1.0DAT,P1.1KEY,P1.2CLK。 3,給仿真機(jī)接通電源。 4,打開仿真機(jī)的電源開關(guān),電源燈亮表示仿真機(jī)已經(jīng)帶電。 5,編程。 6,調(diào)試。參考程序:CCQ EQU 0000H;外部數(shù)據(jù)RAM的地址從0000H開始到1FFFH結(jié)束BIT_COUNTDATA06FHTIMERDATA06EHTIMER1DATA06DHTEMPDATA06CHDAT

15、A_INDATA02FHDATA_OUTDATA02EHCLKBITP1.2 ;定義I/O口DATBITP1.0 ;KEYBITP1.1 ;ORG 0000HMAIN:LCALL XSFWMOVR0,#30HMOVR1,#10HMOV DPTR,#CCQ;外部數(shù)據(jù)RAM的地址從0000H開始到1FFFH結(jié)束BACK:MOVX A,DPTRMOVR0,AINCR0INCDPTRDJNZR1,BACKLCALLPAIXUMOVR0,#30HMOVR1,#10HMOV DPTR,#0050H;外部數(shù)據(jù)RAM的地址從0000H開始到1FFFH結(jié)束BACK1:MOV A,R0MOVXDPTR,ALCAL

16、L YS4 INCR0INCDPTRDJNZR1,BACK1LCALL XSSHJSJMP $PAIXU:MOV R0,#30H;排序子程序MOV R1,#31HMOV 40H,#0FHLOP:MOV 41H,40HLP:MOVA,R0CLRCYSUBB A,R1JC NEXTMOV A,R0XCH A,R1MOV R0,ANEXT:INC R1DJNZ 41H,LPINC R0MOV A,R0INC AMOV R1,ADJNZ 40H,LOPRETYS4:MOV TMOD,#01H MOV R5,#01H LOOP:MOV TH0,#0CH MOV TL0,#00H SETB TR0 JNB

17、 TF0,$ CLR TF0 CLR TR0 DJNZ R5,LOOP RET ;*XSFW:MOV TIMER,#50START_DELAY:MOV TIMER1,#255;延時(shí)以確保BC728X完成復(fù)位START_DELAY1:DJNZ TIMER1,START_DELAY1DJNZ TIMER,START_DELAYMOV DATA_OUT,#12H;BC728X初始化LCALL SENDMOV DATA_OUT,#80H;設(shè)定為164模式, 不反相LCALL SENDRET;*;* 向BC728X發(fā)送一個(gè)字節(jié)子程序,待發(fā)送數(shù)據(jù)存于DATA_OUT;*SEND:CLRCLK;在CLK輸出

18、一脈沖SETBCLKWAIT1:JBDAT,WAIT1;等待DAT變?yōu)榈碗娖紺LRCLK;再輸出一CLK脈沖SETBCLKWAIT2:JNBDAT,WAIT2;等待DAT恢復(fù)高電平(輸入狀態(tài))MOVBIT_COUNT,#8SEND_LOOP:MOVC,DATA_OUT.7;輸出BIT7MOVDAT,CCLRCLK;輸出一CLK脈沖SETBCLK MOVA,DATA_OUT RLA MOVDATA_OUT,A;DATA_OUT左移一位NOP;短暫延時(shí)NOP NOPDJNZBIT_COUNT,SEND_LOOPSETBDAT;恢復(fù)DAT為高電平RET;*;* 從BC728X接收一個(gè)字節(jié)子程序,接收

19、到的數(shù)據(jù)存于DATA_IN;*RECEIVE:CLRCLK;發(fā)出一CLK脈沖SETBCLKWAIT3:JBDAT,WAIT3;等待DAT低電平響應(yīng)信號(hào)CLRCLK;再發(fā)出一CLK脈沖,準(zhǔn)備接收數(shù)據(jù)SETBCLKMOVBIT_COUNT,#8RECV_LOOP:NOP;短暫延時(shí)NOPNOPNOPNOPNOPNOPNOP MOVA,DATA_INMOVC,DAT;讀入一位 RLCAMOVDATA_IN,ACLRCLK;發(fā)出CLK脈沖SETBCLKDJNZBIT_COUNT,RECV_LOOPRETXSSHJ:MOVR0,#30HMOVR1,#10HMOV41H,#00HMOV DPTR,#CCQB

20、ACK3:MOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,DPHANLA,#0F0H;取鍵碼的低4位SWAP AADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDMOV A,41HADD A,#10HMOV 41H,AMOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,DPHANLA,#0FH;取鍵碼的低4位ADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDMOV A,41HADD A,#10HMOV 41H,AMOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,DP

21、LANLA,#0F0H;取鍵碼的低4位SWAP AADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDMOV A,41HADD A,#10HMOV 41H,AMOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,DPLANLA,#0FH;取鍵碼的低4位ADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDMOV A,41HADD A,#30HMOV 41H,AMOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,R0ANLA,#0F0H;取鍵碼的低4位SWAP AADD A,41HMOVDATA_OUT,

22、a;在第0位顯示LCALLSENDMOV A,41HADD A,#10HMOV 41H,AMOVDATA_OUT,#15H;HEX譯碼指令LCALLSENDMOVA,R0ANLA,#0FH;取鍵碼的低4位ADD A,41HMOVDATA_OUT,a;在第0位顯示LCALLSENDINC R0INC DPTRLCALL YS2MOV41H,#00HDJNZR1,BACK2RETBACK2: LJMP BACK3YS:MOV 60H,#02HYS1:MOV 61H,#33HYS2:MOV62H,#33HYS3:DJNZ 62H,YS3DJNZ 61H,YS2DJNZ 60H,YS1RETEND心得體會(huì):實(shí)驗(yàn)四:鍵盤顯示接口芯片的應(yīng)用目的:學(xué)會(huì)使用鍵盤顯示接口芯片BC7281,了解鍵盤的工作原理,LED數(shù)碼管的顯示方式及工作原理。要求:從鍵盤輸入信息,數(shù)碼管顯示對(duì)應(yīng)按鍵鍵碼。原理:步驟:1,連接PC機(jī)和仿真機(jī)的串口線。2,連接P1.0DAT,P1.1KEY,P1.2CLK。3,給仿真機(jī)接通電源。 4,打開仿真機(jī)的電源開關(guān),電源燈亮表示仿真機(jī)已經(jīng)帶電。5,編程。6,調(diào)試。參考程序:#include /* 函數(shù)定義 *void delay(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論