找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5851|回复: 2
打印 上一主题 下一主题
收起左侧

基于ADC0809的电阻测量

[复制链接]
跳转到指定楼层
楼主
ID:73477 发表于 2015-2-10 17:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P2^0;     //LCD读写
sbit lcden=P2^1;     //LCD使能
//*****************************************
sbit DA=P2^2;     
sbit DB=P2^3;
sbit DC=P2^4;
sbit ST=P2^5;    //LCD驱动口
sbit OE=P2^6;
sbit EOC=P2^7;
sbit F=P3^0;
//********************************************
sbit KR=P3^1;   
uchar num;
uchar code table_1[16]="taoyiming.c";
uchar table_2[16]="0.00000";
void delay(uint x)    //延时函数   
{
  uint i,j;
for(i=x;i>0;i--)
  for(j=110;j>0;j--);
}
void write_com(uchar com)     //LCD写指令函数
{
lcdrs=0;
P0=com;
delay(1);      
lcden=1;
delay(1);
lcden=0;
}
void write_data(uchar date)    //LCD写数据函数   
{
lcdrs=1;
P0=date;
delay(1);
lcden=1;
delay(1);
lcden=0;
}
void display()
{
  write_com(0x80+0x40);
for(num=0;num<7;num++)      
{
   write_data(table_2[num]);
  delay(1);
}   
}
void ad0809()
{
uchar a;
float b=222;
uint i;
DC=0;
DA=DB=1;
  ST=1;
_nop_();    //延时一个机器周期
ST=0;
display();
while(EOC!=1);
P1=0xff;
OE=0;
_nop_();
OE=1;
_nop_();
a=P1;
OE=0;
b=a*(5.0/256.0)*10000;
i=(uint)b;
table_2[0]=i/10000+48;
table_2[1]='.';
table_2[2]=i/1000%10+48;
table_2[3]=i/100%10+48;
table_2[4]=i/10%10+48;
table_2[5]=i%10+48;   
display();   
}
void init()           //初始化函数  
{
  lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
for(num=0;num<11;num++)      
{
   write_data(table_1[num]);
  delay(1);
}
TMOD=0X01;
TH2=(65536-5000)/256;
TL2=(65536-5000)%256;
EA=1;
ET2=1;
TR2=1;
}
void main()
{
init();
  while(1)
{
  KR=1;
  if(KR==0){while(KR==0);ad0809();}
   
}  
}
void timer()interrupt 5
{
  TH2=(65536-5000)/256;
TL2=(65536-5000)%256;
F=0;
F=~F;
}   


由于没有找到有源晶振,所以我就用定时器产生一个时钟脉冲,
void timer()interrupt 5
{
  TH2=(65536-5000)/256;
TL2=(65536-5000)%256;
F=0;
F=~F;
}   
由于时间问题,我就不把实物展示出来了,下面是我的电路连接图:




排阻部分








电源部分








液晶部分






ADC0809部分






单片机部分






被测电阻和按键部分




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

板凳
ID:102963 发表于 2018-12-31 11:10 | 只看该作者
你这个是电压测量吧,测出来是电压,而且你的图的ADC0808部分的12脚没接电源,16脚没接地,10脚没有CLOCK网络标号。
回复

使用道具 举报

沙发
ID:99590 发表于 2015-12-19 22:53 | 只看该作者
想问一下后面的两个按键是起什么作用?1602怎么不显示阻值呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表