该程序的功能是用LCD1602来显示时钟,同时显示一个正在充电的电池图标,其中的lcd_char_sel()函数就是自己设计的电池图标
#include <reg52.h>
#include "./delay/delay.h"
#include "./delay/delay.h"
sbit RS = P2^4;
sbit RW = P2^5;
sbit E = P2^6;
sbit RW = P2^5;
sbit E = P2^6;
#define LCDPORT P0
#define LCD_WRITE_DATA 1
#define LCD_WRITE_COM 0
#define LCD_WRITE_DATA 1
#define LCD_WRITE_COM 0
unsigned char h = 10;
unsigned char s = 0;
unsigned char m = 0;
unsigned char s = 0;
unsigned char m = 0;
void timer0_init()
{
EA = 1;
TH0 = (65536 - 20000)/256;
TL0 = (65536 - 20000)%256;
TMOD |= 0x01;
ET0 = 1;
TR0 = 1;
}
{
EA = 1;
TH0 = (65536 - 20000)/256;
TL0 = (65536 - 20000)%256;
TMOD |= 0x01;
ET0 = 1;
TR0 = 1;
}
void timer0_isr() interrupt 1
{
static unsigned char i = 0;
TH0 = (65536 - 20000)/256;
TL0 = (65536 - 20000)%256;
i++;
if(50 == i)
{
i = 0;
s++;
if(60 == s)
{
s = 0;
m++;
if(60 == m)
{
m = 0;
h++;
if(24 == h)
{
h = 0;
}
}
}
}
}
{
static unsigned char i = 0;
TH0 = (65536 - 20000)/256;
TL0 = (65536 - 20000)%256;
i++;
if(50 == i)
{
i = 0;
s++;
if(60 == s)
{
s = 0;
m++;
if(60 == m)
{
m = 0;
h++;
if(24 == h)
{
h = 0;
}
}
}
}
}
void lcd_write(unsigned char byte, unsigned char flag)
{
if(flag)
{
RS = LCD_WRITE_D
{
if(flag)
{
RS = LCD_WRITE_D