單片機(jī)實(shí)驗(yàn)(201510 打印)_第1頁
單片機(jī)實(shí)驗(yàn)(201510 打印)_第2頁
單片機(jī)實(shí)驗(yàn)(201510 打印)_第3頁
單片機(jī)實(shí)驗(yàn)(201510 打印)_第4頁
單片機(jī)實(shí)驗(yàn)(201510 打印)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)應(yīng)用技術(shù)實(shí)驗(yàn)指導(dǎo)書 文經(jīng)學(xué)院信息工程系2015-10實(shí)驗(yàn)要求1.實(shí)驗(yàn)前必須充分預(yù)習(xí),完成指定的預(yù)習(xí)任務(wù)。預(yù)習(xí)要求如下:1)認(rèn)真閱讀實(shí)驗(yàn)指導(dǎo)書,分析、掌握實(shí)驗(yàn)的要求,并進(jìn)行必要的估算。2)提前預(yù)習(xí)實(shí)驗(yàn)的內(nèi)容,熟悉實(shí)驗(yàn)任務(wù)。3)復(fù)習(xí)實(shí)驗(yàn)中所用各儀器的使用方法及注意事項(xiàng)。2.使用儀器和實(shí)驗(yàn)掛箱前必須了解其性能、操作方法及注意事項(xiàng),在使用時應(yīng)嚴(yán)格遵守。3.實(shí)驗(yàn)時接線要認(rèn)真,相互仔細(xì)檢查,確定無誤才能接通電源,初學(xué)或沒有把握應(yīng)經(jīng)指導(dǎo)教師審查同意后再接通電源。4.實(shí)驗(yàn)時應(yīng)注意觀察,若發(fā)現(xiàn)有破壞性異?,F(xiàn)象(例如有元件冒煙、發(fā)燙或有異味)應(yīng)立即關(guān)斷電源,保持現(xiàn)場,報(bào)告指導(dǎo)教師。找出原因、排除故障,經(jīng)指導(dǎo)

2、教師同意再繼續(xù)實(shí)驗(yàn)。5.實(shí)驗(yàn)過程中需要改接線時,應(yīng)關(guān)斷電源后才能拆、接線。6.實(shí)驗(yàn)過程中應(yīng)仔細(xì)觀察現(xiàn)象,認(rèn)真記錄實(shí)驗(yàn)結(jié)果。所記錄的實(shí)驗(yàn)結(jié)果經(jīng)指導(dǎo)教師審閱簽字后再拆除實(shí)驗(yàn)線路。7.實(shí)驗(yàn)結(jié)束后,必須關(guān)斷電源,并將儀器、設(shè)備、工具、導(dǎo)線等按規(guī)定整理。8.實(shí)驗(yàn)后每個同學(xué)必須按要求獨(dú)立完成實(shí)驗(yàn)報(bào)告。目錄實(shí)驗(yàn)一 實(shí)驗(yàn)設(shè)備的使用及LED控制1實(shí)驗(yàn)二 外中斷實(shí)驗(yàn)4實(shí)驗(yàn)三 定時器中斷實(shí)驗(yàn)6實(shí)驗(yàn)四 數(shù)碼管顯示實(shí)驗(yàn)8實(shí)驗(yàn)五 獨(dú)立按鍵實(shí)驗(yàn)10實(shí)驗(yàn)六 矩陣鍵盤實(shí)驗(yàn)12實(shí)驗(yàn)七 串口通信實(shí)驗(yàn)15實(shí)驗(yàn)八 數(shù)模轉(zhuǎn)換(DA)實(shí)驗(yàn)20實(shí)驗(yàn)日期_ 班級_ 指導(dǎo)老師_姓 名_ 學(xué)號_ 得分_實(shí)驗(yàn)一 實(shí)驗(yàn)設(shè)備的使用及LED控制1、實(shí)驗(yàn)?zāi)?/p>

3、的:(1)學(xué)會實(shí)驗(yàn)平臺的使用方法(2)掌握LED的控制方法2、設(shè)備使用注意事項(xiàng):插拔導(dǎo)線的時候一定要斷電,否則有可能會燒壞芯片。導(dǎo)線不能放到開發(fā)箱上。下課時請將計(jì)算機(jī)安全關(guān)機(jī),實(shí)驗(yàn)設(shè)備斷電,將用過的導(dǎo)線拔下,整理好放在實(shí)驗(yàn)箱里面。箱子里的撥碼開關(guān),請不要任意撥動,會影響程序的運(yùn)行結(jié)果。請勿將水杯等物品放在試驗(yàn)臺附近,防止水泄漏造成短路燒壞設(shè)備。開機(jī)后,LED的上有閃爍顯示P、 則為正常狀態(tài)。如果不正常,請按下RESET鍵復(fù)位。復(fù)位后還不正常,請檢查設(shè)置。如果設(shè)置沒問題,則系統(tǒng)故障,請停止工作。3、各個功能部分引腳說明:邏輯電平開關(guān)電路:K1-K10 是由開關(guān)引出的,當(dāng)開關(guān)向上撥時,引腳輸出高電

4、平、向下?lián)軙r,引腳輸出低電平。發(fā)光二極管:輸入端是L1-L12,分別對應(yīng)12個發(fā)光管,輸入高電平1時,發(fā)光管亮。單脈沖發(fā)生電路:按一次AN鍵,在插孔上分別輸出一個正脈沖SP和負(fù)脈沖/SP。每個芯片的引腳都引出到附近的插孔上,如果要進(jìn)行芯片引腳之間的電氣連接,只需要用導(dǎo)線連接相應(yīng)的插孔即可。撥碼開關(guān)的默認(rèn)位置:開關(guān)SK1 1-5置ON,6-10置OFF。SK2 置ON,SK3 全部ON,SK4全部OFF,臥式開關(guān)KBB在51、96位置,立式開關(guān)KBB1在51、88位置,DL1-DL4的1、2相連。如果您的系統(tǒng)出現(xiàn)串口不能通訊問題,請先檢查上述設(shè)置是否正確。鍵盤布置:本系統(tǒng)中有32個按鍵,左邊16

5、個為數(shù)字鍵,再鍵上“-”上面表示工作寄存器,下面表示十六進(jìn)制數(shù)字?;蛘哂行┦枪δ苕I。例如數(shù)字0 上面的R0表示R0寄存器。PCH、PCL分別表示程序計(jì)數(shù)器PC的高8位和 低8位。PCDBG是與上位機(jī)通訊調(diào)試鍵。4、軟件部分:需要使用的軟件環(huán)境在桌面的“單片機(jī)-DVCC實(shí)驗(yàn)系統(tǒng)”。整個軟件可以替代keil的功能??梢酝ㄟ^窗口工具欄左邊的下拉框選定要做的實(shí)驗(yàn)名稱,對應(yīng)有實(shí)驗(yàn)的目的、原理、內(nèi)容和程序。如果需要知道芯片的功能,則在“芯片”工具欄里選擇芯片型號即可。5、系統(tǒng)工作方式:通過RS232接口,在上位機(jī)軟件的支持下,實(shí)現(xiàn)用戶程序的編輯、編譯、調(diào)試運(yùn)行。6、程序編寫調(diào)試的過程:運(yùn)行DVCC軟件新建

6、(*.c):請注意,文件名稱不應(yīng)出現(xiàn)中文字符。后綴名必須為.c。 編譯:選擇如圖“編譯”按鈕,生成*.obj文件鏈接形成絕對目標(biāo)文件(*.abs),可以傳送到試驗(yàn)系統(tǒng)的仿真RAM區(qū),使用“調(diào)試”按鈕可以完成。如果經(jīng)過調(diào)試成功后,需要將程序代碼通過編程器下載到EPROM中獨(dú)立運(yùn)行,則需要生成.Hex文件才能下載。(選項(xiàng)菜單連接選項(xiàng)RL51 選擇生成hex文件。)如果程序不正確,請修改*.c文件,并重復(fù)使用3、4步驟。注意:1)每次要連接、編譯、調(diào)試之前請選中程序窗口的標(biāo)題欄,使程序窗口為當(dāng)前活動窗口,(標(biāo)題欄顯示為藍(lán)色高亮狀態(tài),如果編譯、調(diào)試等按鈕呈現(xiàn)灰色不可用狀態(tài),則需要重新點(diǎn)擊程序窗口標(biāo)題欄

7、,使其變?yōu)楫?dāng)前窗口)。編譯完之后,message窗口會顯示No Errors Found。2)調(diào)試時,首先需要連接PC和實(shí)驗(yàn)箱上的串口連接線(注意盡量不要帶電插拔串口線),實(shí)驗(yàn)箱開機(jī),數(shù)碼管顯示 P. ,按下RESET鍵和PCDBG鍵進(jìn)入調(diào)試狀態(tài),-點(diǎn)擊“調(diào)試”按鈕,該按鈕的作用是連接PC和實(shí)驗(yàn)平臺,并將程序下載到實(shí)驗(yàn)箱上??梢赃x擇單步調(diào)試或者連續(xù)運(yùn)行。第一個單步的作用是遇到子程序可以跟蹤到子程序內(nèi)部的單步運(yùn)行第二個單步是只跟蹤主程序,遇到子程序不進(jìn)入跟蹤。兩個運(yùn)行:第一個運(yùn)行:運(yùn)行到當(dāng)前行。即運(yùn)行到光標(biāo)所在的行第二個運(yùn)行:連續(xù)運(yùn)行斷點(diǎn):如果碰到有問題的程序指令或者要跟蹤的指令可以設(shè)置斷點(diǎn),程

8、序連續(xù)運(yùn)行到斷點(diǎn)之后就自動會停止在斷點(diǎn)處??梢酝ㄟ^在斷點(diǎn)的位置查看寄存器 或者存儲單元的值來獲取此時的狀態(tài),從而排除問題。3)在PC機(jī)的窗口中會顯示調(diào)試所用的寄存器窗口、數(shù)據(jù)窗口、代碼數(shù)據(jù)窗口、信息窗口等,找到相應(yīng)的存儲器地址或寄存器可以觀察調(diào)試試驗(yàn)結(jié)果。反匯編窗口中,綠色箭頭指示的位置是當(dāng)前程序運(yùn)行到的RAM區(qū)地址,和經(jīng)過反匯編的程序。即顯示每一條指令翻譯成二進(jìn)制代碼時的情況。數(shù)據(jù)窗口中可以查看RAM區(qū)任意地址的內(nèi)容值。例如要查看2000H單元的內(nèi)容,只需要用方向鍵調(diào)整地址到2000開始的地址單元,橫行上顯示的數(shù)據(jù)就是2000-2007H地址的內(nèi)容,一共8個字節(jié)。寄存器和標(biāo)志位窗口可以查看寄

9、存器的內(nèi)容。7、使用下面的例子熟悉環(huán)境。#include#define uint unsigned intvoid delayms(uint x) /延時(若干毫秒)子函數(shù)uint i,j;for(i=x;i0;i-)for(j=110;j0;j-);void main() while(1) / 大循環(huán) P10=0; /燈滅 delayms(500); /延時500ms P10=1; /燈亮 delayms(500); /延時500ms 8、作業(yè):(1) 控制2個或2個以上小燈的亮滅。(2) 讓P1口控制8個小燈循環(huán)亮滅,用_crol_或_cror_進(jìn)行循環(huán)左移或循環(huán)右移,需要在之前加#inc

10、lude頭文件,因?yàn)開crol_或_cror_函數(shù)包含在這個頭文件里。(3)嘗試設(shè)計(jì)出流水燈程序。9. 思考題:頭文件的作用是什么?中都定義了什么內(nèi)容?實(shí)驗(yàn)日期_ 班級_ 指導(dǎo)老師_姓 名_ 學(xué)號_ 得分_實(shí)驗(yàn)二 外中斷實(shí)驗(yàn)1. 實(shí)驗(yàn)?zāi)康模海?)掌握外部中斷初始化和中斷服務(wù)程序的編寫方法。(2)掌握查詢法和中斷服務(wù)程序法的編寫方法。2. 實(shí)驗(yàn)內(nèi)容:每次按鍵,使發(fā)光二極管改變一次亮滅狀態(tài)。 3. 連接步驟:按鍵使用/Sp脈沖實(shí)現(xiàn)。每一次按鍵,使燈D1在亮滅之間切換。(1)將P3.2引腳和/SP連接(2)將P1.0引腳和D1連接。D1是共陰極的發(fā)光管,所以P1.0給出高電平,則D1會點(diǎn)亮。4. 程

11、序代碼要求分別使用查詢方法和中斷服務(wù)程序方法編寫程序。使用中斷服務(wù)程序法的源代碼:sbit led=P10;void main()IT0=1;EA=1;EX0=1;while(1);/等待中斷void int0() interrupt 0 /中斷服務(wù)程序led=led;5. 作業(yè):請使用查詢方法編程,實(shí)現(xiàn)該題目。6. 思考:使用外中斷時,將IT0設(shè)置為0 和設(shè)置為1時有什么不同?進(jìn)行實(shí)驗(yàn)測試一下。 實(shí)驗(yàn)日期_ 班級_ 指導(dǎo)老師_姓 名_ 學(xué)號_ 得分_實(shí)驗(yàn)三 定時器中斷實(shí)驗(yàn)1. 實(shí)驗(yàn)?zāi)康模海?)學(xué)習(xí)MCS-51單片機(jī)定時器T0、T1的使用方法。(2)掌握查詢法和中斷服務(wù)程序法的編寫方法。(3)

12、掌握定時器初值的計(jì)算方法。2. 實(shí)驗(yàn)內(nèi)容:利用定時器產(chǎn)生1KHz頻率的聲音。3. 基本原理(1)原理圖:(2)讓喇叭發(fā)出某個音符的方法不同的音符對應(yīng)不同的頻率。所以只要用不同頻率的信號驅(qū)動喇叭,就能發(fā)出不同的音符了。所以轉(zhuǎn)換為使用定時器在P1.7引腳輸出某一頻率的方波脈沖即可。如果知道了一個音符的頻率后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?例如:某個音的頻率f = 1k Hz,也就是使P1.7引腳上產(chǎn)生1kHz頻率的方波。需要使用定時器定時來完成。周期為:T = 1/ f = 1/1k =1ms,所以可以使用定時器方式1,每定時0.5ms就中斷一次,中斷服務(wù)程序中使P1.7引腳取反即可。使用定時

13、器方式1,晶振頻率12Mhz,產(chǎn)生0.5ms的定時時間,那么定時器初值可以如下計(jì)算:或者 同樣的方法,可以計(jì)算出其它頻率信號的定時初值。(3) 對定時器T0初始化,使用定時方式1,(TMOD、IE、TH0、TL0、TCON等的設(shè)置)TMOD=0x01;EA=1; ET0=1; TH0=(65536-500)/256; TL0=(65536-500)%256; TR0=1;(4) 定時器中斷服務(wù)程序void timer0() interrupt 1TH0=(65536-500)/256;TL0=(65536-500)%256; / 重新賦值,對于方式1,必須重新賦值 fmq=fmq;注意:題目中

14、,只要主程序不結(jié)束,定時器中斷就會繼續(xù),所以一直是發(fā)出該聲音。如果,讓主程序結(jié)束,才會發(fā)出短暫的 該聲音后結(jié)束。那就需要延時,不能讓主程序結(jié)束太早。(5)如果想實(shí)現(xiàn) 響停-響- 停這個過程,可以如下處理:while(1) TR0=1;delayms(500);TR0=0;delayms(500); 4. 作業(yè):(1)試用查詢法實(shí)現(xiàn)上面實(shí)驗(yàn)。(2)改變聲音頻率,試著寫出定時器初值。(3)改用定時器1實(shí)現(xiàn)上面實(shí)驗(yàn)。5、思考題:定時器方式2最長的定時時間是多少?如果用定時器方式2,可不可以實(shí)現(xiàn)1KHz頻率的聲音?為什么?實(shí)驗(yàn)日期_ 班級_ 指導(dǎo)老師_姓 名_ 學(xué)號_ 得分_實(shí)驗(yàn)四 數(shù)碼管顯示實(shí)驗(yàn)1.

15、 實(shí)驗(yàn)?zāi)康模海?)學(xué)習(xí)8155可編程并行接口芯片的使用方法。(2)學(xué)習(xí)數(shù)碼管靜態(tài)顯示的方法。2. 實(shí)驗(yàn)內(nèi)容:驅(qū)動數(shù)碼管依次顯示0-9等數(shù)值。3. 內(nèi)容簡介:(1)該系統(tǒng)中LED為共陽極連接,如圖2-1所示。 圖5-1所以,在該LED上顯示0-9的段碼值表為:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90。(2)8155是鍵盤顯示接口器件,其各個端口地址如下:8155控制口地址:FF20H,8155 A口地址:FF21H(字位),8155 B口地址:FF22H(字形)。接口電路圖如圖2-2所示:圖5-24. 程序代碼(1)8155作為外部擴(kuò)展內(nèi)

16、存,為了直接訪問外部擴(kuò)展內(nèi)存,需添加頭文件,這樣可非常方便地通過XBYTEindex讀寫擴(kuò)展內(nèi)存,整個擴(kuò)展內(nèi)存可看成一個龐大的字節(jié)數(shù)組,XBYTE就是這個字節(jié)數(shù)組的數(shù)組名稱,或者是整個空間的首字節(jié)地址,index則是數(shù)組索引。以下是本實(shí)驗(yàn)PA,PB及命令端口的定義:#define COM XBYTE0XFF20#define PA XBYTE0XFF21#define PB XBYTE0XFF22從圖2-2可以看成,PA口控制數(shù)碼管的位選,PB口作為數(shù)碼管的段選口。如果想讓所有數(shù)碼管都顯示0,則PA=0x3f;PB=0xc0;5. 作業(yè):(1)試著讓其中某一個數(shù)碼管單獨(dú)顯示某一數(shù)字。(2)讓所

17、有數(shù)碼管循環(huán)從0-9顯示,間隔大約500ms。6. 思考:共陽極和共陰極數(shù)碼管的工作原理有什么區(qū)別? 實(shí)驗(yàn)日期_ 班級_ 指導(dǎo)老師_姓 名_ 學(xué)號_ 得分_實(shí)驗(yàn)五 獨(dú)立按鍵實(shí)驗(yàn)1實(shí)驗(yàn)?zāi)康模?)掌握用proteus軟件仿真的方法。(2)掌握keil4的編程方法。(3)掌握獨(dú)立按鍵消抖方法。2. 實(shí)驗(yàn)內(nèi)容(1)利用proteus畫出如圖6-1所示電路圖。圖6-1實(shí)驗(yàn)要求:實(shí)現(xiàn)按一下按鍵,LED燈亮,再按一下按鍵,LED燈滅。注意寫按鍵程序時要進(jìn)行消抖動。消抖程序:if(key=0)delay(10);if(key=0)led=1;(2)實(shí)現(xiàn)按鍵加1功能利用proteus畫出如圖6-2所示電路圖。圖

18、6-2實(shí)驗(yàn)要求:A: 共陽極數(shù)碼管開始顯示0,每按一次按鍵,數(shù)碼管加1,實(shí)現(xiàn)從0-F循環(huán)加1。 B: 按鍵按下時數(shù)碼管加1,松手后不加1;C:按鍵按下時數(shù)碼管不加1,松手后加1。B和C的實(shí)現(xiàn)主要是 “while(!K1); ”語句的有無和加在合適的語句位置。3、附:共陽極數(shù)碼管的字形顯示代碼,0-F代碼:0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E4. 思考題(1)簡述按鍵消抖的方法?(2)簡述圖6-2中三極管的作用? 實(shí)驗(yàn)日期_ 班級_ 指導(dǎo)老師_姓 名_ 學(xué)號_ 得分_實(shí)驗(yàn)六

19、矩陣鍵盤實(shí)驗(yàn)1實(shí)驗(yàn)?zāi)康模?)掌握用proteus軟件仿真的方法。(2)掌握keil4的編程方法。(3)掌握矩陣鍵盤的原理,數(shù)碼管顯示原理。2. 實(shí)驗(yàn)內(nèi)容 (1)P2口為44矩陣鍵盤輸入口。 (2)P1口連接一個共陽極(CA)數(shù)碼管,編寫程序,當(dāng)從左往右按第一行按鍵時,依次顯示03,當(dāng)按第二行按鍵時,依次顯示47,當(dāng)按第三行按鍵時,依次顯示8,9,a,b,當(dāng)按第四行按鍵時,依次顯示c,d,e,f。電路圖如圖3-1所示。圖7-1 proteus仿真電路圖3. 矩陣鍵盤掃描原理先掃描第一行,即把第一行拉低,也就相當(dāng)于把第一行的四個按鍵的左側(cè)接地,如果這四個按鍵中某一個被按下,則根據(jù)線與的關(guān)系,按鍵右

20、側(cè)被拉低,即所連接的列位呈現(xiàn)低電平。例如,先給第一行拉低,即P2=0xfe,如果第一個按鍵被按下,則第一個按鍵右側(cè)的連線電平為低,即P2.4口呈現(xiàn)低電平,現(xiàn)在讀回的P2=0xee。同理,如果第二個按鍵被按下,則P2=0xde,依次讀出P2的值。然后掃描第二行,第三行,第四行,原理同上。4. 注意事項(xiàng)(1) 按鍵去抖動(2) 利用延時去抖(下面源程序中有)while(temp!=0xf0)delayms(5);while(temp!=0xf0) 5. 源程序:(1) 共陽極代碼:uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x

21、80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;(2) 數(shù)碼管顯示子程序:void display(uchar num)P1=tablenum;wela=1;delayms(5);(3) 鍵盤掃描子程序:void matrixkeyscan()uchar temp,key;P2=0xfe;temp=P2;temp=temp&0xf0;while(temp!=0xf0)delayms(5);while(temp!=0xf0)temp=P2;switch(temp)case 0xee:key=0;break;case 0xde:key=1;break;case 0xbe

22、:key=2;break;case 0x7e:key=3;break;while(temp!=0xf0)temp=P2;temp=temp&0xf0; display(key);/第二行,第三行,第四行類同,請自己寫。6.作業(yè):將該例子中的矩陣按鍵改成為4個獨(dú)立按鍵,按每個鍵時分別讓數(shù)碼管顯示03。7. 思考題(1)當(dāng)按鍵多于8個時,為什么用矩陣鍵盤比獨(dú)立按鍵好?(2)常用的鍵盤掃描方式有哪些? 實(shí)驗(yàn)日期_ 班級_ 指導(dǎo)老師_姓 名_ 學(xué)號_ 得分_實(shí)驗(yàn)七 串口通信實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康模?、掌握串行口方式0(同步移位寄存器方式)工作方式及編程方法。2、掌握利用串行口擴(kuò)展并口的方法。3、掌握串口方式

23、1工作方式及利用方式2進(jìn)行雙機(jī)通信。二、實(shí)驗(yàn)內(nèi)容利用8051的串行口和串行輸入、并行輸出移位寄存器74LS164,擴(kuò)展兩個8位輸出通道,用于驅(qū)動2個數(shù)碼顯示管,在數(shù)碼管上循環(huán)顯示0-99數(shù)字。三、實(shí)驗(yàn)原理:74LS164是一個串行輸入并行輸出的移位寄存器。并帶有清除端。其中: Q0Q7 并行輸出端 。 A,B串行輸入端, MR 清除端, 為0時,輸出清零。 CLK 時鐘輸入端。 這里使用串行口的方式0:8位同步移位寄存器方式,波特率為fosc/12。數(shù)據(jù)從RxD端發(fā)出,TxD端發(fā)出同步脈沖。共陰極的LED。四、實(shí)驗(yàn)步驟 將S/P區(qū) DATA插孔接BUS 3區(qū) P3.0(RXD)插孔。 將S/P

24、區(qū) CLK插孔接BUS 3區(qū) P3.1(TXD)插孔。 將S/P區(qū) CLR插孔接DMP區(qū) /SP插孔,上電時對164復(fù)位。五、程序代碼(參考)#include#define uchar unsigned char#define uint unsigned intvoid main()uint c=0xfc;SCON=0x00;/串口模式0SBUF=c;while(!TI);TI=0;while(1);六、單片機(jī)雙機(jī)通信(proteus仿真)1、實(shí)驗(yàn)要求:單片機(jī)甲的P2口連接44矩陣鍵盤,單片機(jī)乙P1口連接共陽極數(shù)碼管,兩機(jī)通過串口通信,當(dāng)甲機(jī)按鍵時,在乙機(jī)的數(shù)碼管上分別顯示1F。(如下圖所示)

25、2、實(shí)驗(yàn)連接圖 3、程序注:甲機(jī)和乙機(jī)要分別單獨(dú)寫程序。(1)甲機(jī)程序:#include#define uchar unsigned char#define uint unsigned intvoid delayms(uint x)uint i,j;for(i=x;i0;i-)for(j=110;j0;j-);void send(uchar key_num)SBUF=key_num;while(!TI);TI=0;void matrixkeyscan()uchar temp,key;P2=0xfe;temp=P2;temp=temp&0xf0;while(temp!=0xf0)delayms(

26、5);while(temp!=0xf0)temp=P2;switch(temp)case 0xee:key=0;break;case 0xde:key=1;break;case 0xbe:key=2;break;case 0x7e:key=3;break;while(temp!=0xf0)/松手檢測,即松手才顯示,如果沒有這句,則一按就顯示。temp=P2;temp=temp&0xf0;send(key);第二行,第三行和第四行鍵盤掃描程序自己寫!void main()TMOD=0x20;/定時器1方式2TH1=0xfd;TL1=0xfd;TR1=1;SM0=0;SM1=1;EA=1;ES=1

27、;while(1) matrixkeyscan();(1) 乙機(jī)程序:#include#define uchar unsigned char#define uint unsigned intsbit wela=P36;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/共陽極數(shù)碼管段碼void delayms(uint x)uint i,j;for(i=x;i0;i-)for(j=110;j0;j-); void display(uchar num)P

28、1=tablenum;wela=1;delayms(5);void main()TMOD=0x20;/T1工作于方式2TH1=0xfd;TL1=0xfd;TR1=1;SM0=0;SM1=1;REN=1;/一定寫在后面!或者用SCON=0x50,串口方式1EA=1;ES=1;while(1);void ser() interrupt 4 /采用串口中斷方式uchar a;RI=0;a=SBUF;display(a);七、思考題1、 74LS164的工作原理是什么?2、 串口方式0發(fā)送的原理是什么?實(shí)驗(yàn)日期_ 班級_ 指導(dǎo)老師_姓 名_ 學(xué)號_ 得分_實(shí)驗(yàn)八 數(shù)模轉(zhuǎn)換(DA)實(shí)驗(yàn)1. 實(shí)驗(yàn)?zāi)康模海?/p>

29、1)掌握dac0832芯片的使用方法。(2)掌握利用dac0832產(chǎn)生各種波形的方法。(3)學(xué)會使用proteus中的示波器,能夠觀察到各種波形。2. 實(shí)驗(yàn)內(nèi)容:四個按鍵對應(yīng)產(chǎn)生四種波形,用示波器分別顯示出這四種波形。原理圖如圖7-1所示。dac0832的原理請參見教材。圖4-1 dac0832產(chǎn)生各種波形圖3. 連接步驟:(1)將P2口的低四位分別連接4個按鍵。(2)P1口為初始數(shù)字信號,其8個引腳與dac0832的8個數(shù)據(jù)口相連接。dac0832的輸出口連接一個運(yùn)算放大器,運(yùn)算放大器的輸出連接示波器。(3)程序運(yùn)行后,按第一個按鍵,然后在示波器上右鍵,選擇”Digital Oscilloscope”,系統(tǒng)彈出示波器界面。如圖7-2所

溫馨提示

  • 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

提交評論