單片機實驗報告(3)_第1頁
單片機實驗報告(3)_第2頁
單片機實驗報告(3)_第3頁
免費預(yù)覽已結(jié)束,剩余33頁可下載查看

下載本文檔

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

文檔簡介

.本 科 生 實 驗 報 告實 驗課 程單 片機 原理 及 應(yīng)用學 院名 稱核 技術(shù) 與自 動 化工 程學 院專 業(yè)名 稱電 氣工 程及 其 自動 化學 生姓 名學 生學 號指 導(dǎo)教 師任 家富實 驗地 點6c902實 驗成 績二一五年三月二一五年六月;.單 片 機 最 小 系 統(tǒng) 設(shè) 計 及 應(yīng) 用摘 要目前, 單片機以其高可靠性,在工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表等領(lǐng)域得到極其廣泛的應(yīng)用。因此對于在校的大學生熟練的掌握和使用單片機是具有深遠的意義。通過本次課程設(shè)計掌握單片機硬件和軟件方面的知識,更深入的了解單片機的實際應(yīng)用,本次設(shè)計課程采用stc89c52 單片機和 adc0804 ,led 顯示,鍵盤, rs232 等設(shè)計一個單片機開發(fā)板系統(tǒng)。進行了led 顯示程序設(shè)計,鍵盤程序設(shè)計,rs232 通信程序設(shè)計等。實現(xiàn)了單片機的各個程序的各個功能。對仿真軟件keil 的應(yīng)用提升了一個新的高度。單片機體積小、成本低、使用方便,所以被廣泛地應(yīng)用于儀器儀表、 現(xiàn)場數(shù)據(jù)的采集和控制。通過本實驗的學習,可以讓學生掌握單片機原理、接口技術(shù)及自動控制技術(shù),并能設(shè)計一些小型的、綜合性的控制系統(tǒng),以達到真正對單片機應(yīng)用的理解。關(guān)鍵詞:單片機;智能;最小系統(tǒng);adc; rs232;顯示; stc89c52第 1 章概述單片機又稱單片微控制器, 它不是完成某一個邏輯功能的芯片, 而是把一個計算機系統(tǒng)集成到一個芯片上。相當于一個微型的計算機,和計算機相比, 單片機只缺少了i/o設(shè)備。單片機采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器cpu隨機存儲器ram、只讀存儲器rom、多種 i/o 口和中斷系統(tǒng)、定時器/ 計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d 轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計算機系統(tǒng)。概括的講:一塊芯片就成了一臺計算機。它的體積小、質(zhì)量輕、價格便宜、 為學習、應(yīng)用和開發(fā)提供了便利條件。同時, 學習使用單片機是了解計算機原理與結(jié)構(gòu)的最佳選擇。它最早是被用在工業(yè)控制領(lǐng)域,由于單片機在工業(yè)控制領(lǐng)域的廣泛應(yīng)用,單片機由芯片內(nèi)僅有cpu的專用處理器發(fā)展而來。 最早的設(shè)計理念是通過將大量外圍設(shè)備和 cpu集成在一個芯片中, 使計算機系統(tǒng)更小, 更容易集成進復(fù)雜的而對體積要求嚴格的控制設(shè)備當中?,F(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。手 機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有 1-2 部單片機。汽車上一般配備40 多部單片機, 復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺單片機在同時工作!單片機的數(shù)量不僅遠超過pc機和其他計算的總和,甚至比人類的數(shù)量還要多。單片機的使用領(lǐng)域已十分廣泛,如智能儀表、 實時工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機,就 能起到使產(chǎn)品升級換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”,如智能型洗衣機等。第 2 章實驗內(nèi)容2.1 單片機集成開發(fā)環(huán)境應(yīng)用2.1.1 實驗?zāi)康?、集成開發(fā)環(huán)境keil 介紹及開發(fā)流程1) 建立您的第一個項目點擊 project菜單,選擇彈出的下拉式菜單中的newproject,如圖 12。接著彈出一個標準windows 文件對話窗口,如圖13,用法技巧也不是這里要 說的,以后的章節(jié)中出現(xiàn)類似情況將不再說明。在“文件名”中輸入您的第一個 c 程序項目名稱, 這里我們用“ test ”, 這是筆者慣用的名稱,大家不必照搬就是了,只要符合windows 文件規(guī)則的文件名都行?!氨4妗焙蟮奈募U展名為uv2,這是 keiluvision2項目文件擴展名,以后我們可以直接點擊此文件以打開先前做的項目。.2) 選擇所要的單片機選擇所要的單片機,這里我們選擇常用的ateml公司的 at89c51。此時屏幕如圖 14 所示。at89c51 有什么功能、特點呢?請看圖中右邊有簡單的介紹, 是英文的。 稍后的章節(jié)會作較詳細的介紹。完成上面步驟后, 我們就可以進行程序的編寫了。3)在項目中創(chuàng)建新的程序文件或加入已經(jīng)存在的程序文件首先我們要在項目中創(chuàng)建新的程序文件或加入已經(jīng)存在的程序文件。沒有現(xiàn)成的程序,那么就要新建一個程序文件。在在這里我們還是以一個c程序為例介紹如何新建一個keil 中有一些程序的如果您demo,c程序和如何加到您的第一個項目中吧。點擊新建文件的快捷按鈕,在2 中出現(xiàn)一個新的文字編輯窗口。4)如果沒有已經(jīng)存在的程序文件,新建、保存點擊圖 15 中的 3 保存新建的程序, 也可以用菜單file save 或快捷鍵ctrl+s進行保存。因是新文件所以保存時會彈出類似圖13 的文件操作窗口, 我們把第一個程序命名為test1.c,保存在項目所在的目錄中,這時您會發(fā)現(xiàn)程 序單詞有了不同的顏色,說明keil 的 c語法檢查生效了。如圖16 鼠標在屏幕左邊的 source group1文件夾圖標上右擊彈出菜單,在這里可以做在項目中 增加減少文件等操作。我們選“add file to groupsourcegroup 1 ”彈出文件窗口,選擇剛剛保存的文件,按add按鈕,關(guān)閉文件窗,程序文件已加 到項目中了。這時在source group1 文件夾圖標左邊出現(xiàn)了一個小+號說明,文件組中有了文件,點擊它可以展開查看。5)編譯調(diào)試c程序文件已被我們加到了項目中了,下面就剩下編譯運行了。這個項目我們只是用做學習新建程序項目和編譯運行仿真的基本方法,所以使用軟件默認的編譯設(shè)置,它不會生成用于芯片燒寫的hex 文件。要生成用于芯片燒寫的hex文件,應(yīng)進行如下設(shè)置:在creat hex file前打選擇。如果先前編譯過一次之后文件沒有做動編輯改動,這時再點擊是不會再次重新編譯的。 3 是重新編譯,每點擊一次均會再次編譯鏈接一次,不管程序是否有改動。在 3 右邊的是停止編譯按鈕,只有點擊了前三個中的任一個,停止按鈕才會生效。 5 是菜單中的它們,我個人就不習慣用它了。嘿嘿,這個項目只有一個文件,您按1.2.3中的一個都可以編譯。在4 中可以看到編譯的錯誤信息和使用的系統(tǒng)資源情況等, 以后我們就依靠它來進行查錯。6 是有一個小放大鏡的按鈕,這就是開啟關(guān)閉調(diào)試模式的按鈕,它也存在于菜單debug startstopdebug session ,快捷鍵為ctrl+f56)調(diào)試、生成 hex文件進入調(diào)試模式,軟件窗口樣式大致如圖18 所示。圖中 1 為運行,當程序處于停止狀態(tài)時才有效,2 為停止,程序處于運行狀態(tài)時才有效。3 是復(fù)位,模擬芯片的復(fù)位,程序回到最開頭處執(zhí)行。3、下載到單片機的內(nèi)部運行1) 用 keil 生成的 hex文件步驟:點擊 project菜單,選擇彈出的下拉式菜單中的new project 。選擇所要的單片機,如選擇常用的ateml公司的 at89c51。在項目中創(chuàng)建新的程序文件或加入已經(jīng)存在的程序文件。如果沒有已經(jīng)存在的程序文件,新建、保存。編譯調(diào)試、生成 hex文件2) 下載本實驗板提供isp 方式的下載,將keil 生成的 hex文件下載到單片機的內(nèi)部 flash 。連接計算機串口和單片機的串口下載。注意:單片機的 p1.0 p1.6 p1.1 不能被短接。3) isp 下載方法使用 stc-isp軟件,操作方法見前面。isp 下載步驟:選擇器件裝載 hex文件下載程序4)運行將 keil 生成的 hex文件下載到單片機的內(nèi)部機的內(nèi)部的程序flash后,即可自動運行單片2.1.2 實驗內(nèi)容照實驗內(nèi)容開始進行實驗,熟悉keil軟件的使用,自行建立工程,并新建一個文件(匯編文件為.asm擴展名, c文件為 .c 擴展名),編寫自己的程序,再把此文件添加到工程當中,最后進行編譯, 如果沒有錯誤, 則進行在線軟件的仿真調(diào)試。仿真調(diào)試分為兩種:軟件仿真和硬件仿真,前者不使用仿真器,后者使 用硬件仿真器。本實驗箱提供isp 方式的下載,將keil 生成的 hex文件下載到單片機的內(nèi)部 flash ,重復(fù)此部分內(nèi)容,直到熟練掌握開發(fā)環(huán)境的使用。2.1.3 實驗程序1、匯編程序:org 0000hsjmpstart org0030hstart:mov p1, 00000010b;將 p1.0 與 p1.1 分別置低電平、 高電平nop;空指令,不執(zhí)行任何操作nop nopljmpstart;跳轉(zhuǎn)到staend;程序結(jié)束2、c程序:附:關(guān)于此程序的c51實現(xiàn)#include #includevoid main()while(1)p1 = 0x02;/ 置 位 p1.1, 清 零 p1.02.1.4 實驗結(jié)果及分析點亮了第二個發(fā)光二極管,p10-p18 分別控制八個發(fā)光二極管,0x02 表示點亮第二個發(fā)光二極管。將程序下載到單片機內(nèi)運行結(jié)果正確。2.1.5 收獲及思考題回答1, 如果二極管的陰、陽極插反,怎么改進程序,使之發(fā)光? 將 p1 = 0x02改 為 p1 = 0xf即可。2, 用軟件延時的辦法實現(xiàn)指示燈的閃爍。添加一個延時程序即可,例如延時0.2ms mov r6,#200loop1: mov r7,#248 noploop2: djnz r7,loop2djnz r6,loop1 retend本次實驗學會了使用keil軟件編寫程序,并用下載器將程序下載到單片機當中運行。2.2 單片機i/o口實驗2.2.1 實驗?zāi)康?、熟悉單片機i/o 口的特點2、掌握單片機i/o 口的編程2.2.2實驗內(nèi)容1、 p1 口交通燈程序編寫(調(diào)試時連接2、蜂鳴器發(fā)聲程序jp3 的 8 個跳線)2.2.3 實驗程序1、蜂鳴器程序: org0000hljmpmain main:setb p1.2lcall delayclr p1.2 lcall delaysjmp main delay: mov r7,#255 d1:mov r6,#255 d2:djnz r6,d2djnz r7,d1ret end2、流水燈:org 0000h ajmp main org 0030hmain:mov dptr,#2000h mov r0,#0feh mov a,r0 movx dptr,aacall delay;延時mov r3,#07hloop:rl a;設(shè)置左移 7次左移一位movx dptr,aacall delay;延時djnz r3,loop;r3是否為 0,不為 0轉(zhuǎn)loop繼續(xù)執(zhí)行ajmp main;返回主程循環(huán)執(zhí)delay: mov r7,#255;延時子程序d1:mov r6,#255 d2:djnz r6,d2djnz r7,d1ret;子程序返回end2.2.4實驗結(jié)果及分析調(diào)試時連接jp3 的 8 個跳線。編譯正確, p1.2 給低電平蜂鳴器就會發(fā)聲音。流水燈關(guān)鍵在于循環(huán)。2.2.5收獲及思考題回答 用 c51 實現(xiàn)流水燈和蜂鳴器#include #include unsigned char a,b,k,j; sbit beep=p23;void delay10ms()for(a=100;a0;a-)for(b=225;b0;b-);void main()k=0xfe; while(1)delay10ms();beep=0; delay10ms(); beep=1; j=_crol_(k,1); k=j;p1=j;對蜂鳴器有了一定了解,在用c語言編寫程序是學會了新命令_crol_(a,b)2.3 定時器中斷2.3.1 實驗?zāi)康?、熟悉單片機中斷的概念;2、熟悉單片機內(nèi)部定時器的硬件結(jié)構(gòu);3、掌握單片機定時器的編程;4、掌握單片機的時序及鎖存器的使用;5、掌握用定時器實現(xiàn)交通燈和流水燈顯示.2.3.2 實驗內(nèi)容1、中斷是指 cpu正在處理某些事務(wù)的時候,外部又發(fā)生了某一事件,請求 cpu 及時處理。 于是,cpu暫時中斷當前的工作, 轉(zhuǎn)而處理所發(fā)生的事件。 處理完畢, 再回到原來被中斷的地方,繼續(xù)原來的工作。這樣的過程,稱為中斷。下圖分別為中斷方式流程和嵌套流程。2、單片機共有5 個中斷源,兩個優(yōu)先級,并可以實現(xiàn)兩級中斷嵌套。圖 4-4中斷系統(tǒng)結(jié)構(gòu)mcs-51單片機響應(yīng)中斷有四個條件: 中斷源有請求;寄存器 ie 的總允許位ea=1,且 ie 相應(yīng)的中斷允許位為1; 無同級或高級中斷正在服務(wù);現(xiàn)行指令執(zhí)行完最后一個機器周期。3, 單片機有兩個 16 位的硬件定時器 / 計數(shù)器,分別稱為 timer0 和 timer1 。每個定時器都有四種工作方式,稱為方式 0、方式 1、方式 2 和方式 3。工作方式有軟件控制。其結(jié)構(gòu)圖如下。圖 4-5定時器/ 計數(shù)器結(jié)構(gòu)單片機的定時器 / 計數(shù)器都統(tǒng)稱為定時器,是為定時器是對機器周期進行計數(shù), 而計數(shù)器是對外部的脈沖進行計數(shù)。通常情況下,都稱為定時器。定時器的四種工作方式是由軟件來控制的,如下表所示, 定時器工作方式寄存器 tmod中的 m0、m1兩為決定了它的工作方式。m1m0工作方式說明00方 式 013 位計數(shù)器01方 式 116 位計數(shù)器10方 式 2自動再裝入8 位計數(shù)器11方 式 3定時器 0:分為兩個8 位計數(shù)器定時器 1:對外部停止計數(shù)表 4-1定時器的四種工作方式4、使用單片機的定時器t0 產(chǎn)生 100ms的定時信號, 使實驗儀主板上的流水燈( 8 只紅色發(fā)光二極管)依次發(fā)光,并循環(huán)。設(shè)此時系統(tǒng)的時鐘頻率為6mhz,再根據(jù)它來決定定時器t0 的初始值。由于時鐘頻率為6mhz,所以,機器周期為2s。初始值計算有以下公式的出, t=(216-t0初值)機器周期, 就可以計算出初始值, 公式是依據(jù)定時器的工作原理的出的, 51 單片機的定時器是加法計數(shù)的,即由有一個數(shù)開始,每一個機器周期加一,直至溢出。5、實驗主板上的鎖存。電路如下圖。8 只紅色發(fā)光二極管的亮/ 滅是由 8 位鎖存器 74hc573進行由圖可以看出, 鎖存器是掛在系統(tǒng)總線上的,有外部地址進行統(tǒng)一編址,是外部地址 64k 地址空間的一部分。74hc573的鎖存信號有譯碼電路產(chǎn)生,又因為573 在控制端 c引腳為高電平時, 數(shù)據(jù)通道打開, 從高變到低時, 數(shù)據(jù)被鎖存, 所以, c端門控信號是由74hc138譯碼器的輸出端(譯碼地址:2000h)在加一個反相 器得到的。2.3.3實驗程序程序設(shè)計:由系統(tǒng)總線擴展i/o口,實現(xiàn)流水燈的程序設(shè)計org 0000hajmp mainorg 0030hmain:mov dptr,#2000hmov r0,#0fehmov a,r0movx dptr,aacall delay;延時loop:mov r3,#07h;rl a;設(shè)置左移 7 次左移一位movx dptr,aacall delay;延時djnz r3,loopajmp main;r3是否為 0,不為 0 轉(zhuǎn) loop繼續(xù)執(zhí)行返回主程循環(huán)執(zhí)delay: d1:mov r7,#255 mov r6,#255;延時子程序d2:djnz r6,d2djnz r7,d1ret;end;子程序返回程序結(jié)束給出定時器的中斷服務(wù)程序,同學可以進行修改, 形成由中斷完成的流水燈程序設(shè)計。org 0000hljmpmain org000bh ljmptimemain:movth0,#0d8h movtl0,#0a0h movtmod,#01h定;時器工作方式1setbet0; 開定時中斷setbea ; 開總中斷setbtr0;定時器開始計時中斷服務(wù)程序:time:movth0,#0d8h movtl0,#0a0h reti2.3.4 實驗結(jié)果及分析中斷中斷源有請求;寄存器 ie 的總允許位ea=1,且 ie 相應(yīng)的中斷允許位為1; 無同級或高級中斷正在服務(wù);中斷初始化:1,確定工作方式,對tmod寄存器進行賦值2,計算計數(shù)初值3,置位 etx 允許定時器中斷4,置位 ea開總中斷5,置位 trx啟動定時器工作2.3.5 收獲及思考題回答1,用 c51采用定時器延時設(shè)計流水燈實驗,讓流水燈依次點亮或熄滅程序#include #include #define uint unsigned int#define uchar unsigned char sbit p1_0=p10;uchar tt,a; void main()a=0xfe;tmod=0x01;th0=(65536-50000)/256;tl0=(65536-50000)%256; ea=1;et0=1;tr0=1;while(1);void timer0() interrupt 1th0=(65536-50000)/256; tl0=(65536-50000)%256;tt+; if(tt=20)tt=0; p1=_crol_(a,1);這次實驗掌握了定時器的結(jié)構(gòu)和使用,學會了如何使用定時器精確定時。2.4通信實驗2.4.1實驗?zāi)康?、熟悉單片機通信的原理;2、熟悉 mcs-51單片機 uart四種工作方式;3、掌握 uart的編程方法2.4.2實驗內(nèi)容1、串行通信基本知識在 mcs-51單片機內(nèi)部,有一個通用異步接收 / 發(fā)送器( uart)。這是一個全雙工串行接口, 能同時進行發(fā)送和接收數(shù)據(jù)。 利用這個串行接口, 可以實現(xiàn)單片機之間的單機通信、多機通信,以及與 pc機之間的通信。通信方式種類:一種是并行通信,一種是串行通信。串行通信的三種方式:單工通信、半雙工通信和全雙工通信。同步技術(shù)分為: 異步通信、同步通信,它們之間的不同點可以參考相關(guān)參考書目。異步通信的一般數(shù)據(jù)格式為:圖 7-1異步通信的一幀數(shù)據(jù)格式同步通信的數(shù)據(jù)格式為:圖 6-1同步通信的數(shù)據(jù)格式2、mcs-51單片機的通用串行口結(jié)構(gòu)mcs-51有一個可編程的全雙工串行通信接口,可作為通用異步接收/ 發(fā)送器uart,也可作為同步移位寄存器。它的幀格式有8 位、10 位和 11 位,可以設(shè)置為固定波特率和可變波特率。 串口的工作方式主要有scon和 pcon兩個寄存器來決定。scon的最高兩位sm0、sm1表示串行口工作方式控制位,兩位對應(yīng)四種工作方式,如表 7-1 所示( fosc 是晶振頻率)。pcon的最高位 smod是波特率倍增位。 串行口工作在方式1、方式 2、方式 3時,若 smod=,1則波特率提高一倍;若smod=,0則波特率不提高一倍。單片機 復(fù)位時, smod=。03、單片機串口的工作方式(1) )方式 0 的波特率工作方式 0 時,移位脈沖由機器周期的第6 個狀態(tài)周期s6 給出,每個機器周期產(chǎn)生一個移位脈沖,發(fā)送或接收一位數(shù)據(jù)。因此,波特率是固定的,為振蕩頻率的 1/12 ,不受 pcon寄存器中 smod的影響。用公式表示為:工作方式 0 的波特率 =fosc/12 (fosc 時鐘頻率)(2) )方式 2 的波特率工作方式 2 時,移位脈沖由振蕩頻率fosc的第二節(jié)拍 p2 時鐘(即 fosc/2 )給出,所以,方式2 波特率取決于pcon中的 smod位的值,當smod=時0 ,波特率為 fosc的 1/64 ;當 smod=時1 ,波特率為fosc 的 1/32 ,用公式表示為;工作方式 2 波特率=(2smod/6)4(3) )工作方式1 和方式 3 的波特率 fosc這兩種工作方式的波特率由定時器t1 的溢出率決定,波特率的數(shù)值可以參考教科書中的表。4、實驗箱統(tǒng)中的串行接口電路下圖為實驗箱系統(tǒng)中的串行接口電路采用的接口芯片是max23。25、串行接口接收程序可使用串口調(diào)試助手程序來接收和發(fā)送數(shù)據(jù)2.4.3 實驗程序程序設(shè)計 1:實現(xiàn)將計算機端發(fā)送過來的數(shù)據(jù)返回給計算機終端。org 0000hljmp main org 0023h ljmp uartmain: movtmod,#20hmovtl1,#0f3h movth1,#0f3movpcon,#80h setbes movscon,#50h setbtr1setbeasjmp $uart:clr esjnbri,ll mov a,sbuf movsbuf,a setbesljmpexitll:clrti setbesexit:reti end2、根據(jù)實驗箱系統(tǒng)提供的原理圖,熟悉實驗提供的參考程序。完成使用uart的同步方式,實現(xiàn)數(shù)碼管顯示。1234vcc gndrxd16 4txd16 4vccgnd rxd16 4txd16 4vccvccrxd16 41d2u1 4a bvcc 1 4gnd7txd16 48q0 q1q2q3 q4q5 q6 q734561 01 11 21 312345678a dpyb au1 51a2bc fbgr2 3200dmr7 4hc1 6 4c d pcomvcc gndclkq0 q1q2q3 q4q5 q6 q734561011121312345678a bdpyadc fbgvcc gndclkde e fg d pvcc 1 4gnd7txd16 48de e fg d pdvcc99vcc9c d pcomr24 2009ds1mr7 4hc1 6 4ds5vccvccvcc12c2 61 04c2 7 c2 8 c2 9 c3 0 c3 1 c3 21 04 1 04 1 041041 04 1 04c3 31 04u1 6a bcvcc 1 4gnd7txd16 48vccgnd clkq0 q1q2 q3q4 q5q6 q734561 01 11 21 312345678a bc fde e fgd pds2dpya12u1 7a bgbr2 5200dc d pcomvcc 1 4gnd7txd16 48vccgnd clkq0 q1q2 q3q4 q5q6 q734561011121312345678a bc fde e fgd pds6dpyagbdc d pcomr26200cvcc9mr7 4hc1 6 49vcc9mr7 4hc1 6 49vccvccu1 81a2bvcc 1 4gnd7txd16 48mr7 4hc1 6 4q0 q1q2q3 q4q5 q6 q734561 01 11 21 312345678a dpyb au1 91a2bc fbgvcc gndclkde e fg d pr2 7200dc d pcomvcc 1 4gnd7txd16 489vcc9q0 q1q2q3 q4q5 q6 q734561011121312345678a dpyb ac fbgvcc gndclkde e fg d pr28200dvcc9c d pcom9ds3mr7 4hc1 6 4ds7bvccbu2 01a2bvcc 1 4vccgnd 7gndtxd16 48clkq0 q1q2q3 q4q5 q6q734561 01 11 21 312345678a bc fde e fg d pdpya12u2 1a bvccbgr2 9200dcvcc 1 4vccgnd 7gndtxd16 48clkq0 q1q2q3 q4q5 q6q734561011121312345678a bc fde e fg d pdpyabgdcr30 200vcc9mr7 4hc1 6 4d pcom9vcc9d pcom9ds4mr7 4hc1 6 4ds8atitleasize a4date: file:nu mberrev isio n2 6-mar-2 009本科教學 本科教案 單片機實驗實驗箱9123sheet o f實d驗r箱aw電n 路b.dy:db4org 0000hljmp startmtd equ 30h; 發(fā)送緩沖區(qū)首址mtd=30,h 偽指令。start:mov scon,#00h 串;口中斷方式0mov r1,#mtd; 發(fā)送緩沖器數(shù)據(jù)初始化mov r1,#03h ;0 inc r1mov r1,#9fh ;1inc r1mov r1,#25h ;2 inc r1mov r1,#0dh ;3 inc r1mov r1,#99h ;4inc r1mov r1,#49h ;5inc r1mov r1,#041h ;6 inc r1mov r1,#1fh ;7 inc r1mov r1,#01h ;8 inc r1mov r1,#09h ;9 inc r1mov r2,#10; 送發(fā)送緩沖區(qū)的代碼個數(shù)loop:lcall uartno;顯示子程序movr2,#10; 再次送發(fā)送緩沖區(qū)的代碼個數(shù),以便循環(huán)顯示sjmploop; 循環(huán)顯示uartno:mov r0,#mtd; 緩沖區(qū)首址入r0 sout:mov a,r0; 發(fā)送數(shù)據(jù)入amov sbuf,a; 啟動發(fā)送call delay; 延 時waio:jnb ti,waio; 發(fā)送等待clr ti; 發(fā)送結(jié)束標志清0inc r0; 指向下一個發(fā)送數(shù)據(jù)地址djnz r2,sout;10個字節(jié)發(fā)送完?未完轉(zhuǎn)sout delay: mov r7,#255;延時子程序d1:mov r6,#255 d2:djnz r6,d2djnz r7,d1ret;子程序返回end;程序結(jié)束2.4.4 實驗結(jié)果及分析將程序下載到單片機當中數(shù)碼管顯示正確,程序分析見注釋。2.4.5 收獲及思考題回答各種常見波特率及其初值2.5led 顯示設(shè)計2.5.1實驗?zāi)康?,掌了解 led 數(shù)碼管的原理2,掌握 led 數(shù)碼管編程2.5.2實驗內(nèi)容1.led 顯示電路2.led 譯碼地址mcs-51單片機顯示部分,外接 4 片 74ls273芯片作為 4 位 led顯示器的靜態(tài)顯示接口,并行輸出端分別接 led顯示器的各段對應(yīng)的引腳上。 在單片機應(yīng)用系統(tǒng)中,顯示器顯示用靜態(tài)顯示顯示。2.5.3實驗程序1、cls子程序cls:mov a,#0ffh mov dptr,#8000h movx dptr,a mov dptr,#9000h movx dptr,a mov dptr,#0a000h movx dptr,a mov dptr,#0b000h movx dptr,a ret2、disp子程序disp:mov a,70hmov dptr,#8000h movx dptr,a mov a,71hmov dptr,#9000h movx dptr,a mov a,72hmov dptr,#0a000h movx dptr,a.mov a,73hmov dptr,#0b000h movx dptr,a ret3、print子程序print:mov a,70hsubb a,#30hmov dptr,#tabled movc a,a+dptr mov dptr,#0b000h movx dptr,a mov a,71hsubb a,#30hmov dptr,#tabled movc a,a+dptr mov dptr,#0a000h movx dptr,a mov a,72hsubb a,#30hmov dptr,#tabled movc a,a+dptr mov dptr,#9000h movx dptr,a mov a,73hsubb a,#30hmov dptr,#tabled movc a,a+dptr mov dptr,#8000h movx dptr,arettabled:db 0c0h,0f9h,0a4h,0b0h, 99h,92h,82h,0f8h, 80h;0-8db 90h,88h, 83h,0c6h,0a1h,86h,8eh,0ffh,8ch;9a b,c,de fpdb 0bfh;424、顯示“ hell”子程序hell:mov a,#89hmov dptr,#0b000h movx dptr,a mov a,#86hmov dptr,#0a000h movx dptr,a mov a,#0c7hmov dptr,#9000hmovx dptr,a mov a,#0c7h mov dptr,#8000h movx dptr,a ret1、顯示” p232”lcall set232 mov 70h,#41h mov 71h,#32h mov 72h,#33h mov 73h,#32h lcall print lcall key ret2、顯示”“.mov 70h,#42hmov 71h,#42h mov 72h,#42h mov 73h,#42hlcall printret2.5.4實驗結(jié)果及分析共陽極數(shù)碼管0c0h,0f9h,0a4h,0b0h, 99h,92h,82h,0f8h, 80h ,90h, 88h, 83h,0c6h,0a1h,86h,8eh,0ffh, 8ch分別表示0-f2.5.5收獲及思考題回答1、編寫顯示整型變量功能子程序#include .#define uint unsigned int #define uchar unsigned char sbit dula=p26;sbit wela=p27; uint temp,b,s,g; uchar code table=0x3f,0x06,0x5b,0

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論