微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STC12C2052单片机制作数字电压表汇编程序

STC12C2052单片机制作数字电压表汇编程序

时间:12-02 来源:互联网 点击:
STC12C2052单片机芯片自带的ad进行采样得到电压并显示在数码管上面,下面是汇编语言源程序:

;===================数字电压表模拟采样===================================

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

成功啦 更爱上我的单片机设计

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top