基于集成鎖相環(huán)的數(shù)控脈沖發(fā)生器設(shè)計_第1頁
基于集成鎖相環(huán)的數(shù)控脈沖發(fā)生器設(shè)計_第2頁
基于集成鎖相環(huán)的數(shù)控脈沖發(fā)生器設(shè)計_第3頁
基于集成鎖相環(huán)的數(shù)控脈沖發(fā)生器設(shè)計_第4頁
基于集成鎖相環(huán)的數(shù)控脈沖發(fā)生器設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于集成鎖相環(huán)的數(shù)控脈沖發(fā)生器設(shè)計魏廣寅(貴州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院)摘要:研究了基于集成鎖相環(huán)的數(shù)控高精度脈沖信號源的設(shè)計方法,研究了基于PLL的低頻頻率合成技術(shù),并用實(shí)驗證明了理論,效果理想,實(shí)現(xiàn)頻率合成范圍10Hz99.990KHz,鍵盤預(yù)設(shè),頻率調(diào)節(jié)精度10Hz,完全鎖定時間小于10S,頻率穩(wěn)定度優(yōu)于10-6,頻率合成精度優(yōu)于0.005%, 輸出為CMOS電平。關(guān)鍵詞:鎖相環(huán)(Phase Lock Loop)頻率合成 入鎖時間 單片機(jī)引言:高精度脈沖信號源和函數(shù)發(fā)生器一樣,在電子領(lǐng)域有著不可或缺的地位。廣泛用于儀表校準(zhǔn),高精度時基產(chǎn)生,周期測量,工業(yè)控制等領(lǐng)域。傳統(tǒng)的信號源是用分離

2、元件或集成門電路與阻容元件構(gòu)成,調(diào)節(jié)方式一般為模擬調(diào)節(jié),由于阻容元件本身的離散性和溫漂,產(chǎn)生信號的精度和穩(wěn)定度一般都很差,即使采用復(fù)雜的預(yù)熱恒溫措施,穩(wěn)定度最多也只能做到10-2級別,在一些要求高的場合就顯得力不從心了。而本設(shè)計采用鎖相環(huán)進(jìn)行頻率合成,不僅大幅提高輸出脈沖的精度和穩(wěn)定度,還單片機(jī)配合控制,使操作全數(shù)字化,便捷直觀。參考文獻(xiàn):CD4046BCN-DataSheetCD4522BE-DataSheet74LS164NS-DataSheetHD14011BP-DataSheetAT89C2051-DataSheetAT89C51-DataSheet術(shù)語解釋:鎖相環(huán):鎖相的意義是相位同

3、步的自動控制,能夠完成兩個電信號相位同步的自動控制閉環(huán)系統(tǒng)叫做鎖相環(huán),簡稱PLL。它廣泛應(yīng)用于廣播通信、頻率合成、自動控制及時鐘同步等技術(shù)領(lǐng)域。鎖相環(huán)主要由相位比較器(PC)、壓控振蕩器(VCO)。低通濾波器三部分組成,如圖1所示。    圖1 壓控振蕩器的輸出Uo接至相位比較器的一個輸入端,其輸出頻率的高低由低通濾波器上建立起來的平均電壓Ud大小決定。施加于相位比較器另一個輸入端的外部輸入信號Ui與來自壓控振蕩器的輸出信號Uo相比較,比較結(jié)果產(chǎn)生的誤差輸出電壓U正比于Ui和Uo兩個信號的相位差,經(jīng)過低通濾波器濾除高頻分量后,得到一個平均值電壓Ud。這個平均值電壓

4、Ud朝著減小VCO輸出頻率和輸入頻率之差的方向變化,直至VCO輸出頻率和輸入信號頻率獲得一致。這時兩個信號的頻率相同,兩相位差保持恒定(即同步)稱作相位鎖定。 當(dāng)鎖相環(huán)入鎖時,它還具有“捕捉”信號的能力,VCO可在某一范圍內(nèi)自動跟蹤輸入信號的變化,如果輸入信號頻率在鎖相環(huán)的捕捉范圍內(nèi)發(fā)生變化,鎖相環(huán)能捕捉到輸人信號頻率,并強(qiáng)迫VCO鎖定在這個頻率上。鎖相環(huán)應(yīng)用非常靈活,如果輸入信號頻率f1不等于VCO輸出信號頻率f2,而要求兩者保持一定的關(guān)系,例如比例關(guān)系或差值關(guān)系,則可以在外部加入一個運(yùn)算器,以滿足不同工作的需要。頻率合成:將任一給定的頻率f0(通常是由石英晶體振蕩器產(chǎn)生的高穩(wěn)定度

5、的頻率),通過某種電路,變換成一系列新的頻率f1,f2,f3,這些新頻率的穩(wěn)定度與基準(zhǔn)頻率f0相當(dāng)。鎖相環(huán)入鎖時間:從比較信號與基準(zhǔn)信號同時輸入的時刻起,到鎖相環(huán)完全鎖定時所須的最短時間,入鎖時間越短,表示鎖相環(huán)對信號的跟蹤能力越強(qiáng)。通常取決與低通濾波器的延時常數(shù),一般情況下,鎖相環(huán)入鎖時間越長,鎖定的穩(wěn)定性越好,所以要兼顧入鎖時間和鎖定穩(wěn)定度來選取低通濾波器參數(shù)。方案選定:基頻產(chǎn)生:權(quán)衡成本和制作難度,本設(shè)計采用精簡設(shè)計的單片機(jī)AT89C2051來充當(dāng)基準(zhǔn)頻率源,采用定時器中斷來產(chǎn)生周期為100.000mS的標(biāo)準(zhǔn)信號,由于單片機(jī)的時鐘用的是12.000M的晶體,所以產(chǎn)生的10Hz標(biāo)頻的穩(wěn)定度

6、亦能達(dá)到10-6級別。鎖相環(huán):采用集成鎖相環(huán)CD4046,其特點(diǎn)是電源電壓范圍寬(為3V18V),輸入阻抗高(約100M),動態(tài)功耗小,在中心頻率f0為10kHz下功耗僅為600W,屬微功耗器件,最高頻率為1.2MHz(VDD=15V)采用 16 腳雙列直插式封裝??深A(yù)制置分頻器:采用4片可編程1/N計數(shù)器CD4522和兩片串并轉(zhuǎn)換器74LS164構(gòu)成,分頻系數(shù)由單片機(jī)的串行口發(fā)送。整機(jī)控制:采用AT89C51單片機(jī)設(shè)計,3X4矩陣鍵盤設(shè)置輸出頻率,6位LED數(shù)碼管動態(tài)顯示預(yù)設(shè)。并由單片機(jī)發(fā)送分頻系數(shù)給可預(yù)制置分頻器。整機(jī)電路如下:工作原理:CD4046工作原理如下:輸入信號 Ui從14腳輸入

7、后,經(jīng)放大器A1進(jìn)行放大、整形后加到相位比較器、的輸入端,開關(guān)K撥至2腳,則比較器將從3腳輸入的比較信號Uo與輸入信號Ui作相位比較,從相位比較器輸出的誤差電壓U則反映出兩者的相位差。U經(jīng)R3、R4及C2濾波后得到一控制電壓Ud加至壓控振蕩器VCO的輸入端9腳,調(diào)整VCO的振蕩頻率f2,使f2迅速逼近信號頻率f1。VCO的輸出又經(jīng)除法器再進(jìn)入相位比較器,繼續(xù)與Ui進(jìn)行相位比較,最后使得f2f1,兩者的相位差為一定值,實(shí)現(xiàn)了相位鎖定。若開關(guān)K撥至13腳,則相位比較器工作,過程與上述相同,不再贅述。通過對起原理的分析,我們可以知道,當(dāng)在VCO的輸出端4與相位比較器的輸入端3之間插入一個N分頻器,就

8、能起到N倍頻作用,使VCO的輸出頻率fo=Nf0,因此,只要改變分頻系數(shù)N,就能獲得N倍于f0的高穩(wěn)定度新頻率,這樣就完成了頻率的合成??深A(yù)置1/N計數(shù)器CD4522工作原理:CD4522計數(shù)器的CP端和EN端均為輸入脈沖端,電路規(guī)定:當(dāng)EN接低平時,輸入脈沖應(yīng)加至CP端,且為上升沿觸發(fā),CD4522的D0D3是預(yù)置數(shù)輸入端,與串并轉(zhuǎn)換器74LS164的輸出相連,PE是預(yù)置允許端,當(dāng)PE=1時,不管原計數(shù)器狀態(tài)如何,立即將D0D3的狀態(tài)置入計數(shù)器。Cr是計數(shù)器強(qiáng)制復(fù)零端。CD4522的Oc端是全0信號輸出端,僅當(dāng)計數(shù)器狀態(tài)為“0000”且CF為1時,Oc才輸出1,CF是級連反饋端,它們分別與前

9、一級的Oc端相連。這樣當(dāng)前級計數(shù)器為“0000”狀態(tài)時,其Oc=1的信號就反饋到下一級的CF端,使CF為高電平。按照圖中級連接法,就構(gòu)成了可預(yù)置為110000分頻的除法器。基頻產(chǎn)生:用AT89C2051單片機(jī)內(nèi)部定時器產(chǎn)生50mS定時中斷,在中斷服務(wù)程序中改變P3.0口的電平狀態(tài),即可產(chǎn)生周期為100mS的高精度時鐘。程序見附錄1。分頻系數(shù)控制:用AT89C51單片機(jī)實(shí)現(xiàn),通過鍵盤預(yù)置頻率,并用6位LED動態(tài)掃描顯示之,待檢測到按下確認(rèn)鍵后,單片機(jī)通過串行口方式0向分頻電路中的74LS164送出兩字節(jié)頻率控制字,并開啟輸出門。軟件流程如右圖,具體程序清單見附錄2。實(shí)際測量結(jié)果如下:預(yù)設(shè)值頻率計

10、讀數(shù)穩(wěn)定時間(S)相對誤差10Hz0.010KHz50%50Hz0.050KHz40%100Hz0.100KHz30%150Hz0.150KHz40%300Hz0.300KHz30%500Hz0.500KHz40%1.000Hz1.000KHz50%5.000Hz5.000KHz50%10.000KHz10.000KHz50%20.000KHz20.000KHz60%50.000KHz50.000KHz60%77.000KHz77.00KHz70%99.990KHz99.99KHz100%由上表可看出,用鎖相環(huán)構(gòu)成的頻率合成器,具有很高的合成精度,且穩(wěn)定性十分好!由于沒有專用儀器,無法測出精確

11、的頻率穩(wěn)定度,但粗略估計,在10Hz,100Hz,1000Hz,10.000KHz,99.990KHz輸出時,10小時頻率無漂移。單片機(jī)開發(fā)平臺:Keil uV3 8.05 實(shí)拍圖片:附錄1基準(zhǔn)時鐘程序清單:;-;程序功能 : 數(shù)控脈沖發(fā)生器基準(zhǔn)時鐘程序程序;-;使用單片機(jī): AT89C2051 24PC;-;使用晶振 : 6.00M;-;程序設(shè)計 : 魏廣寅;-;版 本 : V1.0版;-;完成時間 : 2007-4-16;-ORG 0000H ;00H單元開始LJMP INIT ;轉(zhuǎn)向初始化過程ORG 000BH ;T0中斷向量LJMP CLOCK ;轉(zhuǎn)向中斷服務(wù)ORG 030H ;30H

12、單元開始INIT:MOV TMOD,#01H ;T0方式1定時MOV TL0,#05FH ;50mS中斷初值+補(bǔ)償MOV TH0,#09EH ;50mS中斷初值SETB ET0 ;開T0中斷SETB EA ;開總中斷SETB TR0 ;啟動T0SJMP $ ;等待中斷CLOCK:MOV TL0,#05FH ;重賦值MOV TH0,#09EH ;重賦值CPL P3.0 ;輸出電平翻轉(zhuǎn)RETI ;中斷返回END ;程序結(jié)束*附錄2主控程序清單:;-;程序功能 : 數(shù)控脈沖發(fā)生器主控程序;-;使用單片機(jī): AT89C51 24PI;-;使用晶振 : 12.00M;-;程序設(shè)計 : 魏廣寅;-;版 本

13、 : V1.0版;-;完成時間 : 2007-4-16;-DISPLAY_DATA EQU P0 ;動態(tài)顯示段碼輸出口DISPLAY_SELECT EQU P2 ;動態(tài)顯示位選通信號KEYPORT EQU P1 ;鍵盤口OUT_GATE BIT P3.7 ;輸出門控位信號;-KEY_VALUE DATA 38H ;鍵值寄存器DISNUM_0 DATA 30H ;顯示數(shù)字最低位DISNUM_1 DATA 31HDISNUM_2 DATA 32HDISNUM_3 DATA 33HDISNUM_4 DATA 34H ;顯示數(shù)字最高位DISNUM_T0 DATA 35HSDATAREG_0 DATA

14、40H ;串行數(shù)據(jù)寄存器低位SDATAREG_1 DATA 41H ;串行數(shù)據(jù)寄存器高位REG_0 DATA 45HREG_1 DATA 46HREG_2 DATA 47HREG_3 DATA 48HREG_4 DATA 49HKEY_COUNTER DATA 3CH ;按鍵次數(shù)寄存器;-ORG 0000HAJMP 030HORG 00BH ;T0中斷入口(中斷函數(shù)既為動態(tài)掃描顯示子過程)LJMP DISPLAYORG 030H;-INIT:;系統(tǒng)初始化MOV TMOD,#01H ;設(shè)置T0方式1定時MOV TH0,#0DFHMOV TL0,#0DDHMOV KEY_COUNTER,#0MOV

15、 KEY_VALUE,#0SETB ET0SETB EASETB TR0CLR CMOV DISNUM_0,#0FH ;將高5位的零消隱MOV DISNUM_1,#0FHMOV DISNUM_2,#0FHMOV DISNUM_3,#0FHMOV DISNUM_4,#0FHMOV DISNUM_T0,#0EH;將最低位置為“-”提示輸入;-LCALL GATE_OFF ;還未進(jìn)行頻率設(shè)定時先將輸出門關(guān)閉KEY_SCAN_START: ;主循環(huán)起點(diǎn)LCALL KEY_SCAN ;等待按鍵并取得鍵值,鍵值存入KEY_VALUE中備用LCALL GATE_OFF ;新設(shè)置有效之前將輸出門關(guān)閉MOV A

16、,KEY_VALUERL A ;將鍵值X2調(diào)整,以適應(yīng)散轉(zhuǎn)表中AJMP雙字節(jié)指令的偏移量MOV DPTR,#PROGRAM_TAB ;將散轉(zhuǎn)表首址送DPTRJMP A+DPTR ;根據(jù)鍵值散轉(zhuǎn)PROGRAM_TAB:AJMP PROG_0 ;指向按鍵0對應(yīng)處理函數(shù)AJMP PROG_1AJMP PROG_2 AJMP PROG_3AJMP PROG_4AJMP PROG_5AJMP PROG_6AJMP PROG_7AJMP PROG_8AJMP PROG_9AJMP PROG_AAJMP PROG_BAJMP PROG_CAJMP PROG_DAJMP PROG_EAJMP PROG_F ;

17、指向按鍵F對應(yīng)處理函數(shù);-PROG_0: SJMP PROG_9 ;對數(shù)值鍵(09)的處理過程PROG_1: SJMP PROG_9PROG_2: SJMP PROG_9PROG_3: SJMP PROG_9PROG_4: SJMP PROG_9PROG_5: SJMP PROG_9PROG_6: SJMP PROG_9PROG_7: SJMP PROG_9PROG_8: SJMP PROG_9PROG_9:MOV A,KEY_COUNTER ;判斷是否首次按鍵CJNE A,#0,Q2 Q1: MOV A,KEY_VALUE ;判斷是否首次按下的是“0”鍵,若是,放棄處理,返回主循環(huán)CJNE

18、A,#0,Q2 LJMP KEY_SCAN_STARTQ2: INC KEY_COUNTER ;將按鍵次數(shù)加1MOV A,KEY_COUNTERCJNE A,#5,Q3 ;若按鍵次數(shù)超過4次則放棄處理,返回主循環(huán)MOV KEY_COUNTER,#4LJMP KEY_SCAN_STARTQ3:MOV R1,KEY_VALUE;若上述條件均不滿足則將鍵值送子程序 KEY_SCAN_START的入口R1MOV DISNUM_T0,#0;將顯示的最低位由“-”變?yōu)椤?”充當(dāng)個位LCALL DIS_MOV_L;同時將顯示左移一位LJMP KEY_SCAN_START;返回主循環(huán),等待下次按鍵來臨;-PR

19、OG_A: LCALL DIS_MOV_R ;退格操作MOV A,KEY_COUNTER ;若按鍵計數(shù)值大于0則每執(zhí)行一次退格操作就將CJNE A,#0,Q4LJMP KEY_SCAN_STARTQ4: DEC KEY_COUNTER ;KEY_VALUE減1LJMP KEY_SCAN_START;-PROG_B: MOV A,KEY_COUNTER ;輸出操作CJNE A,#0,Q5 ;若未輸入數(shù)字就按下“輸出”鍵,則放棄處理LJMP KEY_SCAN_START;返回主循環(huán),等待下次按鍵來臨Q5: LCALL S_DATA_OUT ;將控制數(shù)據(jù)發(fā)送LCALL GATE_ON ;開啟門控LJ

20、MP KEY_SCAN_START;-PROG_C: ;全清空,初始化程序 LJMP INIT;-PROG_D: ;加10步進(jìn)MOV REG_0,DISNUM_0MOV REG_1,DISNUM_1MOV REG_2,DISNUM_2MOV REG_3,DISNUM_3MOV REG_4,DISNUM_4MOV A,REG_0CJNE A,0FH,GO1MOV REG_0,#0LJMP KEY_SCAN_STARTGO1: INC REG_0MOV A,REG_0CJNE A,#10,LOOPENDMOV REG_0,#0MOV A,REG_1CJNE A,#0FH,GO2MOV REG_1,

21、#0GO2: INC REG_1MOV A,REG_1CJNE A,#10,LOOPENDMOV REG_1,#0MOV A,REG_2CJNE A,#0FH,GO3MOV REG_2,#0GO3: INC REG_2MOV A,REG_2CJNE A,#10,LOOPENDMOV REG_2,#0MOV A,REG_3CJNE A,#0FH,GO4MOV REG_3,#0GO4:INC REG_3MOV A,REG_3CJNE A,#10,LOOPENDMOV REG_3,#0MOV A,REG_4CJNE A,#0FH,GO5MOV REG_4,#0GO5:INC REG_4MOV A,R

22、EG_4CJNE A,#10,LOOPENDMOV REG_4,#0LJMP KEY_SCAN_STARTLOOPEND:MOV DISNUM_0,REG_0MOV DISNUM_1,REG_1MOV DISNUM_2,REG_2MOV DISNUM_3,REG_3MOV DISNUM_4,REG_4LCALL S_DATA_OUTLCALL GATE_ONLJMP KEY_SCAN_START;-PROG_E: ;減10步進(jìn)MOV REG_0,DISNUM_0MOV REG_1,DISNUM_1MOV REG_2,DISNUM_2MOV REG_3,DISNUM_3MOV REG_4,DIS

23、NUM_4MOV A,REG_0CJNE A,0FH,GOO1MOV REG_0,#9LJMP KEY_SCAN_STARTGOO1:DEC REG_0MOV A,REG_0CJNE A,#0,LOOPEND1MOV REG_0,#9MOV A,REG_1CJNE A,#0FH,GOO2MOV REG_1,#9GOO2:DEC REG_1MOV A,REG_1CJNE A,#0,LOOPEND1MOV REG_1,#9MOV A,REG_2CJNE A,#0FH,GOO3MOV REG_2,#9GOO3: DEC REG_2MOV A,REG_2CJNE A,#0,LOOPEND1MOV RE

24、G_2,#9MOV A,REG_3CJNE A,#0FH,GOO4MOV REG_3,#9GOO4:DEC REG_3MOV A,REG_3CJNE A,#0,LOOPEND1MOV REG_3,#9MOV A,REG_4CJNE A,#0FH,GOO5GOO5: DEC REG_4MOV A,REG_4CJNE A,#0,LOOPEND1MOV REG_4,#9LJMP KEY_SCAN_STARTLOOPEND1:MOV DISNUM_0,REG_0MOV DISNUM_1,REG_1MOV DISNUM_2,REG_2MOV DISNUM_3,REG_3MOV DISNUM_4,REG_

25、4LCALL S_DATA_OUTLCALL GATE_ONLJMP KEY_SCAN_START;-PROG_F: ;快速設(shè)置KHzMOV A,DISNUM_T0CJNE A,#0EH,KKLJMP KEY_SCAN_STARTKK:JNC KK1LJMP KEY_SCAN_STARTKK1: MOV R1,#0LCALL DIS_MOV_LLCALL DIS_MOV_LLCALL S_DATA_OUTLCALL GATE_ONLJMP KEY_SCAN_START;-DISPLAY:;采用動態(tài)掃描方式,MOV TH0,#0DFHMOV TL0,#0DDHPUSH DPLPUSH DPHPU

26、SH ACCMOV DPTR,#DISPLAY_TAB ;將DISNUM05中的BCD數(shù)轉(zhuǎn)換為LED段碼MOV DISPLAY_DATA,#0FFHMOV DISPLAY_SELECT,#00000010BMOV A,30HCJNE A,#0FH,JJMOV A,#0EHAJMP J1JJ: MOV A,37HJ1: MOVC A,A+DPTRMOV DISPLAY_DATA,ALCALL DEL1MOV DISPLAY_DATA,#0FFHMOV DISPLAY_SELECT,#00000001BMOV A,30HMOVC A,A+DPTRMOV DISPLAY_DATA,ALCALL DE

27、L1MOV DISPLAY_DATA,#0FFHMOV DISPLAY_SELECT,#00001000BMOV A,31HMOVC A,A+DPTRMOV DISPLAY_DATA,ALCALL DEL1MOV DISPLAY_DATA,#0FFHMOV DISPLAY_SELECT,#00000100BMOV A,32HMOVC A,A+DPTRMOV R3,AMOV A,32HCJNE A,#0FH,KL1CLR CSJMP KL2KL1:MOV A,R3CLR ACC.5SETB CMOV DISPLAY_DATA,ASJMP KL3KL2:MOV A,R3MOV DISPLAY_DA

28、TA,AKL3:LCALL DEL1MOV DISPLAY_DATA,#0FFHMOV DISPLAY_SELECT,#00100000BMOV A,33HMOVC A,A+DPTRMOV DISPLAY_DATA,ALCALL DEL1MOV DISPLAY_DATA,#0FFHMOV DISPLAY_SELECT,#00010000BMOV A,34HMOVC A,A+DPTRMOV DISPLAY_DATA,ALCALL DEL1MOV DISPLAY_SELECT,#00000000BPOP ACCPOP DPHPOP DPLRETI;-KEY_SCAN: ;4X4鍵盤掃描子程序MOV

29、 KEYPORT,#0FHMOV A,KEYPORTCJNE A,#0FH,KEY_CHECK_DOWN1SJMP KEY_SCANKEY_CHECK_DOWN1: LCALL DELAY_10MS ;延時去抖動MOV KEYPORT,#0FHMOV A,KEYPORTCJNE A,#0FH,KEY_CHECK_DOWN2SJMP KEY_SCANKEY_CHECK_DOWN2:MOV KEYPORT,#11110111BMOV A,KEYPORTJB ACC.4,NEXT1MOV R0,#0LJMP KEY_CHECK_UPNEXT1: JB ACC.5,NEXT2MOV R0,#10LJM

30、P KEY_CHECK_UPNEXT2: JB ACC.6,NEXT3MOV R0,#11LJMP KEY_CHECK_UPNEXT3: MOV KEYPORT,#11111011BMOV A,KEYPORTJB ACC.4,NEXT5MOV R0,#1LJMP KEY_CHECK_UPNEXT5:JB ACC.5,NEXT6MOV R0,#2LJMP KEY_CHECK_UPNEXT6:JB ACC.6,NEXT7MOV R0,#3LJMP KEY_CHECK_UPNEXT7:MOV KEYPORT,#11111101BMOV A,KEYPORTJB ACC.4,NEXT9MOV R0,#4

31、LJMP KEY_CHECK_UPNEXT9:JB ACC.5,NEXT10MOV R0,#5LJMP KEY_CHECK_UPNEXT10:JB ACC.6,NEXT11MOV R0,#6LJMP KEY_CHECK_UPNEXT11: MOV KEYPORT,#11111110BMOV A,KEYPORTJB ACC.4,NEXT13MOV R0,#7LJMP KEY_CHECK_UPNEXT13:JB ACC.5,NEXT14MOV R0,#8LJMP KEY_CHECK_UPNEXT14:JB ACC.6,NEXT15MOV R0,#9LJMP KEY_CHECK_UPNEXT15:L

32、JMP KEY_SCANKEY_CHECK_UP: ;檢查鍵松開GOON: MOV KEYPORT,#0FHMOV A,KEYPORTCJNE A,#0FH,GOONMOV KEY_VALUE,R0 ;返回鍵值(011)保存在KEY_VALUE中RET;-DEL1:MOV 3DH,#2L2: MOV 3EH,#150L1: DJNZ 3EH,L1DJNZ 3DH,L2NOPRET;-DELAY_10MS: MOV 39H,#120LK2: MOV 3AH,#200LK1: DJNZ 3AH,LK1 DJNZ 39H,LK2 NOP RET;-DIS_MOV_L: ;顯示左移函數(shù),入口R1MOV DISNUM_4,DISNUM_3MOV DISNUM_3,DISNUM_2MOV DISNUM_2,DISNUM_1MOV DISNUM_1,DISNUM_0MOV DISNUM_0,R1RET;-DIS_MOV_R: ;顯示右移函數(shù)MOV DISNUM_0,DISNUM_1MOV DISNUM_1,DISNUM_2MOV

溫馨提示

  • 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

提交評論