资源简介
在工业生产和控制中,常常需要对0-16V的多点电压值进行采集以完成后续工作,因此对多点高量程电压的测量是十分必要的。本次设计主要采用单片机AT89S51、A/D转换器TLC2543、继电器、基准电压源、LCD1602液晶显示器设计的多点数字电压表。该设计将输入的0-16V直流电压分为高、低两个量程进行测量,待测模拟电压输入默认接入高量程电路,通过单片机编程实现多路A/D转换TLC2543的选通和接入,转换结果与设定值作比较以控制继电器自动切换高、低电压测量量程。转换结果经单片机运算处理后,通过1602液晶屏将三路被测电压值显示出来。该设计最终可实现对三路0-16V直流电压的测量与显示,能自动转换量程,误差小于0.05V。可应用在工业生产控制中,对生产进行实时监控,发现异常及时提醒相关人员采取措施。
代码片段和文件信息
#include //包含头文件
#define uint unsigned int
#define uchar unsigned char //宏定义
sbit ale=P2^6;
sbit start=P2^7;
sbit eoc=P3^0;
sbit oe=P3^1; //定义adc0809的控制引脚
sbit adda=P2^0;
sbit addb=P2^1;
sbit addc=P2^2; //adc0809的地址引脚
sbit rs=P2^3;
sbit rw=P2^4;
sbit en=P2^5; //液晶的控制引脚
sbit key1=P3^4;
sbit key2=P3^3;
sbit key3=P3^2; //档位切换按键定义
uint voltdatarealvoltijkltsuma[5]; //定义全局变量
uchar add; //地址变量
uchar code t1[]={“DC Voltmeter:IN “};
uchar code t2[]={“ (0~ V): . V “};
uchar code t3[]={“ Hello! “};
uchar code t4[]={“ Welcome! “}; //初始化显示
void delay(uint ms) //延时程序
{
uint ij;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void writelcd_cmd(uchar cmd)//向1602液晶显示器里写入命令的函数
{
en=0;
rs=0;
rw=0;
delay(1);
P0=cmd;
en=1;
delay(1);
en=0;
}
void writelcd_dat(uchar dat)//向1602液晶显示器里写入数据的函数
{
en=0;
rs=1;
rw=0;
delay(1);
P0=dat;
en=1;
delay(1);
en=0;
}
void lcd_init() //初始化1602液晶显示器的函数
{
writelcd_cmd(0x38);
delay(5);
writelcd_cmd(0x38);
delay(5);
writelcd_cmd(0x38);
writelcd_cmd(0x08);
writelcd_cmd(0x01);
writelcd_cmd(0x06);
writelcd_cmd(0x0c);
writelcd_cmd(0x80);
}
void addselect() //量程选择
{
switch(add) //判断地址
{
case 0:adda=0;addb=0;addc=0;break;
case 1:adda=1;addb=0;addc=1;break;
case 2:adda=0;addb=1;addc=0;break; //切换到不同的量程
default:break;
}
}
uint adtrans() //AD转换
{
sum=0; //滤波开始
for (i=0;i<5;i++)
{
addselect();
ale=1;
ale=0;
start=1; //启动AD转换。
start=0;
while(eoc==0); //等待转换结束。
oe=1;
a[i]=P1; //出入转换结果。
delay(5); ////每隔5usAD转换并采集一次数据,将得到的数值存入数组中
}
for (j=0;j<4;j++)
for(i=0;i<4-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=1;i<4;i++)
{
sum+=a[i];
} //采用冒泡法比较,取中间3个数值
voltdata=sum/3;
delay(1);
oe=0;
voltdata=(100*voltdata)/51; //处理运算结果。
return voltdata;
}
void disvolt() //显示函数
{
uchar sisaneryi; //四个显示的位
switch(add)
{
case 0:realvolt=voltdata;writelcd_cmd(0x80+15);writelcd_dat(‘1‘);writelcd_cmd(0xc0+4);writelcd_dat(‘0‘);writelcd_dat(‘5‘);break; //计算并显示对应的电压值和量程
case 1:realvolt=voltdata*2.4;writelcd_cmd(0x80+15);writelcd_dat(‘2‘);writelcd_cmd(0xc0+4);writelcd_dat(‘1‘);writelcd_dat(‘2‘);break;
case 2:realvolt=voltdata*4.8;writelcd_cmd(0x80+15);writelcd_dat(‘3‘);writelcd_cmd(0xc0+4);writelcd_dat(‘2‘);writelcd_dat(‘4‘);break;
default:break;
}
si=realvolt/1000;
san=realvolt/100%10;
er=realvolt/10%10;
yi=realvolt%10; //将电压值分成4个一位数,方便显示
writelcd_cmd(0xc0+9); //显示电压值
writelcd_dat(si+0x30);
writelcd_dat(san+0x30);
writelcd_cmd(0xc0+12);
writelcd_dat(er+0x30);
writelcd_dat(yi+0x30);
}
void anjian() //按键扫描函数
{
if(key1==0) //第一个按键按下
add=0; //切换档位
else if(key2==0)
add=1;
else if(key3==0)
add=2;
}
void init() //初始化函数
{
EA=1; //打开中断总开关
add=0; //初始化为0档,
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 619661 2018-10-14 22:43 功能说明\录像\QQ图片20181014224438.png
文件 325196 2018-10-14 22:44 功能说明\录像\QQ图片20181014224451.png
文件 670426 2018-10-14 22:44 功能说明\录像\QQ图片20181014224454.png
文件 608 2018-04-26 15:48 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\1、使用之前必看\1、使用之前必看.txt
文件 99638 2018-04-26 15:30 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\1、使用之前必看\芯片放放置步骤示范.jpg
文件 403922 2013-08-22 10:11 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\1、使用之前必看\计算机更改串口(COM口)的方法.pdf
文件 120832 2013-04-07 17:53 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\2、USB驱动\CH340T驱动安装.doc
文件 4038 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\AT898252.CFG
文件 2742 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\AT89X051.CFG
文件 3066 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\AT89X5X.CFG
文件 31578 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M168S.CFG
文件 27366 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M169PS.CFG
文件 28014 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M169S.CFG
文件 32550 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M16S.CFG
文件 32550 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M32S.CFG
文件 26394 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M48S.CFG
文件 33198 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M64S.CFG
文件 32550 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M8515S.CFG
文件 32550 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M8535S.CFG
文件 30606 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M88S.CFG
文件 32550 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\M8S.CFG
文件 5334 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\SST89554.CFG
文件 5010 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\SST89564.CFG
文件 5658 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\SST89C5X.CFG
文件 2094 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\SST89F5X.CFG
文件 22182 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\T2313S.CFG
文件 28338 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\TINY26S.CFG
文件 3390 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\W78EXX1.CFG
文件 5982 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\W78EXX2.CFG
文件 5982 2008-08-14 18:36 功能说明\成品\oM18-USB烧录器使用资料\FoM18-USB烧录器使用资料\3、AT89 AVR 24 93烧录软件\WLPRO_V220_SETUP\cfg\W78EXX3.CFG
............此处省略45个文件信息
- 上一篇:华为网络拓扑图标
- 下一篇:有限体积法基础_第2版--李人宪
相关资源
- 汇编语言指令大全(详解版).pdf
- 51单片机门禁上位机,下位机全部工程
- 基于单片机的智能定时插座
- HOT51 开发板配套资料
- 基于51单片机接入阿里云物联网.pdf
- 基于DS18B20温度检测系统设计内含原理
- 51单片机自学笔记
- 《单片机基础》李广弟
- stm32 modbus主机程序125364
- “流速”可控的彩灯控制器
- 基于51单片机的智能窗户设计
- 普中科技51单片机开发板的实验程序资
- 基于STM32单片机的MQ3 传感器+OLED显示程
- ADS1115的驱动代码,基于STM32F103
- 基于51单片机的水箱、水塔水位检测系
- STC12C5A60S2配套例程
- 基于STM32 的智能手环源程序设计
- stm32普通直流电机串口控制模板
- 单片机原理及应用笔记
- 51 单片机智能小车代码
- 毕设-超声波测距仪
- 基于单片机的室内空气净化系统.zip
- 基于51单片机的数字电压表.rar
- 汇编程序测控51单片机超声波测距16
- 多波形发生器设计
- 合泰单片机选型
- 基于单片机的无线红外防盗报警电路
- 基于STM32单片机的饮水机水位控制系统
- 51单片机课程设计及报告
- 单片机音乐代码生成器.zip
评论
共有 条评论