基于單片機(jī)設(shè)計的頻率計
《基于單片機(jī)設(shè)計的頻率計》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)設(shè)計的頻率計(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、實(shí)驗(yàn)一 數(shù)據(jù)傳送程序 (2學(xué)時) 一、 實(shí)驗(yàn)?zāi)康? 1、掌握匯編語言設(shè)計和調(diào)試方法。 2、掌握DVCC實(shí)驗(yàn)系統(tǒng)的操作步驟。 二、 實(shí)驗(yàn)內(nèi)容 1、編程實(shí)現(xiàn),把7000H~70FFH單元的內(nèi)容清零。 2、編程實(shí)現(xiàn),把源地址為6000H開始的單元內(nèi)容,傳送到目的地址7000H開始的單元中,傳送個數(shù)為0FFFH個。 三、DVCC實(shí)驗(yàn)系統(tǒng)操作說明 1、 接通DVCC實(shí)驗(yàn)系統(tǒng)電源,在DVCC實(shí)驗(yàn)箱上應(yīng)顯示閃動的“P”,否則按Reset鍵。 2、 運(yùn)行DVCC軟件。(程序 DVCC598H實(shí)驗(yàn)系統(tǒng)
2、DVCC實(shí)驗(yàn)系統(tǒng)) 3、 單擊工具欄上“新建”或“打開”按鈕,編寫源程序?!螕簟熬幾g”按鈕,使其形成可執(zhí)行文件。 4、 單擊工具欄上“聯(lián)接”按鈕,同時按下DVCC實(shí)驗(yàn)箱上PCDBG鍵(鍵盤上最右邊第2個),實(shí)現(xiàn)PC機(jī)和實(shí)驗(yàn)箱的聯(lián)接。聯(lián)機(jī)成功,屏幕上出現(xiàn):.反匯編窗口、寄存器標(biāo)示位窗口。 5、 在成功聯(lián)機(jī)后,單擊工具欄上“調(diào)試”按鈕,把最終目標(biāo)文件裝載到實(shí)驗(yàn)系統(tǒng)RAM區(qū);或者通過單擊菜單欄中的“動態(tài)調(diào)試”,選擇“傳送(.EXE)文件”來實(shí)現(xiàn)。 6、 單擊工具欄上“運(yùn)行”或“單步”按鈕,運(yùn)行實(shí)驗(yàn)程序。 7、 單擊工具欄上“窗口”,選擇“顯示內(nèi)部數(shù)據(jù)窗口”或“顯示外部數(shù)據(jù)窗口”可顯示數(shù)據(jù)
3、窗口。鼠標(biāo)右擊數(shù)據(jù)窗口的數(shù)據(jù),可設(shè)置數(shù)據(jù)塊新地址;鼠標(biāo)左鍵單擊數(shù)據(jù),可修改數(shù)據(jù)數(shù)值。 8、 運(yùn)行完畢,先按實(shí)驗(yàn)箱上的復(fù)位按鈕Reset鍵,再按PCDBG鍵,并且點(diǎn)擊屏幕上OK,即可退出運(yùn)行狀態(tài)。 1、 實(shí)驗(yàn)內(nèi)容 把7000H~70FFH單元的內(nèi)容清零。 程序代碼: ORG 0000H AJMP START ORG 70H START: MOV P2, #70H ;送地址高8位到P2端口 MOV R0, #00H ;R0=00H,表地址低8位 CLR A ;將累加器A清0 LOOP: MOVX
4、 @R0, A ;將A送入以R0內(nèi)容為地址的外部RAM. INC R0 ;R0+1-->R0 CJNE R0,#00H,LOOP;比較條件轉(zhuǎn)移指令,若R0不等于0,則跳轉(zhuǎn)到LOOP AJMP $ ;暫停 END 2、 編程實(shí)現(xiàn),將源地址為6000H開始的單元,傳送到目的地址7000H開始的單元,傳送個數(shù)為0FFFH個。 程序代碼: ORG 0000H AJMP START ORG 50H START: MOV DPTR, #6000H MOV P2, #70H MOV R0,#
5、00H LOOP: MOVX A, @DPTR MOVX @R0, A INC DPTR INC R0 CJNE R0,#00H,LOOP;比較條件轉(zhuǎn)移,若R0不等于0,則程序循環(huán),執(zhí)行l(wèi)oop. INC P2 MOV R1,P2 CJNE R1,#80H,LOOP; 若R1不等與80h,則程序循環(huán)執(zhí)行l(wèi)oop. AJMP $ END 實(shí)驗(yàn)二 并行口實(shí)驗(yàn) (2學(xué)時) 一、實(shí)驗(yàn)?zāi)康?
6、 1、掌握P3口、P1口簡單使用。 2、學(xué)習(xí)延時程序的編寫和使用。 二、實(shí)驗(yàn)內(nèi)容 1、編寫程序用P1.0輸出1kHz和500Hz的音頻信號,以驅(qū)動揚(yáng)聲器作為報警信號。要求1kHz信號響100ms,500Hz信號響200ms,交替進(jìn)行。P1.7接一開關(guān),進(jìn)行控制。當(dāng)開關(guān)合上,報警信號響;當(dāng)開關(guān)斷開,報警信號停止。 (教材《單片機(jī)原理、接口及應(yīng)用——嵌入式系統(tǒng)技術(shù)基礎(chǔ)》 P75 例4-3) 2、P3口做輸入口,P1口做輸出口。P3.3外接一脈沖,P1.0~P1.7接的8個發(fā)光二極管L1—L8。編寫程序,使P3.3每輸入一個脈沖,P1口按16進(jìn)制加一方式逐次點(diǎn)亮發(fā)光二極管。 三、實(shí)
7、驗(yàn)說明 1、P1口是準(zhǔn)雙向口,它作為輸出口時與一般的雙向口使用方法相同,由準(zhǔn)雙向口結(jié)構(gòu)可知:當(dāng)P1口作為輸入口時,必須先對它置高電平,使內(nèi)部MOS管截止,因內(nèi)部上拉電阻是20KΩ—40KΩ,故不會對外部輸入產(chǎn)生影響。若不先對它置高,且原來是低電平,則MOS管導(dǎo)通,讀入的數(shù)據(jù)是不正確的。 2、延時程序的延時時間計算 如:延時程序 DELAY : MOV R6, #20 DELAY1: MOV R7, #80 DJNZ R7, $ DJNZ R
8、6, DELAY1 查表可知,MOV Rn,#data指令需要1個機(jī)器周期的時間,DJNZ Rn,rel指令需要2個機(jī)器周期時間。一個機(jī)器周期是由12個時鐘周期組成的,所以一個機(jī)器周期時間長度為12/6MHz。以上程序段的執(zhí)行時間為: [(80*2+1)*20+20*2+1]*12/6MHz 四、實(shí)驗(yàn)接線圖(實(shí)驗(yàn)內(nèi)容二接線圖) 五、實(shí)驗(yàn)內(nèi)容二參考程序框圖 ORG 00H BEG:SETB P1.7 JB P1.7, $ MOV R2,#100 DV:ACALL D500 ACALL D500 ACALL D5
9、00 ACALL D500 CPL P1.0 DJNZ R2,DV MOV R1,#100 DD:ACALL D500 ACALL D500 CPL P1.0 DJNZ R1,DD SJMP BEG D500:MOV R7,#125 ;延時500us(6Mhz) DJNZ R7,$ RET END 實(shí)驗(yàn)三 中斷實(shí)驗(yàn) (2學(xué)時) 一、實(shí)驗(yàn)?zāi)康? 1)掌握中斷程序的編程方法。 2)進(jìn)一步掌握P1、P3口的雙功能使用方法。 二、實(shí)驗(yàn)內(nèi)容 正常情況下,僅綠燈亮。有故障發(fā)生時,綠燈滅
10、,同時紅燈閃爍;故障排除后,撥上總開關(guān),恢復(fù)正常,綠燈亮,紅燈滅。 可由P1.0 控制綠燈的亮滅;P3.3 接外部中斷源,模擬故障發(fā)生;P1.1 控制紅燈的亮滅;P1.2 讀取總開頭的狀態(tài)。編寫程序?qū)崿F(xiàn)以上功能。 (P3.3 復(fù)用為外部中斷1輸入,即為INT1。其中斷向量地址為0013H,使用下降沿觸發(fā)中斷。) 三、實(shí)驗(yàn)接線 P1.0 接綠燈; P1.1接紅燈; P1.2 開關(guān)K1; P3.3 接點(diǎn)觸開關(guān)SP 四、實(shí)驗(yàn)程序框圖 主程序: 中斷服務(wù)程序:
11、 ORG 0000h AJMP MAIN ;主程序 ORG 0013H ;中斷矢量表 AJMP IRPRO ;中斷服務(wù)程序入口 ORG 0050H ;主程序 MAIN:CLR P1.1 ;紅燈滅 SETB P1.0 ;綠燈亮 SETB IT1 ;設(shè)置INT1負(fù)邊緣觸發(fā)p206 SETB EX1 ;外部中斷1有效 SETB EA ;開中斷 LOOP1:INC
12、 A ;觀察A的變化 JB P1.0, LOOP1 LOOP2:INC A ;觀察A的變化 JNB P1.2,LOOP2 SETB P1.0 SJMP LOOP1 ;中斷服務(wù)程序 IRPRO:PUSH PSW PUSH ACC SETB PSW.3 CLR P1.0 ; 滅綠燈 LOOP3:MOV R2,#05 LOOP4:SETB P1.1 ;亮紅燈 ACALL D5
13、00 CPL P1.1 ACALL D500 DJNZ R2, LOOP4 JNB P1.2,LOOP3 ;總開關(guān)監(jiān)測 POP ACC POP PSW RETI D500:MOV R6,#255 DELAY:MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DELAY RET END 實(shí)驗(yàn)四 定時/計數(shù)實(shí)驗(yàn) (2學(xué)時) 一、實(shí)驗(yàn)?zāi)康? 1、 熟悉8031定時/計數(shù)功能。 2、
14、掌握定時/計數(shù)初始化編程方法。 二、實(shí)驗(yàn)內(nèi)容 1、 選擇T1工作于模式0定時,在P1.0腳上輸出周期為4ms的方波,單片機(jī)采用6MHZ晶振。 分析:輸出周期為4ms的方波,即高低電平的持續(xù)時間均為2ms,那么只要使P1.0腳上的電平每隔2ms取反一次,就可得到周期為4ms的方波。 將T1設(shè)為定時方式0:GATE=0,C/T=0,M1M0=00;T0不用,可為任意,只要不使其進(jìn)入方式3(此時,定時器1對外停止計數(shù)),一般取0即可。 計數(shù)初值的計算: 單片機(jī)系統(tǒng)默認(rèn)的定時/計數(shù)器的工作時鐘是晶振經(jīng)12分頻的,即T=12/(6*106),所以計數(shù)初值為 X=(213-2ms/T
15、)=213-(2*10-3*6*106)/12=8192-1000=7192=1110000011000B 因?yàn)槭?3位計數(shù)器,所以X的高8位裝入TH1,X的低5位裝入TL1的低5位,即TH1=0E0H,TL1=18H。 思考:T1計數(shù)結(jié)束采用中斷工作方式 ,程序應(yīng)如何編寫? 2、在P1.7端接一個發(fā)光二極管LED,要求利用定時器控制,使LED亮1秒、滅1秒,周而復(fù)始,設(shè)=6MHZ。 (教材《單片機(jī)原理、接口及應(yīng)用——嵌入式系統(tǒng)技術(shù)基礎(chǔ)》 P97 例5-2) 三、實(shí)驗(yàn)內(nèi)容一參考程序框圖:
16、 ORG 00H; START: MOV TMOD,#00H LOAD: MOV TL0,#18H; MOV TH0,#0E0H; CPL P1.3 ACALL TIMER_DELAY JMP LOAD TIMER_DELAY: SETB TR0 CHECK: JNB TF0,CHECK CLR TR0 CLR TF0 RET; END 實(shí)驗(yàn)五 串行口應(yīng)用實(shí)驗(yàn) (2學(xué)時)
17、 一、實(shí)驗(yàn)?zāi)康? 掌握串行口工作方式的程序設(shè)計,掌握單片機(jī)通信程序編制方法。 二、實(shí)驗(yàn)內(nèi)容 1、重復(fù)發(fā)送同一個數(shù)據(jù),觀察TXD端輸出的波形。 將8031串口設(shè)為工作方式1,即10位異步收發(fā),發(fā)送時鐘由計數(shù)器控制;計數(shù)器T1設(shè)為定時工作,工作方式2,即自動重裝8位計數(shù)器;波特率取1000 bps,不加倍;單片機(jī)采用6MHZ晶振。計數(shù)初值的計算:TH1=256-[(1+0)*fosc]/(12*32*BPS) P3.1復(fù)用為串行發(fā)送端TXD,將其接至示波器,觀察輸出波形。注意觀察8位數(shù)據(jù)位前后的起始位和停止位。 2、自發(fā)自收。將代碼段中定義的10個數(shù)據(jù)0~9,通過串口發(fā)
18、送和接收,存放在外部存儲器7000H開始的單元中。 實(shí)驗(yàn)內(nèi)容一參考程序框圖: ORG 00H START: MOV SCON,#10H;設(shè)置串行口工作在模式0下,接受數(shù)據(jù) ENABLE: CLR P3.2 ;使能74LS166,進(jìn)行并行數(shù)據(jù)裝載(同步置數(shù)), NOP NOP NOP NOP NOP NOP NOP SETB P3.2 ;使能串行輸入,由每個時鐘脈沖進(jìn)行串行移位 CLR RI; CHECK: JBC RI,DISPLAY ;接受完畢8bit二進(jìn)制(
19、1byte)時,RI=1,跳轉(zhuǎn)到顯示DISPLAY段 JMP CHECK ;如果沒有接受完畢,循環(huán)等待 DISPLAY: MOV A,SBUF ;將串行口緩沖區(qū)SBUF數(shù)據(jù)載入ACC MOV P1,A ;從P1口輸出顯示 CALL DELAY ;調(diào)延時子程序 JMP START ;循環(huán) DELAY: ;延時 MOV R3,#20 ; D1: MOV R4,#20 D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET END 實(shí)驗(yàn)六 倒計時鐘 (3學(xué)時)
20、一、實(shí)驗(yàn)?zāi)康? 1、進(jìn)一步熟悉MCS-51定時/計數(shù)器的使用。 2、學(xué)會使用實(shí)驗(yàn)箱上七段LED碼顯示。 二、實(shí)驗(yàn)內(nèi)容 在實(shí)驗(yàn)箱的七段LED碼上顯示倒計時鐘。每隔一秒鐘,在LED上顯示9、8、7…0。 提示:使用T0、T1定時/計數(shù)器。T0工作在方式0、定時功能,在P1.0引腳上輸出周期為4ms的方波;T1工作在方式2、計數(shù)功能,對P1.0引腳上輸出的下降沿進(jìn)行計數(shù),計到250個下降沿時,即相當(dāng)于定時1秒鐘。定時器T1外部計數(shù)輸入引腳為P3.5。 計數(shù)器TR1的初值為: X=28-250=6, TH1=TL1=6H 七段LED的顯示: 1.字位端口為0FF21H,確定顯示的位
21、置。 2.字形端口為0FF22H,確定所顯示的內(nèi)容,即顯示的數(shù)據(jù): 表6.1 字形碼表 數(shù)據(jù) 0 1 2 3 4 5 6 7 字形碼 C0H F9H A4H B0H 99H 92H 82H F8H 數(shù)據(jù) 8 9 A B C D E F 字形碼 80H 98H 88H 83H C6H A1H 86H 8EH 3.如要在右邊第一位顯示“2”,程序如下: MOV A, #0A4H MOV DPTR, #0FF22H MOVX @DPTR,
22、 A MOV DPTR, #0FF21H MOV A, #1 MOVX @DPTR, A ORG 0000H ;中斷方式:選擇T1工作,方式1 AJMP MAIN ORG 000BH AJMP TIMER_0 ;跳到TIMER_1 ORG 001BH AJMP TIMER_1 ORG 0030H ; MAIN: SETB P1.3 MOV TMOD,#60H MOV TH0,#0E0H MOV TL0,#18H MOV TH1
23、, #06H MOV TL1,#06H SETB TR0 SETB EA;EA=1 SETB ET0;ET1 SETB TR1 SETB ET1 BB: MOV R0,#9H WAIT: MOV A, R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV DPTR, #0FF22H MOVX @DPTR, A MOV DPTR, #0FF21H MOV A, #01H MOVX @DPTR, A CJNE R0,#0FFH ,WAIT AJMP BB TIMER_0:CPL P1.3 MOV TH0,#0E0H MOV TL0,#18H SETB TR0;TR1=1 RETI TIMER_1: DEC R0 RETI TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H END
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。