東南大學(xué)單片機(jī)實驗報告_第1頁
東南大學(xué)單片機(jī)實驗報告_第2頁
東南大學(xué)單片機(jī)實驗報告_第3頁
東南大學(xué)單片機(jī)實驗報告_第4頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本文格式為word版,下載可任意編輯東南大學(xué)單片機(jī)實驗報告 單片機(jī)應(yīng)用系統(tǒng)設(shè)計 試驗報告 姓 名: 學(xué) 號: 院 系: 儀器科學(xué)與工程學(xué)院 專 業(yè): 測控技術(shù)與儀器 實 驗 室: 機(jī)械樓 5 5 樓 同組人員: 評定成果: 批閱老師: 軟件試驗一 數(shù)據(jù)傳送試驗 一、 試驗?zāi)康?1、熟識單片機(jī)仿真開發(fā)器的使用; 2、把握編程方法; 3、把握 8051 內(nèi)部 ram 的數(shù)據(jù)操作 二、 試驗內(nèi)容 內(nèi)部 ram 40h4fh 單元置數(shù) a0hafh,然后將 40h4fh 單元內(nèi)容送到內(nèi)部 ram50h5fh 單元中。 編輯、編譯、運行程序,檢查內(nèi)部 ram 中的結(jié)果。 三、 試驗程序 org 0000

2、h reset: ajmp main org 003fh main: mov r0,#40h mov r2,#10h ;提高時將 10h 改為 20h mov a,#0a0h ;提高時將 0a0h 改為 00h a1: mov r0,a inc r0 inc a djnz r2,a1 mov r0,#40h mov r1,#50h ;提高時將 50h 改為 60h mov r2,#10h ;提高時將 10h 改為 20h a2: mov a,r0 mov r1,a inc r0 inc r1 djnz r2,a2 a3: sjmp a3 四、 試驗結(jié)果 試驗顯示 ram 的 40h4fh 以及

3、 50h5fh 的內(nèi)容都為 a0hafh。 五、 試驗提高 修改程序:將所置的數(shù)改為 00h1fh,置數(shù)單元和傳送單元分別改為內(nèi)部 ram 的 40h5fh、60h7fh。 思索:見試驗程序解釋部分。 軟件試驗二 多字節(jié)十進(jìn)制加法試驗 一、 試驗?zāi)康?把握 mcs-51 匯編語言程序設(shè)計方法 二、試驗內(nèi)容 多字節(jié)十進(jìn)制加法; 加數(shù)存儲單元首地址由 r0 指出,被加數(shù)和結(jié)果的存儲單元首地址由 r1 指出,字節(jié)數(shù)由 r2 指出; 編輯、編譯、運行程序,檢查內(nèi)部 ram 中的結(jié)果。 三、試驗程序 加數(shù)存儲單元為:31h、30h,被加數(shù)存儲單元為:21h、20h,結(jié)果存儲單元為:22h、21h、20h

4、。 - org 0000h reset: ajmp main org 0100h main: mov sp,#60h mov r0,#31h mov r0,#22h ;提高時將加數(shù)高位 22h 改為自定義的數(shù)的高位(如 45h) dec r0 mov r0,#33h ;提高時將加數(shù)低位 33h 改為自定義的數(shù)的低位(如 34h) mov r1,#21h mov r1,#44h ;提高時作為被加數(shù)的高位被修改(如改為35h) dec r1 mov r1,#55h ;提高時作為被加數(shù)的低位被修改(如改為56h) mov r2,#02h acall dace here: sjmp here dace

5、: clr c dal: mov a,r0 addc a,r1 da a mov r1,a inc r0 inc r1 djnz r2,dal clr a mov acc.0,c mov r1,a ret 四、試驗結(jié)果 被加數(shù)單元地址 (21h)(20h) 加數(shù)單元地址 (31h)(30h) +) 結(jié)果單元地址 (22h)(21h)(20h) 被加數(shù)數(shù)值 35h 56h 加數(shù)數(shù)值 22h 33h +) 結(jié)果數(shù)值 00h 66h 88h 五、試驗提高 修改加數(shù)和被加數(shù)(十進(jìn)制數(shù)),重復(fù)運行程序。 思索:見程序解釋部分,改過之后結(jié)果如下: 被加數(shù)數(shù)值 44h 55h 加數(shù)數(shù)值 45h 34h +)

6、 結(jié)果數(shù)值 00h 89h 89h 軟件試驗三 十進(jìn)制數(shù)排序試驗 一、試驗?zāi)康?把握十進(jìn)制數(shù)的排序方法 二、試驗內(nèi)容 本程序用的是"冒泡排序'法,是將一個數(shù)與后面的數(shù)相比較,假如比后面的數(shù)大,則交換,如此將全部的數(shù)比較一遍后,最大的數(shù)就會在數(shù)列的最終面。再進(jìn)行下一輪比較,找出其次大數(shù)據(jù),直到全部數(shù)據(jù)有序,即從小到大排序。 三、試驗流程圖 四、試驗程序 size equ 10 array equ 40h change equ 0 sort: mov r0,#array mov r7,#size-1 clr change goon: mov a,r0 mov r2,a inc r

7、0 mov b,r0 cjne a,b,notequal sjmp next notequal: jc next ;提高時將"jc' 改為"jnc' setb change xch a,r0 dec r0 xch a,r0 inc r0 next: djnz r7,goon jb change,sort ljmp $ end 五、試驗結(jié)果 試驗時,運行程序前手動更改 ram 50h59h 的內(nèi)容為任意 10 個無序的數(shù),如 00h,89h,f6h,6ah,04h,c0h,bah,34h,25h,ffh。運行程序后可以看到 50h59h 的內(nèi)容變?yōu)?0h,04

8、h,25h,34h,6ah,89h,bah,c0h,f6h,ffh 即按升序排列的 10 個數(shù)。 六、試驗提高 修改程序,根據(jù)從小到大的挨次排列。 思索:只要將 notequal 子程序中的 jc 改為 jnc 即可實現(xiàn)。運行后的數(shù)據(jù)將根據(jù)從大到小排列。 硬件試驗一 o i/o 口輸入/ / 輸出及掌握試驗 、o i/o 口輸入/ / 輸出 試驗 一、試驗?zāi)康?1、學(xué)習(xí)單片機(jī) i/o 口的使用方法; 2、學(xué)習(xí)延時子程序的編寫和使用。 二、試驗內(nèi)容 1、i/o 口輸出:p1 口做輸出口,接八只發(fā)光二極管,編寫程序讓發(fā)光二極管循環(huán)點亮。 2、i/o 口輸入/輸出:p1.0、p1.1 做輸入口接兩個

9、撥動開關(guān);p1.2、p1.3 做輸出口,接兩個發(fā)光二極管。編寫程序讀取開關(guān)狀態(tài),將此狀態(tài)在發(fā)光二極管上顯示出來。編程時應(yīng)留意 p1.0、p1.1 作為輸入口時應(yīng)先置 1,才能正確讀入值。 三、試驗步驟 1、i/o 口輸出硬件連接 連線 連接孔 1 連接孔2 1 p1.0 l0 2 p1.1 l1 3 p1.2 l2 4 p1.3 l3 5 p1.4 l4 6 p1.5 l5 7 p1.6 l6 8 p1.7 l7 mcs51 的 p1 口循環(huán)點燈 2、i/o 口輸入/輸出硬件連接 連線 連接孔 1 連接孔 2 1 k4 p1.0 2 k5 p1.1 3 p1.2 l4 4 p1.3 l5 mc

10、s51 的 p1 口輸入/輸出 3、試驗說明 (1)對于 mcs51,p1 口是準(zhǔn)雙向口。它作為輸出口時與一般的雙向口使用方法想同;但準(zhǔn)雙向口用作輸入口時,因其結(jié)構(gòu)特點必需對它置"1',否則讀入的數(shù)據(jù)簡單產(chǎn)生錯誤。 (2)8051 延時子程序的延時計算問題,對于程序 delay: mov r6, #0h mov r7, #0h delayloop: djnz r6, delayloop djnz r7, delayloop ret 查指令表可知 mov 和 djnz 指令均需兩個指令周期,在 12mhz 晶振時,一個機(jī)器周期時間為:12/12mhz = 1ms,該延時子程序延

11、時:(256x256+2)x2x12/12=130ms。 4、分別連接硬件并執(zhí)行相關(guān)程序,記錄結(jié)果。 四、試驗流程圖 五、試驗程序 1、i/o 口輸出(p1 口循環(huán)點燈) loop: mov a,#01h ;提高時將 01h 改為 55h mov r2,#8 output: mov p1,a rl a call delay djnz r2,output ljmp loop delay: mov r6,#0 mov r7,#0 delayloop: djnz r6,delayloop djnz r7,delayloop ret end 2、i/o 口輸入/輸出(p1 口輸入/輸出) keylef

12、t equ p1.0 keyright equ p1.1 ledleft equ p1.2 ledright equ p1.3 setb keyleft setb keyright loop: mov c,keyleft mov ledleft,c mov c,keyright mov ledright,c ljmp loop end 六、試驗結(jié)果 i/o 口輸出試驗,運行程序后可以看到 led 從右向左循環(huán)點亮; i/o 口輸入/輸出試驗,運行程序并置 1 后,撥動某一個開關(guān)后會看到對應(yīng)的 led 發(fā)光。 七、試驗提高 修改 i/o 口輸出程序,改成先 1,3,5,7 燈亮,再 2,4,6,

13、8 燈亮。 思索:只要將程序第一行的 01h 改為 55h 即可。 、 繼電器掌握試驗 一、試驗?zāi)康?1、學(xué)習(xí) i/o 端口的使用方法; 2、把握繼電器掌握的基本方法; 3、了解用弱電掌握強(qiáng)電的方法。 二、試驗內(nèi)容 用單片機(jī)端口,輸出電平掌握繼電器的吸合和斷開,實現(xiàn)對外部裝置的掌握。 三、試驗步驟 1、硬件連線 連線 連接孔1 連接孔 2 1 p1.0 繼電器輸入 2 5v 繼電器常閉輸入 3 l0 繼電器中間輸入 2、試驗說明 現(xiàn)代自動掌握設(shè)備中,都存在一個電子電路與電氣電路的相互連接問題,一方面要使電子電路的掌握信號能夠掌握電氣電路的執(zhí)行元件(如電動機(jī)、電磁鐵、電燈等),另一方面又要為電子

14、電路與電氣電路供應(yīng)良好的電氣隔離,以愛護(hù)電子電路和人身的平安。繼電器便能完成這一作用。 本試驗采納的繼電器其掌握電壓是 5v,掌握端為高電平常,繼電器工作常開觸點吸合,連接觸點的 led 燈被點亮。當(dāng)掌握端為低電平常,繼電器不工作,led 燈滅。 3、分析并執(zhí)行程序 四、試驗流程圖 五、試驗程序 output equ p1.0 ; p1.0 port loop: clr c mov output, c call delay setb c mov output, c call delay ljmp loop delay: ;提高時為了修改延時時間,只要更改 2 個 0 即可。 mov r6, #

15、0 mov r7, #0 dloop: djnz r7, dloop djnz r6, dloop ret end 六、試驗結(jié)果 運行程序后可以看到 led 燈呈亮、滅、亮、滅的循環(huán)。 七、試驗提高 1、修改程序,轉(zhuǎn)變繼電器吸合的時間間隔; 思索:更改 delay 子程序中的兩個馬上數(shù)即可。 2、查詢資料,了解其他弱電掌握強(qiáng)電的方法。 思索:固體繼電器、可控硅、光電耦合可控硅等等。 硬件試驗二 數(shù)據(jù)輸入/ / 輸出口擴(kuò)展試驗 、 用 用 74hc5 245 讀入數(shù)據(jù) 一、試驗?zāi)康?1、了解 cpu 數(shù)據(jù)總線的使用; 2、把握利用 74hc245 數(shù)據(jù)輸入/輸出的方法。 二、試驗內(nèi)容 利用試驗箱

16、上的 74hc245 輸入電路,用總線方式讀入開關(guān)狀態(tài)。 三、試驗步驟 1、硬件連接 連線 連接孔 1 連接孔 2 1 k0 245-i0 2 k1 245-i1 3 k2 245-i2 4 k3 245-i3 5 k4 245-i4 6 k5 245-i5 7 k6 245-i6 8 k7 245-i7 9 cs0 cs245 2、試驗說明 一般狀況下,cpu 的總線會掛有許多器件,如何使這些器件不造成沖突,這就要使用一些總線隔離器件,例如 74hc245 就是一種。74hc245 是三態(tài)總線收發(fā)器,利用它既可以輸出也可以輸入數(shù)據(jù)。 本試驗 74hc245 的片選地址為 cs0,即 8000

17、h,讀這個地址,就是從 74hc245 讀回開關(guān)的值??梢杂脝尾降姆绞綀?zhí)行程序,轉(zhuǎn)變開關(guān)狀態(tài),觀看讀回的值。 3、分析并執(zhí)行程序,觀看并記錄試驗結(jié)果。 四、程序流程圖 五、試驗程序 cs245 equ 8000h org 0000h loop: mov dptr,#cs245 mo a,dptr ljmp loop end 六、試驗結(jié)果 程序執(zhí)行后,撥動八位開關(guān),開為 1,閉為 0,開關(guān)狀態(tài)表示 8 位二進(jìn)制數(shù),相應(yīng)的寄存器顯示對應(yīng)的結(jié)果。 七、試驗提高 連接撥動開關(guān),利用發(fā)光二極管顯示撥動開關(guān)的狀態(tài)。假如利用74hc245 輸出,如何設(shè)計電路? 思索:將二極管與開關(guān)一一對應(yīng)相連即可。其中開關(guān)

18、連接 74hc245的輸入端,led 連接 74hc245 的輸出端。 、 7 73 4hc273 擴(kuò)展數(shù)據(jù)輸出 一、試驗?zāi)康?1、學(xué)習(xí)在單片機(jī)系統(tǒng)中擴(kuò)展簡潔 i/o 接口的方法; 2、學(xué)習(xí)數(shù)據(jù)輸出程序的設(shè)計方法; 3、了解數(shù)據(jù)鎖存的概念和方法。 二、試驗內(nèi)容 利用試驗箱上的 273 輸出電路,從總線上輸出 i/o 口信號,掌握八個 led 燈。 三、試驗步驟 1、硬件連接 連線 連接孔 1 連接孔 2 1 l0 273-i0 2 l1 273-i1 3 l2 273-i2 4 l3 273-i3 5 l4 273-i4 6 l5 273-i5 7 l6 273-i6 8 l7 273-i7

19、9 cs0 cs273 2、試驗說明 本試驗用 74hc273 擴(kuò)展 i/o 端口。方法是:通過片選信號和寫信號將數(shù)據(jù)總線上的值鎖存在 273 中,同時在 273 的輸出端口輸出。 當(dāng)數(shù)據(jù)總線上的值撤銷后,由于 273 能夠鎖存信號,所以 273 的輸出端保持不變,直到下次有新的數(shù)據(jù)被鎖存。 本試驗中,在數(shù)據(jù)輸出同時輸出片選信號和寫信號。 3、分析并執(zhí)行程序,觀看并記錄結(jié)果。 四、試驗流程圖 五、試驗程序 cs273 equ 8000h mov dptr,#cs273 mov a,#1 loop: mo dptr,a mov r6,#0ffh mov r7,#0ffh delayloop: d

20、jnz r6,delayloop djnz r7,delayloop nop rl a ;提高時將 rl 改為rr ljmp loop delay: end cs273 equ 8000h mov dptr, #cs273 mov a, #1 loop: mo dptr,a rl a ;提高時將rl改為rr nop ljmp loop end 六、試驗結(jié)果 執(zhí)行程序后可以看到 led 燈從右向左循環(huán)點亮。 七、試驗提高 增加延時程序,讓 led 燈由左向右循環(huán)點亮。 思索:見程序解釋。 硬件試驗四 顯示器/ / 鍵盤試驗 、 八段數(shù)碼管顯示試驗 一、試驗?zāi)康?1、了解數(shù)碼管動態(tài)顯示的原理; 2

21、、了解用總線方式掌握數(shù)碼管顯示。 二、試驗內(nèi)容 利用試驗儀供應(yīng)的顯示電路,動態(tài)顯示一行數(shù)據(jù)。 三、試驗步驟 1、硬件連接 連線 連接孔 1 連接孔 2 1 key/led_cs cs0 2、試驗說明 留意:當(dāng)用總線方式驅(qū)動八段顯示管時,請將八段的驅(qū)動方式選擇開關(guān)撥到" 內(nèi)驅(qū)'位置;當(dāng)用 i/o 方式驅(qū)動八段顯示管時,請將開關(guān)撥到" 外驅(qū)'位置。 本試驗儀供應(yīng)了 6 位 8 段碼 led 顯示電路,同學(xué)只要按地址輸出相應(yīng)數(shù)據(jù),就可以實現(xiàn)對顯示器的掌握。顯示共有 6 位,用動態(tài)方式顯示。8 位段碼、6 位位碼是由兩片 74ls374 輸出。位碼經(jīng) mc1413

22、或uln2021 倒相驅(qū)動后,選擇相應(yīng)顯示位。 本試驗儀中 8 位段碼輸出地址為 0x004h,位碼輸出地址為 0x002h。此處 x 是由 key/led cs 打算,參見地址譯碼。做鍵盤和 led試驗時,需將 key/led cs 接到相應(yīng)的地址譯碼上。以便用相應(yīng)的地址來訪問。例如,將 key/led cs 接到 cs0 上,則段碼地址為 08004h,位碼地址為 08002h。 七段數(shù)碼管的字型代碼表如下表: 顯 示 字形 g f e d c b a 段碼 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 5bh 3 1 0

23、0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh a 1 1 1 0 1 1 1 77h b 1 1 1 1 1 0 0 7ch c 0 1 1 1 0 0 1 39h d 1 0 1 1 1 1 0 5eh e 1 1 1 1 0 0 1 79h f 1 1 1 0 0 0 1 71h 3、分析并執(zhí)行程序,觀看并記錄結(jié)果。 四、試驗流程圖 五、試驗程序 outbit equ 0

24、8002h outseg equ 08004h in equ 08001h ledbuf equ 60h num equ 70h delayt equ 75h ljmp start ledmap: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h db 7fh,6fh,77h,7ch,39h,5eh,79h,71h delay: mov r7,#0 delayloop: djnz r7,delayloop djnz r6, delayloop ret displayled: mov r0,#ledbuf mov r1, #6 mov r2, #00100000b loop:

25、 mov dptr,#outbit mov a,#0 mo dptr,a mov a,r0 mov dptr,#outseg mo dptr,a mov dptr,#outbit mov a,r2 mo dptr,a mov r6,#05 call delay mov a,r2 rr a mov r2,a inc r0 djnz r1,loop mov dptr,#outbit mov a,#0 mo dptr,a ret start: mov sp,#40h mov num, #0 mloop: inc num mov a,num mov b,a mov r0,#ledbuf fillbuf

26、: mov a,b anl a,#0fh mov dptr,#ledmap movc a,a+dptr mov r0,a inc r0 inc b cjne r0,#ledbuf+6,fillbuf mov delayt,#30 dispagain: call displayled djnz delayt,dispagain ljmp mloop end 六、試驗結(jié)果 數(shù)碼管動態(tài)地 012345、123456、234567、f012345、0123456、不斷循環(huán)顯示。 七、試驗提高 修改程序,顯示 1、2、3、4、5、6 或 a、b、c、d、e、f。 思索:為了顯示 16,將 start 其

27、次行的 0 改為 1 且去掉 mloop語句;顯示 af 時,將 1 改為 10。 、 鍵盤掃描顯示實 驗 一、試驗?zāi)康?1、把握鍵盤和顯示器的接口方法和編程方法。 2、把握鍵盤掃描和 led 八段碼顯示器的工作原理。 二、試驗內(nèi)容 在上一個試驗的基礎(chǔ)上,利用試驗儀供應(yīng)的鍵盤掃描電路和顯示電路,做一個掃描鍵盤和數(shù)碼顯示試驗,把按鍵輸入的鍵碼在六位數(shù)碼管上顯示出來。 試驗程序可分成三個模塊。 鍵輸入模塊:掃描鍵盤、讀取一次鍵盤并將鍵值存入鍵值緩沖單元。 顯示模塊:將顯示單元的內(nèi)容在顯示器上動態(tài)顯示。 主程序:調(diào)用鍵輸入模塊和顯示模塊。 三、試驗步驟 1、硬件連接 連線 連接孔 1 連接孔2 1

28、key/led_cs cs0 2、試驗說明 本試驗儀供應(yīng)了一個 64 的小鍵盤,向列掃描碼地址(0x002h)逐列輸出低電平,然后從行碼地址(0x001h)讀回。假如有鍵按下,則相應(yīng)行的值應(yīng)為低,假如無鍵按下,由于上拉的作用,相應(yīng)行碼為高。 在推斷有鍵按下后,要有肯定的延時,防止鍵盤抖動。再通過輸出的列碼和讀取的行碼來推斷按下的是什么鍵。 地址中的 x 是由 key/led cs 打算,參見地址譯碼。做鍵盤和 led試驗時,需將 key/led cs 接到相應(yīng)的地址譯碼上。以便用相應(yīng)的地址來訪問。 例如將 key/led cs 信號接 cs0 上,則列掃描地址為 08002h,行碼地址為 08

29、001h。列掃描碼還可以分時用作 led 的位選通信號(參見鍵盤顯示電路)。 3、分析并執(zhí)行程序,觀看并記錄結(jié)果。 四、試驗流程圖 數(shù)據(jù)總線 讀回行碼 (0x001h) 列碼 (0x002h) 顯示程序框圖見前個試驗 五、試驗程序 outbit equ 08002h outseg equ 08004h in equ 08001h ledbuf equ 60h ljmp start ledmap: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h db 7fh,6fh,77h,7ch,39h,5eh,79h,71h delay: mov r7,#0 delayloop: dj

30、nz r7,delayloop djnz r6, delayloop ret displayled: mov r0,#ledbuf mov r1, #6 mov r2, #00100000b loop: mov dptr,#outbit mov a,#0 mo dptr,a mov a,r0 mov dptr,#outseg mo dptr,a mov dptr,#outbit mov a,r2 mo dptr,a mov r6,#1 call delay mov a,r2 rr a mov r2,a inc r0 djnz r1,loop ret testkey: mov dptr,#out

31、bit mov a,#0 mo dptr,a mov dptr,#in mo a,dptr cpl a anl a,#0fh ret keytable: db 16h,15h,14h,0ffh db 13h,12h,11h,10h db 0dh,0ch,0bh,0ah db 0eh,03h,06h,09h db 0fh,02h,05h,08h db 00h,01h,04h,07h getkey: mov dptr,#outbit mov p2,dph mov r0,#low(in) mov r1,#00100000b mov r2,#6 kloop: mov a,r1 cpl a mo dpt

32、r,a cpl a rr a mov r1,a mo a,r0 cpl a anl a,#0fh jnz goon1 djnz r2,kloop mov r2,#0ffh sjmp exit goon1: mov r1,a mov a,r2 dec a rl a rl a mov r2,a mov a,r1 mov r1,#4 loopc: rrc a jc exit inc r2 djnz r1,loopc exit: mov a,r2 mov dptr,#keytable movc a,a+dptr mov r2,a waitrelease: mov dptr,#outbit clr a

33、mo dptr,a mov r6,#10 call delay call testkey jnz waitrelease mov a,r2 ret start: mov sp,#40h mov ledbuf+0,#0 mov ledbuf+1,#0 mov ledbuf+2,#0 mov ledbuf+3,#0 mov ledbuf+4,#0 mov ledbuf+5,#0 mloop: call displayled call testkey jz mloop call getkey anl a,#0fh mov dptr,#ledmap movc a,a+dptr mov ledbuf+5

34、,a ljmp mloop end 六、試驗結(jié)果 鍵盤按下一個鍵后,數(shù)碼管就顯示相應(yīng)的鍵值。 七、試驗提高 1、修改程序,使鍵值在數(shù)碼管上從右向左移動顯示。 2、設(shè)計程序 ,每按一次鍵,數(shù)碼管顯示加 1,實現(xiàn) 099 的自加。 3、查詢資料,舉出其他形式的鍵盤、顯示器軟硬件設(shè)計方法。分析其優(yōu)缺點。 思索:無 硬件試驗五 串行口試驗 、 串行數(shù)據(jù)轉(zhuǎn)換并行數(shù)據(jù)試驗 一、試驗?zāi)康?1、把握 mcs51/mcs96 串行口方式 0 工作方式及編程方法; 2、把握用 mcs51/mcs96 的 p1 口的 i/o 功能,輸出串行數(shù)據(jù); 3、把握利用串行口入 i/o 口,擴(kuò)展 i/o 通道的方法。 二、試

35、驗內(nèi)容 利用單片機(jī)的串行口和 i/o 端口串行輸出,利用板上的 74hc164串轉(zhuǎn)并電路,移位轉(zhuǎn)換成并行數(shù)據(jù),接在 led 燈上顯示。 三、試驗步驟 1、硬件連接 連線 連接孔1 連接孔2 1 l0 164-q0 2 l1 164-q1 3 l2 164-q2 4 l3 164-q3 5 l4 164-q4 6 l5 164-q5 7 l6 164-q6 8 l7 164-q7 9 rxd(p3.0) 164-ab 11 txd(p3.1) 164-clk 2、試驗說明 串行口工作在方式 0 時,可通過外接移位寄存器實現(xiàn)串并行轉(zhuǎn)換。在這種方式下,數(shù)據(jù)為 8 位,只能從 rxd 端輸入輸出,tx

36、d 端總是輸出移位同步時鐘信號,其波特率固定為 fosc/12。 3、分析并執(zhí)行程序,觀看記錄結(jié)果。 四、試驗流程圖 五、試驗程序 串口 0 方式: mov scon,#0 mov a,#0aah mov sbuf,a jnb t1,$ clr t1 ljmp $ end i/o 口方式 dat equ p1.0 clk equ p1.1 mov a,#55h setb clk mov r7,#8 next: rrc a mov dat,c clr clk setb clk djnz r7,next ljmp $ end 串口方式0讀入 六、試驗結(jié)果 led 燈的 l0,l2,l4,l6 亮,

37、l1,l3,l5,l7 滅。 七、試驗提高 將串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),驅(qū)動八段 led 顯示器,即利用串行口擴(kuò)展 led 顯示器,畫出線路圖并說明工作過程。 思索:無 、 并行數(shù)據(jù)轉(zhuǎn)換串行數(shù)據(jù)試驗 一、試驗?zāi)康?把握并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)的方法。 二、試驗內(nèi)容 利用板上的 74hc165 并轉(zhuǎn)串電路,讀入外部的并行數(shù)據(jù),移位轉(zhuǎn)換成串行數(shù),利用單片機(jī)串行口和 p1 口串行讀入。 三、試驗步驟 1、硬件連接 連線 連接孔 1 連接孔2 1 k0 165-p0 2 k1 165-p1 3 k2 165-p2 4 k3 165-p3 5 k4 165-p4 6 k5 165-p5 7 k6 165-p

38、6 8 k7 165-p7 9 p1.1 165-q7 10 p1.2 165-cl k 11 p1.0 165-load 2、試驗說明 串行口工作在方式 0 時,可通過外接移位寄存器實現(xiàn)串并行轉(zhuǎn)換。 在這種方式下,數(shù)據(jù)為 8 位,只能從 rxd 端輸入輸出,txd 端總是輸出移位同步時鐘信號,其波特率固定為晶振頻率 fosc/12。 利用 p1.0 掌握 74hc165 護(hù)具輸入/鎖存。 3、分析并執(zhí)行程序,觀看記錄結(jié)果。 四、試驗流程圖 五、試驗程序 串行口方式: ld equ p1.0 clr ld setb ld mov scon,#00010000b wait: jnb ri,wai

39、t mov a,sbuf clr ri ljmp $ end i/o 口方式 ld equ p1.0 dat equ p1.1 clk equ p1.2 setb clk clr ld setb ld mov r7,#8 next: rr a mov c,dat 串 口方式 0 讀入 mov acc.7,c clr clk setb clk djnz r7,next ljmp $ end 六、試驗結(jié)果 通過轉(zhuǎn)變開關(guān)的開閉狀況使累加器輸出此時的開關(guān)值。例如當(dāng)開關(guān)的輸入為 10011001b 時,可以看到累加器 a 的值為 1 、 串行口通訊試驗 一、試驗?zāi)康?1、把握單片機(jī)串行口工作方式的程序設(shè)計方法; 2、了解實現(xiàn)串行通訊的硬環(huán)境、數(shù)據(jù)格式的協(xié)議、數(shù)據(jù)交換的協(xié)議。 二、試驗內(nèi)容 利用單片機(jī)串行口,實現(xiàn)兩個試驗臺之間的串行通訊。其中一個試驗臺作為發(fā)送方,另一側(cè)為接收方。 發(fā)送方讀入按鍵值,并發(fā)送給接收方,接收方收到數(shù)據(jù)后在 led上顯示。 三、

溫馨提示

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

評論

0/150

提交評論