|
以下程序已實際調(diào)試運行通過) ; ---AT89C2051加氧泵控制器源程序-OK! org 0000h ajmp main nop org 01bh clr tr1 ajmp timon org 30h main:MOV 40h,#00h MOV 41h,#00h MOV 42h,#00h MOV 43h,#02h MOV 44h,#00h MOV 45h,#00h MOV 46h,#00h MOV 4ah,#02h MOV 4bh,#00h MOV 4ch,#01h MOV 4dh,#05h nca equ 48h ncb equ 49h MOV p3,#0ffh MOV sp,#50h MOV tmod,#10h MOV ie,#88h MOV tl1,#46h MOV th1,#76h clr nca clr ncb setb tr1 clr p3.7 disp:;------顯示------- MOV r3,46h cjne r3,#1,ct MOV dptr,#tab clr p3.2 MOV a,42h MOVc a,@a+dptr anl p1,#01h orl p1,a jb ncb,xsb setb p3.3 lcall ms10 xsb: acall key clr p3.3 jb nca,ys1 MOV a,43h MOVc a,@a+dptr anl p1,#01h orl p1,a setb p3.2 ys1: lcall ms10 ajmp disp ct: MOV dptr,#tab clr p3.2 MOV a,42h MOVc a,@a+dptr anl p1,#01h orl p1,a jb ncb,xsd setb p3.3 lcall ms10 xsd: acall key clr p3.3 jb nca,ys2 MOV a,43h MOVc a,@a+dptr anl p1,#01h orl p1,a setb p3.2 ys2: lcall ms10 ajmp disp timon:;定時計數(shù)中斷子程序-- setb rs0 push psw push acc MOV tl1,#46h MOV th1,#76h setb tr1 inc 40h MOV r0,40h cjne r0,#8,tim MOV 40h,#00h cpl p1.0 t11: inc 41h MOV r0,41h cjne r0,#60,tim MOV 41h,#00h MOV r0,42h cjne r0,#00,tia ajmp tib tia: dec 42h ajmp tim tib: MOV r1,43h cjne r1,#00,tic cpl p3.7 MOV r6,46h inc 46h cjne r6,#01h,zd MOV 46h,#00h MOV 42h,4bh MOV 43h,4ah ajmp tim zd: MOV 42h,4dh MOV 43h,4ch ajmp tim tic: dec 43h MOV 42h,#09h tim: pop acc pop psw reti key:;-----按鍵處理------- nop k0: jb p3.1,k1 acall ms10 acall ms10 jnb p3.1,sz ljmp k1 sz: jnb p3.1,$ setb p3.7 inc 44h MOV r5,44h k1: cjne r5,#01h,k2 setb nca clr ncb setb p3.5 clr p3.4 MOV 46h,#00h MOV ie,#00h jb p3.0,fh acall ms10 acall ms10 jnb p3.0,ct1 k2: cjne r5,#02h,k3 setb ncb clr nca MOV 46h,#00h MOV ie,#00h jb p3.0,fh acall ms10 acall ms10 jnb p3.0,ct2 k3: cjne r5,#03h,k4 setb nca clr ncb setb p3.4 clr p3.5 MOV 46h,#01h MOV 42h,4dh MOV 43h,4ch MOV ie,#00h jb p3.0,fh acall ms10 acall ms10 jnb p3.0,cd1 k4: cjne r5,#4h,k5 setb ncb clr nca MOV 46h,#01h MOV ie,#00h jb p3.0,fh acall ms10 acall ms10 jnb p3.0,cd2 k5: cjne r5,#05h,fh MOV r5,#00h setb p3.4 setb p3.5 ljmp qd fh: ret ct1:;-----常通個位定時減---- jnb p3.0,$ MOV r4,4bh dec 4bh cjne r4,#00h,ct1a MOV 4bh,#09h ct1a:MOV 42h,4bh ret; ct2:;-----常通十位定時減---- jnb p3.0,$ MOV r4,4ah dec 4ah cjne r4,#00h,ct2a MOV 4ah,#09h ct2a:MOV 43h,4ah ret cd1:;-----常斷個位定時減---- jnb p3.0,$ MOV r4,4dh dec 4dh cjne r4,#00h,cd1a MOV 4dh,#09h cd1a:MOV 42h,4dh ret; cd2:;-----常斷十位定時減---- jnb p3.0,$ MOV r4,4ch dec 4ch cjne r4,#00h,cd2a MOV 4ch,#09h cd2a:MOV 43h,4ch ret qd: MOV 46h,#00h MOV 44h,#00h MOV 42h,4bh MOV 43h,4ah MOV ie,#88h clr nca clr ncb setb tr1 clr p3.7 ret ms10:;----- 延時毫秒------- MOV r0,#100 ms: nop djnz r0,ms ret ;--------------------------- tab: db 80h,0f2h,48h,60h,32h,24h db 04h,0f0h,00h,20h end |