|
用proteus設計的電路仿真,51單片機定時器做6位數字頻率計原理圖如上.
匯編源程序:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
ORG 0040H
MAIN:MOV 30H,#14H
MOV 40H,#00H
MOV 41H,#00H
MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
MOV TMOD,#51H
MOV IE,#82H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TH1,#00H
MOV TL1,#00H
SETB TR0
SETB TR1
SJMP $
/********中斷服務程序********/
IT0P:MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ 30H,LAST
MOV 41H,TH1
MOV 40H,TL1
CLR TR1
CLR TR0
LCALL EXCH
LCALL DISPLAY
MOV TH1,#00H
MOV TL1,#00H
LAST:RETI
/********轉換子程序********/
/*40H低8位,41H高8位,42H個位,43H十位,44H百位,45H千位,46H萬位;R3,R4余數*/
EXCH:PUSH PSW
PUSH Acc
MOV R0,#40H
MOV R1,#46H
MOV R2,#00H
WANW:CLR C ;減去10000,所減的次數就是萬位,次數存在R2上
MOV R0,#40H
MOV A,@R0
SUBB A,#10H
MOV R3,A
INC R0
MOV A,@R0
SUBB A,#27H
MOV R4,A
JC QIAN
INC R2
MOV 40H,R3
MOV 41H,R4
JMP WANW
QIAN:MOV 46H,R2 ;減去1000,所減的次數就是千位,次數存在R2上
MOV R2,#00H
QIAA:CLR C
MOV R0,#40H
MOV A,@R0
SUBB A,#0E8H
MOV R3,A
INC R0
MOV A,@R0
SUBB A,#03H
MOV R4,A
JC BAIW
INC R2
MOV 40H,R3
MOV 41H,R4
JMP QIAA
BAIW:MOV 45H,R2 ;減去100,所減的次數就是百位,次數存在R2上
MOV R2,#00H
BAIB:CLR C
MOV R0,#40H
MOV A,@R0
SUBB A,#64H
MOV R3,A
INC R0
MOV A,@R0
SUBB A,#00H
MOV R4,A
JC SHIW
INC R2
MOV 40H,R3
MOV 41H,R4
JMP BAIB
SHIW:MOV 44H,R2 ;減去10,所減的次數就是十位,次數存在R2上
MOV R2,#00H
SHIS:CLR C
MOV R0,#40H
MOV A,@R0
SUBB A,#0AH
MOV R3,A
JC GEWW
INC R2
MOV 40H,R3
JMP SHIS
GEWW:MOV 43H,R2
MOV 42H,40H
POP Acc
POP PSW
RET
/********轉換子程序********/
DISPLAY:PUSH PSW
PUSH Acc
MOV A,#00H
ORL A,46H
MOV P0,A
MOV A,45H
SWAP A
ORL A,44H
MOV P1,A
MOV A,43H
SWAP A
ORL A,42H
MOV P2,A
POP Acc
POP PSW
RET
END
|
-
-
4位頻率計.zip
2016-9-4 19:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
52.77 KB, 下載次數: 61, 下載積分: 黑幣 -5
|