问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用89S52和ADC0804采集数据并在LED上显示

发布网友 发布时间:2022-04-23 09:11

我来回答

1个回答

热心网友 时间:2023-05-03 16:53

ADC0804转换程序
//好久没在这发表日志了,写了一段AD0804的程序,希望对新
//手们有所帮助^_^也希望高手能出来指点错误……

#include <reg51.h>

unsigned char code seg7code[10]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //显示段码
sbit int1=P3^3; //定义管脚功能
sbit cs="P3"^2; //使能端
sbit wr="P3"^6; //写端口
sbit rd="P3"^7; //读端口

void Delay(unsigned int tc) //显示延时程序
{
while( tc != 0 )
{
unsigned int i;
for(i=0; i<100; i++);
tc--;
}
}

unsigned char adc0804( void ) //读AD0804子程序
{
unsigned char addata,i;
rd=1;
wr=1;
int1=1; //读ADC0804 前准备
P1=0xff; //P1全部置一准备
cs=0;
wr=0;
wr=1; //启动ADC0804开始测电压
while(int1==1); //查询等待A/D转换完毕产生的INT(低电平有效)信号
rd=0; //开始读转换后数据
i=i; i="i"; //无意义语句,用于延时等待ADC0804 读数完毕
addata=P1; //读出的数据赋与addate
rd=1;cs=1; //读数完毕
return(addata); //返回最后读出的数据
}

unsigned int datpro(void)//ADC0804 读出的数据处理
{
unsigned char x;
unsigned int dianyah,dianyal; //用于存储读出数据的高字节和低字节
unsigned int dianya="0"; //存储最后处理完的结果 注意数据类型
for(x=0;x<10;x++) //将 10次测得的结果存储在dianya中
{
dianya=adc0804()+dianya;
}

dianya=dianya/10; //求平均值
dianyah=dianya&0xf0; //屏蔽低四位
dianyah=dianyah>>4; //右移四位 取出高四位
dianyal=dianya&0x0f; //屏蔽高四位 取出低四位
dianya=dianyal*20+dianyah*320; //最后的结果是一个四位数,便于显示
return(dianya); //返回最后处理结果
}

void Led()
{
unsigned int date;
date=datpro(); //调用数据处理最后结果
P2=P2&0xef;
P0=seg7code[date/1000]|0x80; //输出个位数和小数点
Delay(8);
P2=P2|0xf0; P2=P2&0xdf;
P0=seg7code[date%1000/100]; //输出小数点后第一位
Delay(8);
P2=P2|0xf0; P2=P2&0xbf;
P0=seg7code[date%100/10]; //输出小数点后第二位
Delay(8);
P2=P2|0xf0; P2=P2&0x7f;
P0=seg7code[date%10]; //输出小数点后第三位
Delay(8);
P2=P2|0xf0;
}

void main()
{
while(1)
{
Led( ); //只需调用显示函数
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 出租房出事房东有责任吗 我的显示器最佳分辨率是1024*768的而我的显卡支持的分辨率却很高。如果我把电脑分辨率设置为显卡支持的最 房东的责任和义务 单片机TA89S52,通过单片机控制一个LED灯泡亮灭,具体情况见补充,请给个具体C程序 为什么当调到电脑显示器的最佳分辨率后,显示的内容会变得特别小 哪些方面影响白光LED的颜色一致性,特别是当 CIE-X 的跨度只有 0.01时,颜色依然不均匀是为什么? ...要求用3个LED管显示其测距,精确到小数点后2位如,X.XX米。 电脑显示器为什么分辩率越高字体越小呢? 先锋液晶led-43b800s价格多少 我电脑显示器是22.1英寸的,分辨率应设成多少为佳? 摆线针轮减速机 XLED64-187-4 这个型号的含义是什么? Acer 宏碁 液晶显示器 四大系列 X V S G 每个系列对应的都有什么特点? 显示器分辨率调到最佳显示不清楚是怎么回事 康佳电视led55x89o0s左下角有安全模式四个字怎么消除 显示器分辨率 hkc s2235i-led是多少寸 马来西亚金枕头榴莲是委托安徽制造商制作的吗? 电脑屏幕分辨率怎么调最合适? 20分!给个51单片机图像液晶程序 tcl电视a71c系列的耗能等级是3级,能效指数(EEL-LCD)为1.3,可以吗 你们觉得显示器分辨率太高好不好? 房东是职务吗 租客违法房东要负什么责任吗 我家装的是WIN7,显示屏是三星S22B150。显示器的最佳分辨率是1920*1080,60HZ。但是我调成1920*1080很模糊 房东的职责 电脑显示器分辨率的1440*900很模糊怎么办 房屋租赁房东注意事项有哪些 我的电脑显示器分辩率为什么最高只是1366X768没有1440以上的? 做房东的注意事项 租客死了房东要负什么责任 如果房屋租赁期间租房人发生违法犯罪活动,房东要负责任吗? 房屋租赁专员,这个职位怎么样? 租房者违法乱纪,房东需负法律责任吗 房东需要注意什么 租户扰民房东有责任么 房东行业是帮死人化妆的,他出租的楼房能不能住人? 房东租房有什么注意事项? 房东的工作单位和职位怎么填? 由于找不到amd_ags_x64.dll无法继续执行代码.重新安装程序可能会解决此问题 由于找不到SAFEENGINE.DLL,无法继续执行代码,重新安装程序可能会解决问题?