• 大小: 8.41MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-04
  • 语言: 其他
  • 标签: 单片机  

资源简介

在工业生产和控制中,常常需要对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个文件信息

评论

共有 条评论