STC12C2052单片机制作数字电压表汇编程序
;===================数字电压表模拟采样===================================
P1M0 EQU 91H ;端口设置寄存器
P1M1 EQU 92H ;端口设置寄存器
AK EQU 0C5H ;A/D转换控制寄存器
ADATA EQU 0C6H ;保存转换数据的高8位
ADATAD EQU 0BEH ;保存转换数据的低2位
ORG 00H
JMP MAIN
;==================================================
MAIN: MOV P1,#00H
MOV P3,#00H
MOV TMOD,#01H
MOV TH0,#0FCH
MOV TL0,#17H
MOV 30H,#01
MOV 32H,#03H
MOV 33H,#04H
MOV 31H,#02H
MOV 8EH,#00H
MOV PCON,#00H
MOV P1,#0FFH
MOV P3,#0FFH
MOV P1M0,#4H ;设置端口为A/D模式
MOV P1M1,#4H ;设置端口为A/D模式
MOV ADATA,#00H
MOV AK,#80H ;打开A/D电源
CALL DIP
CALL DIP
CALL DIP
CALL DIP
CALL DIP
CALL DIP
;==================================================
MOV AK,#0E2H ;选择通道P1。2为A/D输入端
;===============================================
LOOP_22: ORL Ak,#08H ;启动转换
LOOP_0: MOV A,#10H
ANL A,AK ;判断是否转换完成
JZ LOOP_0
;==============================================
ANL AK,#0E7H ;把标志位清零
MOV A,ADATA ;读取转换后的高8值
;==============================================
MOV B,#100
div AB
MOV 30H,A
MOV A,B
MOV B,#10
div AB
MOV 31H,A
MOV 32H,B
;================================================
MOV 66H,#50
LOOP: CALL DIP
DJNZ 66H,LOOP
JMP LOOP_22
;=================================================
DIP: MOV A,30H
CALL TABLE
MOV P3,A
SETB P1.0
MOV 65H,#1
CALL T2MS
CLR P1.0
;=================
MOV A,31H
CALL TABLE
MOV P3,A
SETB P1.1
MOV 65H,#1
CALL T2MS
CLR P1.1
;===============
MOV A,32H
CALL TABLE
MOV P3,A
SETB P1.7
MOV 65H,#1
CALL T2MS
CLR P1.7
;================
MOV A,33H
CALL TABLE
MOV P3,A
SETB P1.4
MOV 65H,#1
CALL T2MS
CLR P1.4
RET
;=================================================
T2MS:
MOV TH0,#0FCH
MOV TL0,#17H
SETB TR0
JNB TF0,$
CLR TF0
DJNZ 65H,T2MS
RET
;=============================================
TABLE: INC A
MOVC A,@A+PC
RET
DB 3FH,06H,9BH,8FH,0A6H,0ADH,0BDH,7H,0BFH,0AFH
;0 1 2 3 4 5 6 7 8 9
;==============================================
END
成功啦 更爱上我的单片机设计
STC12C2052单片机数字电压表汇编程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)