版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗一 WAVE 軟件的使用及簡單編程、實驗?zāi)康?、學(xué)習(xí) WAVE軟件進(jìn)行單片機(jī)仿真調(diào)試。2、學(xué)習(xí)簡單匯編編程。WAVE軟件環(huán)境二、實驗設(shè)備EL-MUT-III 型單片機(jī)實驗箱、 8051CPU模塊、 PC機(jī)、三、實驗內(nèi)容1、Wave 軟件環(huán)境的熟悉與操作2、在 wave 軟件環(huán)境下編寫并調(diào)試簡單匯編程序四、實驗原理23456五、實驗步驟1、學(xué)習(xí) WAVE軟件的使用方法。2、調(diào)試匯編指令(五類各調(diào)試一個) 。3、將單片機(jī)內(nèi)部 RAM區(qū) 50H, 51H的內(nèi)容相加,結(jié)果存放在 52H單元中。4、將外部 RAM 區(qū)的 0010H,0011H 的低 4 位取出,拼成一個字節(jié)數(shù)據(jù)存入外部RAM 區(qū)的
2、0012H。六、實驗報告要求1、寫出實驗?zāi)康摹嶒炘O(shè)備、實驗內(nèi)容,分析實驗原理,總結(jié)實驗步驟。2、將實驗源程序以附頁的方式粘在報告上,并加上注釋。3、對實驗思考題加以分析,按照要求做出回答。七、實驗思考題1、概括匯編程序的基本格式。72、描述匯編程序的編譯過程。2、實驗總結(jié)(實驗調(diào)試過程中的問題和調(diào)試體會)實驗二 分支和循環(huán)程序設(shè)計一、實驗?zāi)康?、學(xué)習(xí) WAVE軟件進(jìn)行單片機(jī)仿真調(diào)試。2、學(xué)習(xí)分支和循環(huán)結(jié)構(gòu)匯編編程。二、實驗設(shè)備EL-MUT-III 型單片機(jī)實驗箱、 8051CPU模塊、 PC機(jī)、 WAVE軟件環(huán)境三、實驗內(nèi)容1、Wave 軟件環(huán)境的熟悉與操作2、在 wave 軟件環(huán)境下編寫并
3、調(diào)試分支和循環(huán)結(jié)構(gòu)的匯編程序四、實驗原理匯編語言源程序設(shè)計通常采用結(jié)構(gòu)化設(shè)計方法,任何復(fù)雜的程序都可分解為:a. 順序結(jié)構(gòu)部分b. 分支結(jié)構(gòu)部分c. 循環(huán)結(jié)構(gòu)部分d. 子程序部分1. 順序結(jié)構(gòu) :最簡單的程序結(jié)構(gòu),其特點:程序中的語句由前向后順序執(zhí)行,直到最后,這種程序中 無分支、循環(huán)和子程序調(diào)用。2. 分支結(jié)構(gòu) :通過條件轉(zhuǎn)移指令實現(xiàn)的, 根據(jù)程序執(zhí)行中的條件對程序進(jìn)行判斷, 滿足條件則進(jìn)行程 序轉(zhuǎn)移,不滿足條件就順序執(zhí)行。分支程序分為單分支和多分支結(jié)構(gòu)3. 循環(huán)結(jié)構(gòu) :程序設(shè)計中, 經(jīng)常需要連續(xù)重復(fù)執(zhí)行某段程序, 解決這種問題最好采用循環(huán)結(jié)構(gòu)的程序 來完成,這種設(shè)計方法可大大地簡化程序。循
4、環(huán)程序一般如下四部分組成:置循環(huán)初值用來設(shè)置循環(huán)初值,如:預(yù)置變量,計數(shù)器數(shù)據(jù)指針初值等,為循環(huán)作準(zhǔn)備。 循環(huán)體 循環(huán)體指要求重復(fù)執(zhí)行的程序段,通過它完成對數(shù)據(jù)進(jìn)行實際處理的任務(wù)。 修改控制變量一般用一個工作寄存器 Rn 作為對循環(huán)次數(shù)的計數(shù),每循環(huán)一次計數(shù)器減一,即修改循環(huán)控制變量。 循環(huán)控制部分 控制循環(huán)次數(shù),當(dāng)循環(huán)一定的次數(shù)后當(dāng)滿足循環(huán)結(jié)束條件時,停止循環(huán)。4. 子程序結(jié)構(gòu) : 按功能分為中斷子程序和功能子程序。 調(diào)用子程序時要注意:(1) 中斷子程序調(diào)用由單片機(jī)自身產(chǎn)生, 執(zhí)行 RETI 指令返回; 功能子程序調(diào)用由主程序執(zhí)行 LCALL 或 ACALL指令產(chǎn)生,執(zhí)行 RET指令返回。
5、(2) 在子程序中,應(yīng)包含有現(xiàn)場保護(hù)和現(xiàn)場恢復(fù)兩部分。(3) 主程序和子程序約定好交換數(shù)據(jù)的地址單元或存儲器,其為主、子程序共有部分。(4) 子程序可以對另外的子程序調(diào)用,稱為子程序嵌套。五、實驗步驟1、學(xué)習(xí) WAVE軟件的使用方法。2、調(diào)試:設(shè)變量 X存于內(nèi)部 RAM 20H單元,函數(shù)值 Y存于 21H單元,試按照下式要求對 Y賦值。 Y=X+3 X0 ; Y=20 X=0 ; Y= X X03、調(diào)試:內(nèi)部 RAM 40H與 41H單元中有兩個無符號數(shù),現(xiàn)將其大者存入40H中,小者存入 41H中。4、調(diào)試: P10、P11口控制紅色 LED和綠色 LED交替 1 秒亮滅 (1 亮 0滅)。六
6、、實驗報告要求1、寫出實驗?zāi)康?、實驗設(shè)備、實驗內(nèi)容,分析實驗原理,總結(jié)實驗步驟。2、將實驗源程序以附頁的方式粘在報告上,并加上注釋。3、對實驗思考題加以分析,按照要求做出回答。七、實驗思考題1、畫出步驟 2 的流程框圖。2、計算:步驟 4 延時 1 秒的時間。3、實驗總結(jié)(實驗調(diào)試過程中的問題和調(diào)試體會)10實驗三 I/O 口擴(kuò)展實驗 、實驗?zāi)康?、學(xué)習(xí) P1 口既做輸入又做輸出的使用方法。2、學(xué)習(xí) I/O 口數(shù)據(jù)輸入、輸出程序的 C51 編程方法。、實驗設(shè)備EL-MUT-III 型單片機(jī)實驗箱、 8051CPU模塊、 PC機(jī)、實驗內(nèi)容1、P10、 P11 口作為輸入口,輸入開關(guān)的狀態(tài)。2、P
7、12、P13、P14、P15 口作為輸出口,輸出四個 LED 的亮滅狀態(tài)。3、C51 編程實驗開關(guān)量輸入,并控制 LED 亮滅。四、實驗原理1.I/O 口MCS-51系列單片機(jī)共有 4 個 I/O 口,分別是 P0、P1、P2、 P3,此四個接口都可以單獨的做輸入或輸 出使用。實際應(yīng)用中, P0口用于輸出外部數(shù)據(jù)存儲器的低8位,并分時復(fù)用作為與外部連接的數(shù)據(jù)總線口;P2口用于輸出高 8 位地址; P3口常操作于定義的第二功能; P1 口一般為留給用戶使用的基本 I/O 口。在單片機(jī) C 語言中,對于端口(位)的使用可以使用 sbit 來定義,如:sbit P10=P10/ 定義變量 P10 指
8、向 P1端口的第 0 位在程序中就可以使用 P10變量來訪問 P1口的第 0 位。對于 P0口、 P2口,一般在訪問外部數(shù)據(jù)空間時使用,在單片機(jī)C語言中的使用方法可以看下例:#include #include #define INPORT XBYTE0XCFA8/ 定義變量 INPORT指向外部空間 0XCFA8#define OUTPORT XBYTE0XCFB0/ 定義變量 OUTPORT指向外部空間 0XCFB0 void main(void)11OUTPORT=INPORT;該例實現(xiàn)了將外部空間 0xCFA8的數(shù)據(jù)轉(zhuǎn)存入外部空間 0xCFB0的功能, 注意的是, 在單片機(jī) C語言中,
9、對于外部空間的使用,需要用 XBYTE關(guān)鍵字來定義,而且程序要包含 absacc.h 這一函數(shù)庫。本實驗利用單片機(jī) P1 口擴(kuò)展,實現(xiàn)由單片機(jī) I/O 口讀取開關(guān)量狀態(tài),同時將狀態(tài)數(shù)據(jù)由單片機(jī) I/O 口輸出到 LED顯示。其中兩個開關(guān)的不同組合,對應(yīng)不同LED顯示狀態(tài)。本實驗程序為減少總線口讀寫的頻繁程度,需要增加一段延時程序,不會影響顯示的穩(wěn)定。單片機(jī) C 語言中延時的方法可以采用: for 循環(huán)、定時器定時。2、仿真調(diào)試單片機(jī) C語言的實驗將以 EL-MUT-III 型單片機(jī)實驗箱為硬件調(diào)試平臺, 以 EL 型教學(xué)實驗環(huán)境軟件為 調(diào)試工具,實現(xiàn)本課程所有實驗的仿真、調(diào)試任務(wù)。首先打開實驗
10、臺的電源,打開 PC 機(jī)進(jìn)入桌面。然后 點擊桌面快捷圖標(biāo) MCS51,以默認(rèn)的通信方式點擊確定。在點擊 確定 按鈕的同時,立即打開實驗臺左上方的 POWER SWITC開H 關(guān),此時,調(diào)試軟件能夠正確地進(jìn)入調(diào)試環(huán)境,如圖1 所示。圖 1 新建 C51 文件如圖 1所示點擊: 文件 新建 C51 文件,建立新 C51文件,即可進(jìn)入編輯環(huán)境,編輯C51語言代碼,如圖 2 所示。圖 2 編輯源代碼編輯完成代碼后,可點擊: 文件 保存 ,并選擇保存路徑和設(shè)定文件名,就可實現(xiàn)文件的保存。注意12的是,文件保存的路徑不可太深,且不要有中文目錄,文件名也不要太長,可參照下例:D: workex1.c源代碼編
11、輯完成后,進(jìn)行編譯、鏈接調(diào)試,如圖 3 所示。只要依次點擊: 編譯、鏈接 按鈕即可,也可 以直接點擊 編譯鏈接 按鈕。編譯、鏈接按鈕都有快捷鍵方式,可以使用快捷鍵,實現(xiàn)同樣的功能。圖 3 編譯、鏈接 在編譯、鏈接的過程中,會彈出對話框,可觀察源代碼中是否有錯,如果有錯,可修改源代碼,重新 編譯、鏈接,直至正確為止。上面的過程實際上是軟件調(diào)試的過程,接下來要進(jìn)行硬件調(diào)試。首先在斷電的情況下將實驗箱對應(yīng)電 路連線,組成需要的硬件電路,然后按上面步驟做好軟件調(diào)試,正確無誤后,開始進(jìn)行硬件調(diào)試。如圖 4 所示,點擊 調(diào)試 按鈕,實現(xiàn)程序的編譯、鏈接代碼 HEX文件下載到實驗箱單片機(jī)的程序區(qū)。圖 4 調(diào)
12、試程序下載完成后,進(jìn)行硬件調(diào)試,實現(xiàn)程序?qū)?yīng)的功能。如圖 5 所示,對應(yīng)一系列的按鈕,完成各種調(diào)試功能,一般情況下如果程序完全正確無誤后,可直接點擊運行 按鈕,此時,程序以全速的方式運行,我們就可以觀察實驗箱的實驗現(xiàn)象。實驗中,我們還要注意的是,如果硬件調(diào)試有問題,經(jīng)過修改程序需要重新硬件調(diào)試的時候,可以使 用如下方法實現(xiàn)快速的重新調(diào)試:如圖 4點擊 單片機(jī)復(fù)位 按鈕,彈出 確定提示框,根據(jù)提示按一下實驗箱 左下方的 RESET按鈕,并立刻點擊 確定按鈕,如果實驗箱上的六個數(shù)碼管顯示 C_ ,表明復(fù)位且通信良好, 此時就可重新進(jìn)行硬件調(diào)試了,如果顯示 P_ , 表示復(fù)位或者通信存在問題,需要重
13、新操作。13圖 5 運行五、實驗步驟1、P10、 P11 接開關(guān)的 K1 K2。2、P12、P13、P14、P15 接發(fā)光二極管的 L3 L6。3、按實驗內(nèi)容編寫程序,實現(xiàn): K1、K2 同時接低電平, L3L6 滅; K1、K2 同時接高電平, L3L6 亮; K1、K2一個接低電平一個接高電平, L3、L4 亮,L5、L6滅,并交替(注:以 for 循環(huán)方式實現(xiàn)延時) 。4、仿真調(diào)試(參照實驗原理) ,撥動開關(guān) K1 K2,觀察發(fā)光二極管狀態(tài)的變化。六、實驗報告要求1、寫出實驗?zāi)康?、實驗設(shè)備、實驗內(nèi)容,分析實驗原理,總結(jié)實驗步驟。2、將實驗源程序以附頁的方式粘在報告上,并加上注釋。3、對實
14、驗思考題加以分析,按照要求做出回答。七、實驗思考題1、寫出此實驗對應(yīng)的匯編程序。2、實驗總結(jié)(實驗調(diào)試過程中的問題和調(diào)試體會)。14實驗四 定時器及外部中斷實驗、實驗?zāi)康?、熟練在單片機(jī)系統(tǒng)中擴(kuò)展簡單 I/O 接口的方法。2、熟練 C51 語言數(shù)據(jù)輸出程序的設(shè)計方法。3、學(xué)習(xí)模擬交通燈控制的 C51 實現(xiàn)方法。4、學(xué)習(xí)外部中斷技術(shù)及定時器中斷的C51 基本使用方法。5、學(xué)習(xí)中斷處理程序 C51 編程方法。、實驗設(shè)備EL-MUT-III 型單片機(jī)實驗箱、 8051CPU模塊、 PC機(jī)、實驗內(nèi)容本實驗的原理圖如下:1擴(kuò)展實驗箱上的 74LS273 作為輸出口,控制八個發(fā)光二極管亮滅,模擬交通燈管理
15、。2. 在上述實驗內(nèi)容的基礎(chǔ)上增加允許急救車優(yōu)先通過的要求。具體要求為 : 當(dāng)有急救車到達(dá)時,東西和南北方向上的紅燈亮,以便讓急救車通過,假定急救車通過 路口的時間為 10 秒,急救車通過后,交通燈恢復(fù)中斷前的狀態(tài)。本實驗以單脈沖為中斷申請,表示有急 救車通過。四、實驗原理1、實驗方案本實驗的設(shè)計可以有兩種設(shè)計方案: 方案一:用十二個發(fā)光二極管分別表示南面路口的綠燈、黃燈、紅燈,東面路口的綠燈、黃燈、紅燈, 北面路口的綠燈、黃燈、紅燈,西面路口的綠燈、黃燈、紅燈。方案二:雖然實際交通燈的數(shù)量是十二個,但是因為南北路口的兩個紅燈、綠燈以及黃燈的亮滅 律相同, 其它路口的燈也滿足同樣的規(guī)律, 所以
16、用六個發(fā)光二極管也能模擬交通燈。 由原理圖可定義如下15LED1、LED2、 LED3 東西方向的紅燈、綠燈、黃燈LED5、LED6、 LED7 南北方向的紅燈、綠燈、黃燈 要完成本實驗,首先必須了解交通路燈的亮滅規(guī)律,本實驗的亮滅規(guī)律如下: 1、 初始態(tài)是兩個方向路口的紅燈全亮。2、東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車。3、延時一段時間后,東西路口綠燈滅,黃燈開始閃爍、閃爍若干次。4、東西路口紅燈亮,同時南北路口綠燈亮,南北方向開始通車。5、延時一段時間后,南北路口綠燈滅,黃燈開始閃爍、閃爍若干次。6、切換到東西路口方向,如此反復(fù)下去。 本實驗以單脈沖為中斷申請,表示有急救車通過
17、。特別注意的是中斷現(xiàn)場的保護(hù)。 要求用軟件或者 定時器 來完成延時。2、實驗說明本實驗 74LS273 芯片對于單片機(jī)而言,為外擴(kuò)的外部資源,其對應(yīng)的地址由片選信號CS273控制,本實驗 74LS273 的片選 CS273接片選信號 CSO ,則 74LS273 項對于單片機(jī)的外部空間抵制為 0xCFA0,C51語 言定義如下:#define OUTPORT XBYTE0xCFA0 因此交通燈(發(fā)光二極管)的顯示數(shù)據(jù)可以賦給OUTPOR變T 量,實現(xiàn)結(jié)果的輸出。本實驗中還要注意的是,交通燈的每一種狀態(tài)的顯示,都需要延時一段時間再切換到另一種狀態(tài),從而實現(xiàn)每一種狀態(tài)的穩(wěn) 定顯示。其 C51 語言
18、的實現(xiàn)方法如下:OUTPORT=x;/顯示交通燈某一狀態(tài)數(shù)據(jù) xDelay(1);/ 延時 1msOUTPORT=y; / 顯示交通燈另一狀態(tài)數(shù)據(jù) yDelay(1); / 延時 1ms實驗中涉及到急救車通過,要求使用外部中斷的方式實現(xiàn)。在本實驗中我們可以利用單片機(jī)的外部中斷 INT0 實現(xiàn)。也就是說,急救車通過時,首先利用 INT0 外部中斷給單片機(jī)發(fā)脈沖,告知單片機(jī),急救車 要求通過,然后單片機(jī)接收到脈沖,并做出判斷并使東西和南北方向上的紅燈亮,同時延時10 秒, 10 秒后表明急救車已經(jīng)通過,此時單片機(jī)恢復(fù)原狀態(tài)。利用 C51 語言可定義外部中斷如下:void Rescure_bus()
19、 interrupt 0EA=0;/ 關(guān)閉中斷,即不允許其它中斷OUTPORT=0x11;/ 0x11 為東西和南北方向上紅燈亮的狀態(tài)數(shù)據(jù)Delay(10000);/ 延時 10sEA=1;/ 開啟中斷16在調(diào)用外部中斷 0 時,一定要注意的是中斷現(xiàn)場的保護(hù),要就是說,中斷完成后,一定能夠恢復(fù)中斷 前的狀態(tài),那么在中斷程序中使用的變量、外部端口、內(nèi)部資源,如果在中斷前正在使用,那么在中斷開 始前一定要保護(hù),中斷后一定要恢復(fù)。同時, 注意的是由于在實驗中使用到單片機(jī)資源外部中斷0,需要對對應(yīng)的特殊寄存器作一定的配置。首先需要定義特殊寄存器變量:sfr IE=0xA8;sbit EA=IE7;sb
20、it EX0=IE0;當(dāng)然,這些特殊寄存器的定義實際上在 reg51.h 庫中定義了, 因此在 C51編程時, 只要包含上 reg51.h 即可,如下所示:#include 本實驗需要使用到這些特殊寄存器,就是在程序初始化時需要對這些寄存器賦初值,才可保證對應(yīng)的INT0 中斷正常工作。本實驗賦初值如下:IT0=1;EX0=1;EA=1; 本實驗可以根據(jù)實際實驗箱的配置來選擇以上方案中的任意一種。本實驗按照方案二來設(shè)計,選用實 驗箱上八個發(fā)光二極管中的六個,即紅、黃、綠各兩個。例如將L1( 紅) 、 L2(綠)、 L3(黃)作為東西方向的指示燈,將 L5(紅)、L6(綠)、 L7(黃)作為南北方
21、向的指示燈,同學(xué)們還可以用別的設(shè)計方法。各 發(fā)光二極管的陽極通過保護(hù)電阻接到 +5V 的電源上,陰極接到輸入端上,因此使其點亮應(yīng)使相應(yīng)輸入端為 低電平 。五、實驗步驟1、將 74LS273的輸出 O0O7接發(fā)光二極管 L1 L8,74LS273的片選 CS273接片選信號 CSO,此時 74LS273 的片選地址為 CFA0H。2、脈沖輸入端 _接 8051CPU模塊上的 INT0,用來表示救護(hù)車的急救信號。3、按實驗內(nèi)容及方案二(實現(xiàn) 2、4、6 步規(guī)律),并采用定時器延時,編寫程序。4、仿真調(diào)試,觀察 LED顯示情況是否與實驗內(nèi)容相符。六、實驗報告要求1、寫出實驗?zāi)康?、實驗設(shè)備、實驗內(nèi)容,
22、分析實驗原理,總結(jié)實驗步驟。 2、將實驗源程序以附頁的方式粘在報告上,并加上注釋。3、對實驗思考題加以分析,按照要求做出回答。七、實驗思考題1、本實驗作了哪些中斷現(xiàn)場保護(hù),并解釋其保護(hù)的過程?2、實驗總結(jié)(實驗調(diào)試過程中的問題和調(diào)試體會)。17實驗五 8255 擴(kuò)展八段數(shù)碼管實驗、 實驗?zāi)康?、學(xué)習(xí) 8255 芯片的結(jié)構(gòu)及編程方法。2、掌握八段數(shù)碼管的使用方法,及動態(tài)顯示的編程方法。、實驗設(shè)備EL-MUT-III 型單片機(jī)實驗箱、 8051CPU模塊、 PC機(jī)、實驗內(nèi)容實驗的原理圖如下所示:本實驗通過單片機(jī)控制 8255 芯片,利用 8255 的 PA 口輸出數(shù)碼管的段碼, PB 口輸出數(shù)碼管
23、的位碼。 編寫 C51 程序?qū)崿F(xiàn)六個數(shù)碼管以固定時間間隔交替動態(tài)顯示“012345”和“ ABCDE”F。四、實驗原理8255芯片是單片機(jī)通用的并行接口擴(kuò)展芯片,可擴(kuò)展PA、PB、PC三個 8 位并行口。對于單片機(jī)而言,如果外接 8255 芯片,那么 8255 所對應(yīng)的外部空間地址不再是固定為一個值了。本實驗 8255 的片選信號 接 CS0,則表明 8255 相對于單片機(jī)的外部地址范圍是 0xCFA0-0xCFA7,此時 8255 的 PA口、 PB口、 PC口、 控制字寄存器對應(yīng)于單片機(jī)的外部地址為:0xCFA0、0xCFA1、0xCFA2、0xCFA3,其對應(yīng) C51 定義可如下例:#d
24、efine PA XBYTE0xCFA0#define PB XBYTE0xCFA1#define PC XBYTE0xCFA2#define PCTL XBYTE0xCFA3對于八段數(shù)碼管,顯示數(shù)據(jù)時需要同時送入段碼和位碼,位碼就是選擇哪一個數(shù)碼管接收段碼數(shù)據(jù), 段碼就是需要顯示的字符的編碼。在C51 中段碼可定義如下:unsigned char code table17=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7f,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;上面定義的是字符 0-9 、A-F 以及黑屏的段碼數(shù)
25、據(jù),而且是共陰極八段數(shù)碼管的段碼數(shù)據(jù)。當(dāng)需要顯 示某一個字符時,只要查詢 table 數(shù)組即可,如:顯示 A字符 ,直接調(diào)用 table10 即可。對于單片機(jī)控制 8255 ,實現(xiàn)依次點亮數(shù)碼管的方法,可參照下例程序:18main m=1 ;PCTL=0x80;/ 設(shè)置 PA、 PB的工作方式while(1)/ 保證 0-5 字符能夠穩(wěn)定顯示在數(shù)碼管上for(i=0;i=5;i+)PA=tablei;/ 六個數(shù)碼管依次點亮 0-5PB=255-(mi);/ 選通對應(yīng)的數(shù)碼管,如: 0 字符由數(shù)碼管 1 點亮Delay(1);/ 延時 1ms對于 8255 芯片的控制字的各個位含義以及對應(yīng)的方式
26、可查閱8255 芯片的資料。五、實驗步驟1、實驗連線: PA0PA7接 LED-ALED-DP,PB0PB5接 LED1LED6, 8255cs 接片選信號 CS0,LED JUMP 的帽全部去掉。2、按實驗內(nèi)容編寫程序,實現(xiàn)八位數(shù)碼管交替動態(tài)顯示“012345”和“ ABCDE”F。3、仿真調(diào)試,觀察數(shù)碼管的顯示情況。六、實驗報告要求1、寫出實驗?zāi)康?、實驗設(shè)備、實驗內(nèi)容,分析實驗原理,總結(jié)實驗步驟。2、將實驗源程序以附頁的方式粘在報告上,并加上注釋。3、對實驗思考題加以分析,按照要求做出回答。七、實驗思考題1、本實驗如果實現(xiàn)“ 012345”從右向左依次進(jìn)入六個數(shù)碼管動態(tài)顯示,該如何完成?編
27、寫顯示部分 函數(shù)。2、實驗總結(jié)(實驗調(diào)試過程中的問題和調(diào)試體會)。19實驗六 8279 鍵盤顯示擴(kuò)展實驗(綜合性)、實驗?zāi)康?、了解 8279 鍵盤/ 顯示控制器的工作原理 , 掌握其編程方法。2、了解鍵盤電路工作原理及編程方法。3、熟悉 LED顯示接口電路及工作原理和編程方法。、實驗設(shè)備EL-MUT-III 型單片機(jī)實驗箱、 8051CPU模塊、 PC機(jī)、實驗內(nèi)容本實驗的原理圖如下所示:8279 與一個 16 個鍵的小鍵盤相連, 16 鍵的編碼為 0、1、2、3、4、5、6、7、8、9、A、B、C、D 實 驗要求和內(nèi)容如下:1、如果按下的是數(shù)字鍵,則在顯示器上將該數(shù)字依次顯示。2、如果按下的
28、是“ C”鍵,則顯示器全滅。 本實驗中各個按鍵還可以實現(xiàn)其它的功能,可以自行設(shè)計安排,并編程實現(xiàn)。四、實驗原理8279 是一種可編程鍵盤 /顯示器接口芯片,利用它的掃描傳感器陣列方式,可實現(xiàn)多路開關(guān)變位信號 采集及處理,然后將處理結(jié)果送到CPU ,這樣可節(jié)省 CPU 資源。其功能有:接收來自鍵盤的輸入數(shù)據(jù),并作預(yù)處理; 數(shù)據(jù)顯示的管理和數(shù)據(jù)顯示器的控制等。 8279 的引腳功能、控制字以及對應(yīng)的工作方式可查 閱 8279 芯片的資料。本實驗中已經(jīng)將鍵盤控制芯片 8279 的地址固定為 0xCFE8、 0xCFE9,即 8279 的數(shù)據(jù)端口地址對應(yīng)200xCFE8, 8279 的命令字和狀態(tài)字的
29、地址為 0xCFE9??啥x如下:#define com XBYTE0xCFE9#define dataport XBYTE0xCFE8實驗中鍵盤接口與 8279 的回復(fù)線 RL0RL7、掃描線 SL0SL2 相連,組成鍵盤輸入電路,六個數(shù)碼管 與 8279 的 OUTA0 OUTA3、 OUTB0 OUTB3以及驅(qū)動電路組成顯示回路。8279 芯片在 C51編程中是較為復(fù)雜的, 因為它有較多的控制命令字和狀態(tài)字, 學(xué)會使用這些命令字是 很重要的 . 例如, 8279 初始化時首先需要執(zhí)行清除命令:com=0xd1;/ 總清除命令doACC=com;/ 讀取 8279 狀態(tài)while(ACC7
30、=1)/ 等待清除結(jié)束 同時,需要設(shè)置鍵盤工作方式、顯示方式、時鐘分頻等命令字,使 8279 工作在要求的方式中: com=0x00;/8 個字符顯示,左入口;編碼掃描鍵盤,雙鍵鎖定com=0x2a;/10 分頻鍵盤有無鍵按下的判斷可以如下判斷:k=com;/ 讀取狀態(tài)字while(k&0f)=0);/ 判斷是否為 0: =0 等待; 0 有鍵按下,往下執(zhí)行實現(xiàn)讀取鍵盤值的命令可參照如下例程:com=0x40;/ 讀 FIFO RAM命令,地址 0x0000i=dataport;/ 讀取一個鍵盤數(shù)據(jù)i=i&0x3f;/ 取低 6 位為鍵盤值8279 的顯示功能的實現(xiàn)可借鑒如下程序:for(i=
31、0;i8;i+) com=i+80;/ 寫顯示 RAM命令,顯示區(qū)地址由 i 控制dataport=tablei;/ 顯示的字符編碼輸出到數(shù)據(jù)端口本實驗,是上面各種命令字的一種綜合應(yīng)用的實例,大家可以查閱 8279 芯片資料,學(xué)會使用各種具 體的命令,從而完成對應(yīng)的任務(wù)。五、實驗步驟1、將鍵盤 KA10KA12接 8279 的 KA0KA2;RL10RL17接 8279 的 RL0RL7。2、按實驗內(nèi)容編寫程序,實現(xiàn)按下數(shù)字鍵,則在顯示器上將該數(shù)字依次顯示,按下“C”鍵,則顯示器全滅。3、仿真調(diào)試,按動鍵盤,觀察顯示的鍵值與給定鍵值是否相符。六、實驗報告要求1、寫出實驗?zāi)康摹嶒炘O(shè)備、實驗內(nèi)容
32、,分析實驗原理,總結(jié)實驗步驟。2、將實驗源程序以附頁的方式粘在報告上,并加上注釋。213、對實驗思考題加以分析,按照要求做出回答。七、實驗思考題1、假定實現(xiàn)按下 “D”鍵, 6 個 LED顯示 123456 的功能。編寫此功能函數(shù)。2、實驗總結(jié)(實驗調(diào)試過程中的問題和調(diào)試體會)。實驗七 點對點異步串口實驗(設(shè)計性)一、實驗?zāi)康?、掌握串行口工作方式的程序設(shè)計,掌握單片機(jī)通訊程序的編制。2、了解實現(xiàn)串行通訊的硬件環(huán)境,數(shù)據(jù)格式、數(shù)據(jù)交換的協(xié)議。3、掌握串行通訊中波特率的設(shè)置。4、在給定通訊波特率的情況下,會計算定時時間常數(shù)。二、實驗設(shè)備EL-MUT-III 型單片機(jī)實驗箱、 8051CPU模塊、
33、 PC機(jī)三、實驗原理MCS-51單片機(jī)串行通訊的波特率隨串行口工作方式選擇的不同而不同,它除了與系統(tǒng)的振蕩頻率f ,電源控制寄存器 PCON的 SMOD位有關(guān)外,還與定時器 T1 的設(shè)置有關(guān)。1) 在工作方式 0 時,波特率固定不變,僅與系統(tǒng)振蕩頻率有關(guān),其大小為f/12 。2) 在工作方式 2 時,波特率也只固定為兩種情況:當(dāng) SMOD=1時,波特率 =f/32當(dāng) SMOD=0時,波特率 =f/643) 在工作方式 1 和 3 時,波特率是可變的:當(dāng) SMOD=1時,波特率 =定時器 T1 的溢出率 /16當(dāng) SMOD=0時,波特率 =定時器 T1 的溢出率 /32其中,定時器 T1 的溢出
34、率 =f/(12*(256-N) ,N為 T1 的定時時間常數(shù)。在實際應(yīng)用中,往往是給定通訊波特率,而后去確定時間常數(shù)。例如: f=6.144MHZ, 波特率等于 1200 , SMOD=0時,則 1200=6144000/(12*32*(256-N) ,計算得 N=F2H。編程時注意兩點:一是初始化,設(shè)置波特 率和數(shù)據(jù)格式, 二是確定數(shù)據(jù)傳送方式。 數(shù)據(jù)傳送方式有兩種: 查詢方式和中斷方式。 在雙機(jī)通信實驗時, 為確保通訊成功,甲機(jī)和乙機(jī)必須有一個一致的通訊協(xié)議,同學(xué)們可以自行設(shè)定,也可按照我們設(shè)計的通 信協(xié)議來做,我們提供的通信協(xié)議如下:通訊雙方均采用 2400 波特的速率傳送,甲機(jī)發(fā)送數(shù)
35、據(jù),乙機(jī)接收數(shù)據(jù)。雙機(jī)開始通訊時,甲機(jī)發(fā)送 一個呼叫信號“ 06”,詢問乙機(jī)是否可以接收數(shù)據(jù);乙機(jī)收到呼叫信號后,若同意接收數(shù)據(jù)則發(fā)回“00”作為應(yīng)答,否則發(fā)“ 15”表示暫不能接收數(shù)據(jù);甲機(jī)只有收到乙機(jī)的應(yīng)答信號“00”后才可把要發(fā)送的數(shù)據(jù)發(fā)送給乙機(jī),否則繼續(xù)向乙機(jī)呼叫,直到乙機(jī)同意接收。其發(fā)送數(shù)據(jù)格式為:字節(jié)數(shù) n數(shù)據(jù) 1數(shù)據(jù) 2數(shù)據(jù) 3數(shù)據(jù) n累加校驗和字節(jié)數(shù) n:甲機(jī)將向乙機(jī)發(fā)送的數(shù)據(jù)個數(shù) 數(shù)據(jù) 1數(shù)據(jù) n:甲機(jī)將向乙機(jī)發(fā)送的 n 個數(shù)據(jù)22累加校驗和:字節(jié)數(shù) n,數(shù)據(jù) 1,數(shù)據(jù) n 這( n+1)個字節(jié)內(nèi)容的算術(shù)累加和。 乙機(jī)根據(jù)接收到的“校驗和”判斷已接收到的數(shù)據(jù)是否正確。若接收正
36、確,向甲機(jī)回發(fā)“0F”信號,否則回發(fā)“ F0”信號給甲機(jī)。甲機(jī)只有接到信號“ 0F”才算完成發(fā)送任務(wù),否則繼續(xù)呼叫,重發(fā)數(shù)據(jù)。在串行通信的 C51 編程當(dāng)中,將會涉及到一系列的特殊寄存器的使用,如:TMOD、PCON、SCON、SBUF、TI 、RI、TH1、TL1、TR1等。它們的使用方法如下:PCON=0x00;/SMOD=0,串行波特率未加倍SCON=0x50;/ 方式 1;接收允許TMOD=0x20;/ 定時器 1 方式 2TL1=0xF2;/ 初始值,用于計算波特率TH1=0xF2;/ 初始值TR1=1;/ 開啟定時器 1SBUF=0x11;/ 串口發(fā)送緩沖區(qū)賦值 0x11while
37、(TI!=1)/ 發(fā)送完成標(biāo)志;TI=0;/ 清零while(RI!=1)/ 接收完成標(biāo)志;RI=0;Data=SBUF; / 串口接收緩沖區(qū)數(shù)據(jù)保存四、實驗方案實驗題目: 1、單機(jī)設(shè)計實驗。即完成一個單片機(jī)自身的串口發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。2、雙機(jī)設(shè)計實驗。即完成兩個單片機(jī)互相之間的串口發(fā)送和接收數(shù)據(jù),實現(xiàn)一個發(fā)送數(shù)據(jù),一個接 收數(shù)據(jù)。實驗要求:具體實現(xiàn)功能如下: (可任選其一)(1)模擬一個循環(huán)彩燈。首先,設(shè)計循環(huán)彩燈的變化規(guī)律,并將變化規(guī)律數(shù)據(jù)由單片機(jī)串口發(fā)送, 然后由串口負(fù)責(zé)接收,同時驅(qū)動 8 個發(fā)光二極管模擬循環(huán)彩燈。其中,循環(huán)需利用定時器實現(xiàn),而且使用 外部中斷實現(xiàn)兩種循環(huán)規(guī)律的切換。(2)利用 8279 將鍵盤的數(shù)值送入單片機(jī),并由單片機(jī)串口發(fā)送出去
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海洋工程行業(yè)會計工作總結(jié)
- 酒店管理工作招聘要求詳解
- 常見的空腸營養(yǎng)管
- 保密措施及承諾
- 觀察小魚尾鰭內(nèi)血液的流動實驗
- 2024武進(jìn)區(qū)公共資源交易中心業(yè)務(wù)培訓(xùn)合同
- 2024年離婚雙方財產(chǎn)分割詳細(xì)合同指導(dǎo)版B版
- 小學(xué)生新學(xué)期開學(xué)演講稿集錦6篇
- 2024版地產(chǎn)廣告資源整合與宣傳合作合同3篇
- 2024最高額反擔(dān)保合同
- 《西醫(yī)內(nèi)科學(xué)》泌尿系統(tǒng)疾病
- 農(nóng)業(yè)合作社章程范本
- 痛風(fēng)性關(guān)節(jié)炎 課件
- 2休閑食品市場營銷策劃案1
- 酒店砌體專項施工方案
- 建設(shè)工程施工合同 GF—2017—0201
- 部編版小學(xué)語文五年級下冊第四單元教學(xué)計劃及單元分析
- 進(jìn)水口快速閘門液壓啟閉機(jī)安裝施工方案
- 法道(FADAL)機(jī)床設(shè)備維修知識講座
- 職校生個人簡歷自薦信范文模板
- 雙電源STS靜態(tài)換轉(zhuǎn)開關(guān)輸入配電系統(tǒng)解決方案
評論
0/150
提交評論