ad_da.c
#include "myhead.h"
unsigned char AD_read()
{
unsigned char temp;
iic_start();
iic_send_byte(0x90);
if(0 == ack)
{
return ERR;
}
iic_send_byte(0x44);
if(0 == ack)
{
return ERR;
}
iic_start();
iic_send_byte(0x91);
if(0 == ack)
{
return ERR;
}
temp = iic_rcv_byte();
iic_noack();
iic_stop();
return temp;
}
// unsigned char DA_Write(unsigned char num)
// {
// iic_start();
// iic_send_byte(0x90);
// if(0 == ack)
// {
// return ERR;
// }
// iic_send_byte(0x40);
// if(0 == ack)
// {
// return ERR;
// }
// iic_send_byte(num);
// if(0 == ack)
// {
// return ERR;
// }
// iic_stop();
//
// return SUCC;
// }
void DA()
{
// 电池
unsigned char test;
unsigned int vol;
unsigned int tmp;
unsigned char flag = 1;
unsigned char key;
lcd_init();
//电池外壳
// lcd1602_write(0x40,LCD_WRITE_COM);
// lcd1602_write(0x0e,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// //1-20% 0x1
// lcd1602_write(0x48,LCD_WRITE_COM);
// lcd1602_write(0x0e,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// //21-40% 0x2
// lcd1602_write(0x50,LCD_WRITE_COM);
// lcd1602_write(0x0e,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// //41-60% 0x3
// lcd1602_write(0x58,LCD_WRITE_COM);
// lcd1602_write(0x0e,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// //61-80% 0x4
// lcd1602_write(0x60,LCD_WRITE_COM);
// lcd1602_write(0x0e,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x11,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// //81-100% 0x5
// lcd1602_write(0x58,LCD_WRITE_COM);
// lcd1602_write(0x0e,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
// lcd1602_write(0x1f,LCD_WRITE_DATA);
while(flag)
{
test = AD_read();
vol = test / 255.0 * 500.0;
tmp = vol * 2;
lcd_dis_char(10,0,(vol / 100) + 0x30);
lcd_dis_char(11,0,'.');
lcd_dis_char(12,0,(vol % 100 / 10 + 0x30));
lcd_dis_char(13,0,(vol % 10) + 0x30);
lcd_dis_char(14,0,'V');
delay_ms(200);
if(vol < 500 && vol >= 50)
{
lcd_dis_char(10,1,' ');
lcd_dis_char(11,1,(tmp / 100) + 0x30);
lcd_dis_char(12,1,(tmp % 100 / 10) + 0x30);
lcd_dis_char(13,1,'%');
}
if(vol == 500)
{
lcd_dis_char(10,1,'1');
lcd_dis_char(11,1,0x30);
lcd_dis_char(12,1,0x30);
lcd_dis_char(13,1,'%');
}
if(vol < 50)
{
lcd_dis_char(10,1,' ');
lcd_dis_char(11,1,' ');
lcd_dis_char(12,1,(tmp % 100 / 10) + 0x30);
lcd_dis_char(13,1,'%');
}
// lcd1602_write(0x80 + 15,LCD_WRITE_COM);
// if(0 == vol)
// {
// lcd1602_write(0x0,LCD_WRITE_DATA);
// }
// if(vol <= 100 && vol > 0)
// {
// lcd1602_write(0x1,LCD_WRITE_DATA);
// }
// if(vol <= 200 && vol > 100)
// {
// lcd1602_write(0x1,LCD_WRITE_DATA);
// }
// if(vol <= 300 && vol > 200)
// {
// lcd1602_write(0x2,LCD_WRITE_DATA);
// }
// if(vol <= 400 && vol > 300)
// {
// lcd1602_write(0x4,LCD_WRITE_DATA);
// }
// if(vol <= 500 && vol > 400)
// {
// lcd1602_write(0x5,LCD_WRITE_DATA);
// }
key = key_scan();
if(0xe7 == key)
{
lcd_init();
lcd_over();
flag = 0;
}
}
}
ad_da.h
#ifndef _AD_DA_H
#define _AD_DA_H
extern unsigned char AD_read();
//extern unsigned char DA_Write(unsigned char num);
extern void DA();
#endif