完整版 电路图和程序代码 下载地址
https://pan.baidu.com/s/1INvP3LHqY_Mqeh7x1fX9tA?pwd=8888
部分代码展示
//<程序名>:数字电压表 **
//<功能>:使用LCD显示被检测电压,精度为0.05V,范围是0~5V。 **
#include"includes.h"
#define TIME0H 0x3C
#define TIME0L 0xB0
sbit KEY1=P1^2;
sbit jdq_ctrl=P1^1; //jidianqi kongzhi
sbit leakage =P1^0; //loudian
uchar uc_Clock=0; //定时器0中断计数
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把电压显示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void vShowVoltage(uint uiNumber)
{
uchar ucaNumber[3],ucCount;
if(uiNumber>999)
uiNumber=999;
ucaNumber[0]=uiNumber/100; //把计算数字的每个位存入数组。
ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;
ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];
for(ucCount=0;ucCount<3;ucCount++)
{
vShowOneChar(ucaNumber[ucCount]+48); //从首位到末位逐一输出。
if(ucCount==0)
vShowOneChar('.');
}
}
//*************************************************************************************************
//* *
//* ********************************主函数****************************** *
//* *
//*************************************************************************************************
void main()
{
static unsigned int flag_leakage ;
/* TMOD=0x01; //定时器0,模式1。
TH0=TIME0H;
TL0=TIME0L;
TR0=1; //启动定时器。
ET0=1; //开定时器中断。
EA=1; //开总中断*/
vdInitialize()
vWriteCMD(0x84); //写入显示起始地址(第一行第4个位置)
vShowChar("Normal");
vWriteCMD(0xC9);
jdq_ctrl=1;