微機(jī)原理第二次實(shí)驗(yàn)報(bào)告-董東啟_第1頁(yè)
微機(jī)原理第二次實(shí)驗(yàn)報(bào)告-董東啟_第2頁(yè)
微機(jī)原理第二次實(shí)驗(yàn)報(bào)告-董東啟_第3頁(yè)
微機(jī)原理第二次實(shí)驗(yàn)報(bào)告-董東啟_第4頁(yè)
微機(jī)原理第二次實(shí)驗(yàn)報(bào)告-董東啟_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)二 定時(shí)器實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康呐c要求利用定時(shí)器控制產(chǎn)生占空比可變的PWM波,通過(guò)實(shí)驗(yàn)驗(yàn)證進(jìn)一步加強(qiáng)對(duì)定時(shí)器功能的認(rèn)識(shí),掌握定時(shí)器的使用方法。1、用P1.0口輸出PWM波,利用按鍵控制占空比的增加和降低,用示波器查看P1.0口的輸出波形。2、引導(dǎo)學(xué)生進(jìn)行利用現(xiàn)有程序演示定時(shí)器動(dòng)態(tài)顯示數(shù)碼管實(shí)驗(yàn),了解數(shù)碼管動(dòng)態(tài)掃描方式。二、 實(shí)驗(yàn)注意事項(xiàng)1、啟動(dòng)KEIL軟件,選擇菜單“工程新建工程”以建立工程(擴(kuò)展名為.uv2,如T2a.uv2)。2、選擇菜單“文件新文件”以建立一個(gè)新的文本編輯窗口,在窗口中輸入?yún)⒖荚闯绦?并保存(擴(kuò)展名為.asm),如test2a.asm,然后將其加

2、入到源程序組1中。3、在工程菜單的選項(xiàng)“目標(biāo)1屬性”中設(shè)置相應(yīng)的選項(xiàng),包括“輸出產(chǎn)生hex文件”選項(xiàng)以便匯編生成HEX代碼供編程器使用,在“調(diào)試使用KeilMonitor-51 Driver”的設(shè)置中選擇相應(yīng)的串口號(hào)。4、使用“工程”中的“編譯全部文件”完成相應(yīng)的文件編譯,如果程序格式正確將生成相應(yīng)HEX代碼文件,如T2a.hex。如果提示有編譯錯(cuò)誤請(qǐng)自行修改源程序然后再重新編譯。5、用單根連線(xiàn)將P1.0(JP44)連接到8路指示燈部分(JP32)的LED0,將P1.6、P1.7(JP44)分別連接到JP37的K01、K02。6、完成仿真器與計(jì)算機(jī)之間的連線(xiàn)并通電。7、在KEIL軟件中啟動(dòng)“調(diào)

3、試開(kāi)啟仿真模式”,然后用“運(yùn)行”命令實(shí)現(xiàn)全速運(yùn)行的仿真。8、觀(guān)察實(shí)驗(yàn)現(xiàn)象并分別依次按下K01、K02,觀(guān)察并記錄實(shí)驗(yàn)現(xiàn)象然后在KEIL軟件中啟動(dòng)“中斷運(yùn)行調(diào)試(debug)關(guān)閉仿真模式”退出仿真,選擇 “工程關(guān)閉工程”可關(guān)閉當(dāng)前工程。9、參考步驟14完成參考源程序2的建立與輸入,如新項(xiàng)目T2b.uv2和新的源程序test2b.asm,完成編譯與仿真設(shè)置。10、用8PIN連線(xiàn)將P0口連接到數(shù)碼管數(shù)據(jù)輸入端,P2口連接到數(shù)碼管控制端。11、輸入程序并仿真運(yùn)行,注意數(shù)碼管的顯示內(nèi)容。12、根據(jù)參考源程序1和參考源程序2進(jìn)行思考、修改和拓展,自行設(shè)計(jì)程序目標(biāo)并編程驗(yàn)證。13、本次實(shí)驗(yàn)主要連線(xiàn)如圖三、

4、實(shí)驗(yàn)內(nèi)容1. 利用定時(shí)器控制產(chǎn)生占空比可變的 PWM 波,通過(guò)按K01可PWMH值增加,則占空比增加,LED 燈漸暗。按K2,PWM值減小,則占空比減少,LED 燈漸亮。PWMH DATA 40H ;高電平脈沖的個(gè)數(shù)PWM DATA 41H ;PWM周期COUNTER DATA 42H;TEMP DATA 43HOUTPWMEQU P1.0;PWM波輸出引腳OUTPWMbEQU P1.1;PWM波輸出引腳b,用于外接示波器探頭INCKEY EQU P1.6 ;K01, PWMH值增加鍵。 DECKEY EQU P1.7;K02, PWMH值減小鍵。ORG 0000HAJMP MAINORG 0

5、00BHAJMP INTT0ORG 0100HMAIN:MOV SP,#60H;給堆棧指針賦初值MOV PWMH,#0bH ;賦初值MOV COUNTER,#01HMOV PWM, #15HMOV TMOD, #02H;定時(shí)器0在模式2下工作 MOV TL0, #38H; 每200s產(chǎn)生一次溢出MOV TH0, #38H;自動(dòng)重裝初值SETB ET0;使能定時(shí)器0中斷SETB EA ;使能總中斷SETB TR0;開(kāi)始計(jì)時(shí)KSCAN:SETB INCKEY;端口輸入狀態(tài),掃描按鍵SETB DECKEYJNB INCKEY,K1CHECK;掃描K01,如果按下跳轉(zhuǎn)到KEY1處理程序JNB DECK

6、EY,K2CHECK;掃描K02,如果按下跳轉(zhuǎn)到KEY2處理程序SJMP KSCANK1CHECK: JB INCKEY,K1HANDLE;若按下K01后釋放,跳轉(zhuǎn)到KEY1處理程序,可考慮加延時(shí)去抖動(dòng)程序SJMP K1CHECKK1HANDLE:MOV A,PWMH;CJNE A,PWM,K1H0;判斷是否到達(dá)上邊界SJMP KSCAN;是,則不進(jìn)行任何操作K1H0:MOV A,PWMHINC ACJNE A,PWM,K1H1;如果在加1后到達(dá)最大值CLR TR0;定時(shí)器停止SETB OUTPWM;置輸出為高電平SETB OUTPWMbSJMP K1H2K1H1: CJNE A,#02H,K

7、1H2;如果加1后到達(dá)下邊界SETB TR0;重開(kāi)定時(shí)器K1H2: INC PWMH;增加占空比SJMP KSCANK2CHECK: JB DECKEY,K2HANDLE;若按下K02后釋放,跳轉(zhuǎn)到KEY1處理程序,可考慮加延時(shí)去抖動(dòng)程序SJMP K2CHECKK2HANDLE: MOV A,PWMH;CJNE A,#01H,K2H0;判斷是否到達(dá)下邊界,是,則不進(jìn)行任何操作SJMP KSCAN;K2H0:MOV A,PWMH;MOV TEMP,PWMDEC ACJNE A,#01H,K2H1;如果在減1后到達(dá)下邊界CLR TR0;定時(shí)器停止CLR OUTPWM;輸出為低電平CLR OUTPW

8、MbSJMPK2H2K2H1:DEC TEMP;CJNE A,TEMP,K2H2;如果到達(dá)上邊界SETB TR0;啟動(dòng)定時(shí)器K2H2:DEC PWMHSJMP KSCAN;降低占空比INTT0:PUSH PSW PUSH ACCINC COUNTERMOV A,COUNTERCJNE A,PWMH,INTT01CLR OUTPWMCLR OUTPWMbINTT01:CJNE A,PWM,INTT02MOV COUNTER,#01HSETB OUTPWMSETB OUTPWMbINTT02:POPACCPOP PSWRETIEND實(shí)驗(yàn)現(xiàn)象記錄:(1)、每按一次K01,LED燈亮度變暗一些,同時(shí)示

9、波器上顯示負(fù)脈寬減少;每按一次K02,LED燈亮度變亮一些,同時(shí)示波器上顯示負(fù)脈寬增加。在連續(xù)按下K02的過(guò)程中,LED燈逐漸變亮至最亮,同時(shí)示波器上的波形和各參數(shù)變化如以下圖形所示:初始狀態(tài):正占空比50%,正負(fù)脈寬各占一半。K02作用1次,負(fù)脈寬變大,led燈變亮。K02作用第2次,負(fù)脈寬繼續(xù)變大,led燈繼續(xù)變亮。這符合預(yù)期現(xiàn)象。(2)、連續(xù)按下K01時(shí),負(fù)脈寬逐漸變小,LED燈亮度逐漸變暗,同時(shí)示波器上的波形和各參數(shù)變化如圖所示:初始狀態(tài):正占空比50%,正負(fù)脈寬相等。K01作用一次,負(fù)脈寬減少,正脈寬增加,led燈變暗。K01作用多次,負(fù)脈寬繼續(xù)減少,正脈寬繼續(xù)增加,led燈繼續(xù)變暗

10、。符合實(shí)驗(yàn)預(yù)期現(xiàn)象。實(shí)驗(yàn)現(xiàn)象分析:由實(shí)驗(yàn)代碼可知,定時(shí)周期有20個(gè),每按下一次K01,增加一個(gè)正占空比即增加5%的正占空比;每按下一次K02,增加一個(gè)負(fù)占空比即增加5%的負(fù)占空比。當(dāng)正占空比到100%或負(fù)占空比到100%時(shí),跳到正占空比到0%或負(fù)占空比到0%的狀態(tài),一直循環(huán)下去。K01作用次數(shù)負(fù)脈寬占空比負(fù)脈寬K02作用次數(shù)正脈寬占空比正脈寬050%1.085050%1.085145%0.9765155%1.1935240%0.868260%1.302335%0.7595365%1.4105430%0.651470%1.519525%0.5425575%1.6275620%0.434680%1

11、.736715%0.3255785%1.8445810%0.217890%1.95395%0.1085995%2.06152. 數(shù)碼管顯示演示程序: 在8個(gè)LED數(shù)碼管上依次顯示1,2,3,4,5,6,7,8。引用端口:數(shù)碼管數(shù)據(jù)p0,數(shù)碼管控制p2;參考程序如下;DIS_DIGIT EQU 40H;位選通值, 傳送到P2口用于選通當(dāng)前數(shù)碼管的數(shù)值,; 如等于0xfe時(shí), 選通P2.0口數(shù)碼管DIS_INDEX DATA 41H;顯示索引, 用于標(biāo)識(shí)當(dāng)前顯示的數(shù)碼管和緩沖區(qū)的偏移量DIS_BUF DATA 50H;顯于緩沖區(qū)起始地址ORG 0000HAJMP MAINORG 000BHAJMP

12、 INTT0ORG 0100HMAIN:MOV P0,#0FFH; 初始化I/O口MOV P2,#0FFHMOV TMOD, #02H;定時(shí)器0在模式2下工作 MOV TL0, #38H; 每200s產(chǎn)生一次溢出MOV TH0, #38H;自動(dòng)重裝初值SETB ET0 ;使能定時(shí)器0中斷SETB EA ;使能總中斷MOVDPTR, #DIS_CODE; 設(shè)定顯示初值為18MOVA,#1;初值為1,以后順序加1MOVC A,A+DPTRMOV DIS_BUF,AMOVA,#2MOVCA,A+DPTRMOV DIS_BUF+01H,AMOVA,#3MOVCA,A+DPTRMOV DIS_BUF+0

13、2H,AMOVA,#4MOVCA,A+DPTRMOV DIS_BUF+03H,AMOVA,#5MOVCA,A+DPTRMOV DIS_BUF+04H,AMOVA,#6MOVCA,A+DPTRMOV DIS_BUF+05H,AMOVA,#7MOVCA,A+DPTRMOV DIS_BUF+06H,AMOVA,#8MOVCA,A+DPTRMOV DIS_BUF+07H,ADISPLAY:MOV DIS_DIGIT,#0FEH; 初始從第一個(gè)數(shù)碼管開(kāi)始掃描MOV DIS_INDEX,#0SETB TR0; 啟動(dòng)定時(shí)器0,開(kāi)始動(dòng)態(tài)掃描顯示MAIN_LP:NOP; 主程序循環(huán),可增加其它代碼以改變50H5

14、7H中的值以改變顯示內(nèi)容SJMP MAIN_LP;=INTT0:; 定時(shí)器0中斷服程序, 用于數(shù)碼管的動(dòng)態(tài)掃描PUSH ACCPUSH PSWMOV P2,#0FFH; 先關(guān)閉所有數(shù)碼管MOV A,#DIS_BUF; 獲得顯示緩沖區(qū)基地址ADD A,DIS_INDEX; 獲得偏移量MOV R0,A; R0 = 基地址 + 偏移量MOV A,R0; 獲得顯示代碼MOV P0,A; 顯示代碼傳送到P0口MOV P2,DIS_DIGIT; MOVA,DIS_DIGIT; 位選通值左移, 下次中斷時(shí)選通下一位數(shù)碼管RLAMOVDIS_DIGIT,AINCDIS_INDEX; DIS_INDEX加1,

15、下次中斷時(shí)顯示下一位ANLDIS_INDEX,#0x07; 當(dāng)DIS_INDEX等于8(0000 1000B)時(shí), 清0POP PSWPOP ACCRETI DIS_CODE: DB 28h,7eh,0a2h,62h,74h,61h,21h,7ahDB 20h,60h,30h,25h,0a9h,26h,0a1h,0b1h;09和ABCDEF的數(shù)碼管顯示代碼END實(shí)驗(yàn)現(xiàn)象如圖所示:四、 思考題1. 試根據(jù)參考程序1中PWM波控制周期的大小進(jìn)行驗(yàn)算,調(diào)整定時(shí)時(shí)間初值并進(jìn)行調(diào)試驗(yàn)算,使PWM波控制周期為N ms(其中N值為學(xué)號(hào)的最后兩位數(shù)值,如恰好是00則取值為50)。答:我的學(xué)號(hào)最后兩位數(shù)字為14

16、,PWM波控制周期應(yīng)為14ms.由公式 (模數(shù)-初值)*(12/晶振)= T 得,(模數(shù)-初值)*(12/22.1184)= (14/20)*1000(模式-初值)=1283在模式2下能產(chǎn)生這個(gè)數(shù),修改部分代碼即可。所以修改部分的代碼如圖所示:將MAIN函數(shù)中的MOV PWM, #15H改成:MOV PWM, #82H其他代碼不變:實(shí)驗(yàn)現(xiàn)象如圖:周期剛好是14.00ms, 符合要求。2. 嘗試改變參考程序2的顯示內(nèi)容為學(xué)生自己的學(xué)號(hào)的后8位。答:因?yàn)?-9和ABCDEF的數(shù)碼管顯示已經(jīng)固定;所以直接改變程序中賦給變量A的直接數(shù)即可改變數(shù)碼管顯示的數(shù)字。改動(dòng)部分的程序如下:MOVA,#1MOVC A,A+DPTRMOV DIS_BUF,AMOVA,#5MOVCA,A+DPTRMOV DIS_BUF+01H,AMOVA,#1MOVCA,A+DPTRMOV DIS_BUF+02H,AMOVA,#2MOVCA,A+DPTRMOV DIS_BUF+03H,AMOVA,#4MOVCA,A+DPT

溫馨提示

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

評(píng)論

0/150

提交評(píng)論