南昌大學(xué)單片機(jī)課程設(shè)計程序_第1頁
南昌大學(xué)單片機(jī)課程設(shè)計程序_第2頁
南昌大學(xué)單片機(jī)課程設(shè)計程序_第3頁
南昌大學(xué)單片機(jī)課程設(shè)計程序_第4頁
南昌大學(xué)單片機(jī)課程設(shè)計程序_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、;若為真按鍵,開蜂鳴器;開始計時ORG 0000H0000 020030LJMP MAINORG 0003H0003 0200F4LJMP IN_INT0ORG 0013H;INT0 中斷入口0013 02006CLJMP INT1_INORG 0030H;INT1 中斷入口0030 75521EMAIN: MOV 52H,#30; 設(shè)定定時循環(huán)次數(shù)0033 758130MOV SP,#30H0036 7590F0MOV P1,#0F0H0039 758910MOV TMOD,#10H;選擇定時器 T1 方式 1003C 758D3CMOV TH1,#3CH; 一次計時 50ms 的初值003

2、F 758BB0MOV TL1,#0B0H0042 D288SETB IT0;設(shè)置外部中斷 0 為電平觸發(fā)方式0044 D28ASETB IT1;設(shè)置外部中斷 1 為邊沿觸發(fā)方式0046 75A885MOV IE,#85H; 允許外部中斷 0 和外部中斷 10049 D2BASETB PX1;設(shè)置外部中斷 1 為高優(yōu)先級中斷004B 12004ELCALL NEXT1;循環(huán)滾動學(xué)號004E 9001ECNEXT1:MOV DPTR, #TAB20051 7F07L3:MOV R7,#07H;顯示 7 個數(shù)字0053 7E03MOV R6,#03H0055 7830MOV R0,#30H0057

3、 E4CLR A0058 E6L4:MOV A,R00059 93MOVC A,A+DPTR ; 取相應(yīng)的字形代碼005A F599MOV SBUF, A;發(fā)送字形代碼005C C299CLR TI;清除串行發(fā)送中斷標(biāo)志005E A3INC DPTR005F 08INC R00060 DFF6DJNZ R7,L40062 1201CDLCALL DELAY10065 DEF1DJNZ R6,L40067 1201CDLCALL DELAY1;每次完成顯示后延時006A 80E2SJMP NEXT1;循環(huán)發(fā)送,實現(xiàn)滾動效果006C D2D3INT1_IN: SETB RS0;保護(hù)第零組工作寄存器

4、006E C0E0PUSH ACC;保護(hù)現(xiàn)場0070 C083PUSH DPH0072 C082PUSH DPL0074 1201B5LCALL DELAY2; 去除抖動 ,10ms 延時0077 30B303JNB P3.3,LP1007A 020186LJMP OUT007D C293LP1: CLR P1.3SETB TR1007F D28E0081 12018FLCALL KEY;確定鍵值0084 208F05JB TF1,LP2;判斷是長按鍵還是短按鍵0087 20B317JB P3.3,LP4008A 80F1SJMP LP1;判斷按鍵是否長于 1.5 秒008C 758D3CLP

5、2: MOV TH1,#3CH008F 758BB0MOV TL1,#0B0H0092 20B3E8JB P3.3,LP10095 D552E5DJNZ 52H,LP10098 30B3FDJNB P3.3,$009B C299CLR TI009D D293SETB P1.3009F 8026SJMP LONG00A1 1201CDLP4: LCALL DELAY100A4 30B3D6JNB P3.3,LP1;按鍵若真松開就停蜂鳴器00A7 D293SETB P1.300A9 C28ECLR TR1;進(jìn)入短按鍵程序,停止計時并恢復(fù)初值00AB 758D3CMOV TH1,#3CH00AE 7

6、58BB0MOV TL1,#0B0H00B1 75521EMOV 52H,#3000B4 755107MOV 51H,#07H00B7 E550MOV A,50H;取所按的鍵值00B9 9001E8MOV DPTR,#TAB1;在七個數(shù)碼管里顯示該鍵值00BC 93MOVC A,A+DPTR00BD F599LOOP:MOV SBUF,A00BF 1099FDJBC TI,$00C2 D551F8DJNZ 51H,LOOP00C5 80FESJMP $00C7 C28ELONG:CLR TR100C9 758D3CMOV TH1,#3CH00CC 758BB0MOV TL1,#0B0H00CF

7、 75521EMOV 52H,#3000D2 E550MOV A,50H00D4 B40113CJNE A,#01H,LONG100D7 7A07MOV R2,#07H00D9 7860MOV R0,#60H00DB E6L2:MOV A,R000DC 9001E8MOV DPTR,#TAB100DF 93MOVC A,A+DPTR00E0 F599MOV SBUF,A00E2 1099FDJBC TI,$00E5 08INC R0;若按的是健 1,則顯示學(xué)號00E6 DAF3DJNZ R2,L2;進(jìn)入長按鍵程序,停計時并恢復(fù)初值00E8 80FESJMP $00EA E550LONG1:MO

8、V A,50H00EC B41173CJNE A,#11H,LONG2; 若按鍵為 3,則輸出電壓00EF 90FEF9MOV DPTR,#0FEF9H;選定 ADC080900F2 F0MOVX DPTR,A;啟動 AD 轉(zhuǎn)換00F3 22RET00F4 C083IN_INT0:PUSH DPH00F6 C082PUSH DPL00F8 C0E0PUSH ACC00FA 753500MOV 35H,#00H;將用來存商和余數(shù)的單元清零00FD 753600MOV 36H,#00H0100 753700MOV 37H,#00H0103 753800MOV 38H,#00H0106 905FF9

9、MOV DPTR,#5FF9H;選中 IN10109 E0MOVX A,DPTR;讀數(shù)010A 75F033MOV B,#51010D 84DIV AB010E F7MOV R1,A; 存轉(zhuǎn)換后的 BCD 碼個位010F 09INC R10110 A70AMOV R1,0AH;存小數(shù)點0112 09INC R10113 740AD1:MOV A,#100115 C5F0XCH A,B0117 A4MUL AB;余數(shù)乘 100118 30F006JNB B,D2;判斷有沒有溢出011B 753505MOV 35H,#5011E 753601MOV 36H,#10121 75F033D2:MOV

10、B,#510124 84DIV AB;低八位除以 510125 2535ADD A,35H;商相加0127 F7MOV R1,A;存小數(shù)點后第一位0128 09INC R10129 E5F0MOV A,B012B 2536ADD A,36H;余數(shù)相加012D 75F00AMOV B,#100130 A4MUL AB; 余數(shù)乘 100131 30F006JNB B,D3;判斷有沒有溢出0134 753705 MOV 37H,#50137 753801MOV 38H,#1013A 75F033D3: MOV B,#51013D 84DIV AB;低八位除以 51013E 2537ADD A,37H

11、;商相加0140 F7MOV R1,A;存小數(shù)點后第二位0141 09INC R10142 7700MOV R1,#00H;存黑0144 09INC R10145 7700MOV R1,#00H;存黑0147 9001ECMOV DPTR,#TAB2014A 7C06MOV R4,#6;送六個數(shù)014C E6LD: MOV A,R0;從最后一位開始送014D 19DEC R1014E 93MOVC A,A+DPTR;選字形代碼014F F599MOV SBUF,A0151 3099FDJNB TI,$0154 C299CLR TI0156 DCF4DJNZ R4,LD;是否六個數(shù)送完0158

12、1201B5LCALL DELAY2;延時015B D0E0POP ACC015D D082POP DPL015F D083POP DPH0161 32RETI0162 B40003LONG2: CJNE A,#00H,START ;若按的是鍵 0,則輸出波形0165 020186LJMP OUT0168 907FFFSTART: MOV DPTR,#7FFFH;選定 DAC0832016B 7401L5: MOV A,#01H016D F5F0MOV B,A016F 7400MOV A,#00H0171 95F0SUBB A,B;輸出 400HZ 的梯形波0173 04UP: INC A01

13、74 F0MOVX DPTR,A0175 B46400CJNE A,#64H,L300178 40F9L30: JC UP017A 1201DFDOWN: LCALL DEL017D 14L20:DEC A017E F0MOVX DPTR,A017F B40000CJNE A,#00H,L400182 40E7L40:JC L50184 80F7SJMP L200186 C2D3OUT: CLR RS0;若按的是鍵 1,退出中斷0188 D082POP DPL;恢復(fù)現(xiàn)場018A D083POP DPH018C D0E0POP ACC018E 32RETI018F D2D4KEY: SETB R

14、S1;確定鍵值的子程序0191 7590F0MOV P1,#0F0H0194 8590F0MOV B,P10197 75900FMOV P1,#0FH019A E590MOV A,P1019C 45F0ORL A,B;形成鍵碼019E F5F0MOV B,A; 存入 B 中01A0 7800MOV R0,#00H01A2 9001ECMOV DPTR,#TAB2;取健號初值01A5 E8KEY1:MOV A,R001A6 93MOVC A,A+DPTR;取表格中對應(yīng)鍵碼值01A7 B5F004CJNE A,B,KEY2; 與 B 相比,不等則繼續(xù)比較01AA 8850MOV 50H,R0;相等

15、則將鍵值保存01AC 8004SJMP KEY301AE 08KEY2:INC R001AF B804F3CJNE R0,#04H,KEY101B2 C2D4KEY3:CLR RS101B4 22RET01B5 D2D4DELAY2: SETB RS101B7 7814MOV R0,#14H01B9 797DD4:MOV R1,#7DH01BB 00D5:NOP01BC 00NOP01BD D9FCDJNZ R1,D501BF D8F8DJNZ R0,D401C1 C2D4CLR RS101C3 22RET01C4 C2D3OUT1: CLR RS001C6 D082POP DPL01C8 D

16、083POP DPH01CA D0E0POP ACC01CC 32RETI01CD 7D0ADELAY1: MOV R5,#1001CF D28CSETB TR001D1 108D02DL5:JBC TF0,DL301D4 80FBSJMP DL501D6 758C3CDL3:MOV TH0,#3CH01D9 758AB0MOV TL0,#0B0H01DC DDF3DJNZ R5,DL501DE 22RET01DF 7806DEL:MOV R0,#601E1 795ADL2:MOV R1,#9001E3 D9FEDL1:DJNZ R1,DL101E5 D8FADJNZ R0,DL201E7 22RET;10ms 延時程序;0.5s 延時程序01E8 C0F9A401EB B0TAB1:DB 0C0H,0F9H,0A4H,0B0H,;0, 1,2,3 的字形代碼01EC 04040001EF 04

溫馨提示

  • 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

提交評論