AD转换子程序

AD转换子程序
AD转换子程序

实验6 AD转换器实验

配合教材p227-p233,根据虚拟实验的环境所提供的子程序

; ---------------------------

; 程序名称:ADC0832数据采集子程序

; 功能:采集ADC0832采集的数据

; 数据采集的结果存:20H

; 占用的寄存器:R5,A,CY

; ---------------------------

AD: MOV R5,#8

CLR CS

CLR CK1

SETB CK1

CLR CK1

SETB CK1

CLR CK1

CLR DO1

NOP

NOP

SETB CK1

NOP

NOP

CLR CK1

SETB DO1

NOP

NOP

SETB CK1

NOP

NOP

ADA: CLR CK1

MOV C,DO1

RLC A

SETB CK1

DJNZ R5,ADA

SETB CS

MOV 20H,A

RET

; ----------------------------

; 子程序名称:CAL_VOL

; 功能:将AD转换结果(已存放在20H中)处理成为带一位小数点的十进制数

; 入口:内部ram 20H-- 十六进制数

; 出口:V_1 (77H)--用于电压0.1位值的显示;V_10(76H)--用于电压个位值的显示;; 占用的寄存器:A,B

; ------------------------------------------------------------

CAL_VOL: MOV A,20H ;算法是:x*(5/256)*10=x*50/256/10

MOV B,#100 ;虚拟实验中ADC0832获取的值只有实际值的一半,只好乘2了

MUL AB

MOV A,B

MOV B,#10

DIV AB

MOV V_10,A

MOV V_1, B

RET

;*******************************************************

;这是一个用5个CD4094做的显示参考子程序

;在单片机Proteus的实验中可用此程序代替实验版中的LCD

;程序名:display

;功能:显示LED 的5位数字

;说明:所显示的数字个位~万位的内容存于RAM75~79H

;占用R0,R7,DPTR

;*******************************************************

DIN BIT P2.6

CLK BIT P2.7

STB BIT P2.3

DISPLAY:MOV R0,#75H

DP12: CLR STB

MOV R7,#8

MOV A,@R0

MOV DPTR,#TAB

MOVC A,@A+DPTR

DP13: RLC A

MOV DIN,C

CLR CLK

SETB CLK

DJNZ R7,DP13

INC R0

CJNE R0,#7AH,DP12

SETB STB

RET

TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;0,1,2,3,4,5

DB 82H,0F8H,80H,90H,0FFH,9DH,0C6H;6,7,8,9,暗,u,C

DELAY: MOV R4,#10

L1: MOV R5,#0

L2: MOV R6,#0

L3: DJNZ R6,L3

DJNZ R5,L2

DJNZ R4,L1

RET

相关主题
相关文档
最新文档