可以设定目标电压和电流值,仿真通过模拟未达到设定的电流电压值来判定是否充满电,充电则充满LED灯显示,如果其中电流或者电压未达到设定值,则标定位未充满,未充满led灯亮。
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define IO_1602 P2 //IO口
sbit RS_1602=P0^5;
sbit RW_1602=P0^6;
sbit E_1602=P0^7;
sbit CS=P3^0;
sbit CLK=P3^1;
sbit DIO=P3^2;
sbit led1=P3^6;
sbit led2=P3^7;
sbit key1=P1^2;
sbit key2=P1^3;
sbit key3=P1^4;
sbit key4=P1^5;
void delay_ms(unsigned int t)//11.0592MHz 1ms
{
uchar x,y;
for (t;t>0;t--)
{
for (x=0;x<114;x++)
for (y=0;y<1;y++);
}
}
void Wr1602Cmd(unsigned char dat)
{
//写命令函数
E_1602=0;
IO_1602=dat;
RS_1602=0;
RW_1602=0;
E_1602=1;
delay_ms(1);
E_1602=0;
delay_ms(1);
}
void Wr1602Dat(unsigned char dat)
{
//写数据函数
E_1602=0;
IO_1602=dat;
RS_1602=1;