求通过80C51单片机0809以及ADC0809进行电流电压的数据采集原理图!

求通过80C51单片机以及ADC0809进行电流电压的数据采集原理图!_百度知道
求通过80C51单片机以及ADC0809进行电流电压的数据采集原理图!
要求是用LCD显示电压和功率C语言编程求大神啊~~~~~~~~~~
= =单片机是STC89S52
我有更好的答案
需要给你做一份吗
如果您愿意帮忙的话 那当然最好了
代做的我id
采纳率:24%
来自团队:
为您推荐:
其他类似问题
adc0809的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。已解决问题
我用51单片机和ADC0809设计的数字电压表只能测0到5V的电压。怎么才能扩大它的量程呢?
提问时间: 05:56:55
浏览次数:700
1ADC有一个IN0-IN7的模拟输入端,模拟输入多少多少电压开始测,但是等我做出来以后,要测量怎么把信号接进来呢,有八个脚呢,或者是其他接法? 你肯定要做一个板子吧,ADC0809的8路模拟量,能过导线连接到某个外部接线端子上面或者与某个电路连接。你要检测的是什么量啊?电路里面什么物理量啊?如果是电压的话,再要测电压的两端接上AD,8位的的AD就行啦,如果是电流的话,就在之路上加入一个电阻,阻值已知的,也是测电压,然后初上电阻就可以得出电流啦,也是8位的AD转换,搜集数据后就可以啦,如果怕脚步不够用的话,可以用ADCL549,串口输出的AD。嘿嘿 不可以用101和102代替51单片机晶振电路的两个瓷片电容的 1 101和102的容值分别是100和1000P&br/&&br/&
而51单片机晶振电路的两个瓷片电容应该是20~33PF 二者相差太大 不可替代 还是去卖电子元器件的商店买2个&br/&&br/&
呵呵 别忘给俺加分哦。
答案创立者
以企业身份回答&
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题基于ADC0809和51单片机的多路数据采集系统设计.p...
扫描二维码,下载文件到手机
相关文档推荐
当前文件信息
浏览:696次
下载:72次
您的VIP会员已过期,是否续费?
用户应遵守著作权法,尊重著作权人合法权益,不违法上传、存储并分享他人作品。举报邮箱:
京网文[0号 京ICP证100780号89C51单片机与1片ADC0809组成的数据采集系统编程实例
在 1 个由 89C51 单片机与 1 片 ADC0809 组成的数据采集系统中, ADC0809 的 8 个输入通道的地址为 7FF8H ~ 7FFFH ,试画出有关接口电路图,并编写出每隔 1 分钟轮流采集 1 次 8 个通道数据的程序,共采样 50 次,其采样值存入内 RAM20H 单元开始的存储区中
189C511ADC0809ADC080987FF8H7FFFH11850RAM20H
7fef8hfeffh
&&&&&&&&&&&&& ORG&&&&&& 000H
&&&&&&&&&&&&& LJMP&&&&& MAIN
&&&&&&&&&&&&& ORG&&&&&& 0003H
&&&&&&&&&&&&& LJMP&&&&& I_INT0
&&&&&&&&&&&&& ORG&&&&&& 000BH
&&&&&&&&&&&&& LJMP&&&&& I_T0
&&&&&&&&&&&&& ORG&&&&&& 050H
MAIN:&&& MOV&&&&& SP,#60H 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& SETB&&&&& IT1
&&&&&&&&&&&&& SETB&&&&& ET0
&&&&&&&&&&&&& SETB&&&&& EX1 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& SETB&&&&& EA 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& MOV&&&&& TMOD,#B
&&&&&&&&&&&&& MOV&&&&& TH0,#06H
&&&&&&&&&&&&& MOV&&&&& TL0,#06H
&&&&&&&&&&&&& MOV&&&&& R4,#240 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& MOV&&&&& R5,#250 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& MOV&&&&& R7,#8
&&&&&&&&&&&&& MOV&&&&& R6,#50
&&&&&&&&&&&&& MOV&&&&& R0,#20H
&&&&&&&&&&&&& SETB&&&&& TR0
&&&&&&&&&&&&& SJMP&&&&& $ 内容来自单片机之家www.dpj100.com
I_T0:&&&&& DJNZ&&&&& R4,GORET 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& MOV&&&&& R4,#240
&&&&&&&&&&&&& DJNZ&&&&& R5,GORET
&&&&&&&&&&&&& MOV&&&&& R5,#250
MOV&&&&& DPTR,#0FEF8H 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& MOVX&&& @DPTR,A 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& DEC&&&&&& R7
GORET:& RETI
I_INT0:&& MOVX&&& A,@DPTR
&&&&&&&&&&&&& MOV&&&&& @R0,A 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& INC&&&&&&& DPTR
&&&&&&&&&&&&& INC&&&&&&& R0
&&&&&&&&&&&&& MOVX&&& @DPTR,A
&&&&&&&&&&&&& DJNZ&&&&& R7,GORETI
&&&&&&&&&&&&& MOV&&&&& R7,#8 内容来自单片机之家www.dpj100.com
&&&&&&&&&&&&& DJNZ&&&&& R6,GORETI
&&&&&&&&&&&&& CLR&&&&&&& TR0
&&&&&&&&&&&&& CLR&&&&&&& EX1
GORETI:RETI 内容来自单片机之家www.dpj100.com
& 内容来自单片机之家www.dpj100.com
------分隔线----------------------------
与 ROM 之间的数据传送。 MOVC A , @A + DPTR MOVC A, @A + PC 执行后会使 /PSEN 有...
PUSH direct POP direct 不影响任何标志位。 PUSH direct 指令执行中,机器自动进行两...
寻找操作数存放单元的地址的方式,共 6 种方式。 1. 立即数寻址 所要找的操作数是一二...
MCS-51 系列单片机的指令系统中共为 111 条指令,分五大类: 数据传送类;( 29 条) ...
伪指令是告诉汇编程序,如何汇编源程序的指令。伪指令既不控制机器的操作,也不能被汇...
在 1 个由 89C51 单片机与 1 片 ADC0809 组成的数据采集系统中, ADC0809 的 8 个输入...查看: 5413|回复: 9
基于51单片机和ADC0809的数字电压表设计
&&本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,使用的元器件数目较少。外界电压模拟量输入到A/D转换部分的输入端,通过A/D转换变为数字信号,输送给单片机。然后由单片机给数码管数字信号,控制其发光,从而显示数字。
& & 注:因为ADC0809的通道选择端口是使用插针,做出电路板后再用导线连起来的,在程序里也少了通道选择的语句,请注意一下。
三.存储空间定义
(1)70H用于存放A/D转换结果,71H、72H、73H、74H分别存储显示用的三位数据如表所示。
(2)地址30H~39H存放显示在数码管上0~9的数。如表所示。
程序可分为数据采集系统、数据转换系统、显示系统,这三部分先独立测试,然后整体调试。
①数据采集系统:因为ADC0809本身并没有内部时钟,需要外部时钟来提供工作的时钟频率。如果利用单片机ALE端脚提供的频率为6MHZ,而ADC0809工作的频率在10KHZ-1MHZ。因此,需要增加含触发器功能的器件,从面增加了系统的复杂程度。后来,最终用软件编程来提供ADC0809工作的时钟频率,从而解决了这个问题。
②显示系统的调试:要显示的数据存放在71H、72H、73H、74H单元中,先在30H~39H分单元中存放0~9的数,运行显示程序,进行查表指令,察看显示的结果是否与存放值一样。在测试的过程中发现小数点没有显示,通过下面几条指令,把小数点显示出来。
MOVC A,@A+DPTR
& && && &&&CJNER2,#0FEH,NOT_ONE& &&&;不是左边第一个数码管,则转移
& && && &&&ORL A,#80H& && && && && &;左边第一个数码管显示小数点
NOT_ONE:& &MOVP0,A& && && && && && &;数码管段选
(1) 汇编语言程序清单
QIAN&&EQU&&71H
BAI& &EQU 72H
SHI& &EQU 73H
GEWEI EQU 74H& &&&;71H-74H存放显示数据,依次为个位、十位、百位、千位
SHUJU EQU 70H& && && &;地址70H存放采集数据&&
ST&&BITP3.0& && && && &;START和ALE共用一个端口
OE&&BIT P3.6
EOC BIT P3.7
CLK BITP3.3& &&&
ORG&&0000H
LJMP&&START
TAB:&&DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
& && && && &
START:& &&&
MAIN:& && &LCALL&&TEST& && && && &&&;数据采集函数
LCALL TURNDATA& && && && &;数据处理函数
& && && &&&LCALL&&DISPLAY& && && &&&;显示函数
& && && &&&LJMP& &MAIN
DELAY:& && && &MOV R7,#06H& && &&&;约延时1.5ms
LOOP1:& &&&MOV&&R6,#0FFH
LOOP2:& &&&DJNZ R6,LOOP2
& && && &&&DJNZR7,LOOP1& && &&&
& && & RET
TEST:& && &CLR&&ST
& && && & CLR&&OE
& && && &&&SETB ST
& && && & CLR&&ST& && && && && && &;ST端口下降沿,开始转换
LOOPCLK:& &SETBCLK& && && && && &&&;由软件来提供ADC0809工作的时钟频率
& && && & CLR&&CLK
& && && & JNB EOC,LOOPCLK& && && &;EOC=1时,退出循环
& && && &&&SETBOE& && && && && && &;转换后数据的传送
& && && & MOV P1,#0FFH& && && && &;P1端口读数据,需先给高电平
& && && & MOV A,P1& && && && && &
& && && &CLR&&OE
& && && & MOV SHUJU,A& && && && & ;存储数据到地址70H
TURNDATA:& && &
& && && &MOV&&A,SHUJU
& && && &MOV&&B,#51
& && && &DIV AB& && && && && && && &;余数在B,相除以后C=0
& && && &MOV&&QIAN,A& && && && &;储存千位
& && && &&&CLR&&F0
& && && &MOV A,B& && && && && && && && && && && && && &
& && && & SUBBA,#1AH& && && &&&;A减去26,测试上面AB相除时,余数与26相比较
& && && & MOV F0,C& && && && && && & ;余数&26,则C=1,不用加5调整
& && && & MOV&&A,#10
& && && & MUL&&AB
& && && & MOV&&B,#51
& && && & DIV&&AB
& && && & JB& &F0,LP1
& && && &ADD A,#5& && && && && && & ;若AB相除后B&=26,百位加五
LP1:& && &MOV BAI,A& && && && && && &;储存百位
& && && &&&MOV A,B
& && && &&&SUBBA,#1AH& && &
& && && & MOV&&F0,C
& && && & MOV&&A,#10
& && && & MUL&&AB
& && && & MOV&&B,#51
& && && & DIV&&AB
& && && & JB F0,LP2& && && && && && &;F0=1时,转移& && && && &
& && && & ADD A,#5& && && && && && & ;若AB相除后B&=26,十位加五
LP2:& && & MOV SHI,A& && && && && && &;储存十位
& && && & CLR&&F0
& && && & MOV&&A,B
& && && &&&SUBBA,#1AH
& && && & MOV&&F0,C
& && && & MOV&&A,#10
& && && & MUL&&AB
& && && & MOV&&B,#51
& && && & DIV&&AB
& && && & JB F0,LP3& && && && && && &;F0=1时,转移& && && && &
& && && & ADD A,#5& && && && && && & ;若AB相除后B&=26,个位加五&&
LP3:& && & MOV GEWEI,A& && && && && & ;储存个位
DISPLAY:& && &
MOV&&R1,#4& && && && && &;循环四次& &
& && && & MOV& &R2,#0FEH
& && && & MOV&&R0,#71H& && && && & ;存放显示初始地址
XIANSHI:& && &
MOV DPTR,#TAB&&
& && && &&&MOVA,@R0
& && && &&&MOVCA,@A+DPTR
& && && &&&CJNER2,#0FEH,NOT_ONE& &&&;不是左边第一个数码管,则转移
& && && & ORL A,#80H& && && && && &;左边第一个数码管显示小数点
NOT_ONE:& &MOVP0,A& && && && && && &;数码管段选
& && && &&&MOVP2,R2& && && && && &&&;数码管位选
& && && &&&LCALLDELAY& && && && && &;延时
& && && & MOV& &A,R2
& && && & RL& &A& && && && && && &;循环左移
& && && & MOV& &R2,A
& && && &&&INCR0& && && && && && & ;选取下一个地址
& && && & DJNZ&&R1,XIANSHI
(2) C语言程序清单
#include&reg51.h&
sbit CLK=P3^3;
sbit OE=P3^6;
sbit ST=P3^0;
sbit EOC=P3^7;
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(unsigned int z)
& &while(z--);
void ADC_0809()
& & unsignedchar temp=2;
& &ST=0;&&
& &while(!EOC)
& && & CLK=1;
& && & CLK=0;
& &P1=0& && && && && && && &&&//读取P1端口数据
& &temp=P1;
& &dianya=(unsigned int)temp*19.53;
void Vpp_Show()
& & unsignedchar qian,bai,shi,
& &qian=dianya/1000;
& &bai=dianya00/100;
& &shi=dianya0/10;
& &P0=table[qian]|0x80;& && && && && &&&//显示小数点
& &delay(50);
& &P0=table[bai];
& &delay(50);
& &P0=table[shi];
& &delay(50);
& &P2=0xf7;
& &P0=table[ge];
void main()
& &while(1)
& && &ADC_0809();
& && &Vpp_Show();
& && && && && && && && && && && && && && && && && && && && && && &&&(技术部)
楼主好人能发下仿真图吗?急需,,,,,在线等,忙着交作业
楼主能给我发下仿真图吗
楼主,好奇问下,你的ADC0809clock端,没有方波电压,怎么能工作呢
学习中。。。简单且实用的东西
楼主,问一下如何改成数字电流表和扩大或缩小电流表的量程
out和p1接反了吧
楼主能给我发下仿真图吗
谢谢楼主,学习中
Powered by

我要回帖

更多关于 adc0809与单片机 的文章

 

随机推荐