目录
具体实现功能
1、输入直流电压值,自动选择量程,处理后利用LCD1602进行显示。
2、仿真模拟实现直流电压的测量与显示,可进行四个量程的切换(2V、20V、200V、500V)。
仿真演示视频:
基于51单片机的多量程数字电压表—仿真视频
设计介绍
51单片机简介
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。
本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。
资料内容
仿真实现(protues8.7)
本设计利用protues8.7软件实现仿真设计,具体如图。
程序(Keil5)
本设计利用KEIL5软件实现程序设计。
主函数如下:
void main()
{
float DATA,temp2;
char temp1;
LcdInit(); //LCD初始化
LCD_word(0x80,"voltage:");
while(1)
{
P2=0xFF;
temp1=P2;
temp1=temp1&0xf0;
switch(temp1)
{
case 0x80: {P2=P2&0xF8;A=0;break;}
case 0xc0: {P2=P2&0xF9;BB=0;break;}
case 0xE0: {P2=P2&0xFA;C=0;break;}
case 0xF0: {P2=P2&0xFB;D=0;break;}
}
AD_START=0;
AD_OE=0;
AD_START=1;
_nop_();
AD_START=0;
while(!AD_EOC);
AD_OE=1;
temp2=P1;
AD_OE=1;
DATA=temp2/255.0*5.0;
temp1=P2;
temp1=temp1&0x0f;
switch(temp1)
{
case 0x08:DATA=DATA*1;break;
case 0x09:DATA=DATA*10;break;
case 0x0A:DATA=DATA*100;break;
case 0x0B:DATA=DATA*1000;break;
}
LCD_DATA(0x89,DATA);
LCD_word(0x80+15,"V");
}
}
程序运行结果如图:
全部内容
全部内容如下:
本期资料获取
资料链接:资料已上传优快云(点击下载)