首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ADUC812单片机的12位AD可以完全利用吗?

ADUC812单片机的12位AD可以完全利用吗?

小弟最近在利用ADUC812上的12位AD做连续的数据采集,采用单步采样每隔2ms采集一次.其基准电压为2.5V,一个LSB约为0.6mv.也就是2.5V/4096=0.6mv,4096就是2的12次方.当我输入的模拟电压小于150mv也就是最多用12位中的8位表达时,单片机的DA输出正常没有信号跳变.但当输入的模拟电压大于150mv时,也就是用8为数据无法表达得采用12为数据表达时,此时的DA输出虽然能正常工作,但是输出的信号总有很多小的信号跳变.请问各位高手,这样的DA输出情况正常吗?

我的数据采集程序和DA输出程序如下:各位高手请指点.如果不是程序的问题,硬件方面会有什么问题吗?

$MOD812
CHAN EQU 00
CSEG
ORG 0000H
LJMP START
ORG 0033H ;ADC转化结束
LJMP INT
ORG 0080H
START:MOV ADCCON1,#70H ; 设置控制
MOV ADCCON2,#CHAN ; 选择0通道
MOV DACCON,#2DH
SETB EA
SETB EADC ; 打开ADC中断
SETB ES
AGAIN:CALL DELAY
SETB SCONV
LJMP AGAIN
DELAY:MOV R7,#4
DLY1:MOV R6,#229
DJNZ R6,$
DJNZ R7,DLY1
RET
ORG 0200H
INT:MOV R2,ADCDATAL ;
MOV R3,ADCDATAH
MOV DAC0L,R2
MOV DAC0H,R3
RETI

END

返回列表