#include <reg52.h>
#include "delay.h"
#define LCDPORT P0
sbit RS = P2^4;
sbit RW = P2^5;
sbit E = P2^6;
#define LCD_WRITE_DATA 1
#define LCD_WRITE_COM 0
void lcd_write(unsigned char byte, unsigned char flag)
{
if(flag)
{
RS = 1;
}
else
{
RS = 0;
}
RW = 0;
E = 1;
LCDPORT = byte;
delay_us(5);
E = 0;
}
void lcd_init()
{
delay_ms(16);
lcd_write(0x38, LCD_WRITE_COM);
delay_ms(5);
lcd_write(0x38, LCD_WRITE_COM);
delay_ms(5);
lcd_write(0x38, LCD_WRITE_COM);
delay_ms(5);
lcd_write(0x38, LCD_WRITE_COM);
delay_ms(5);
lcd_write(0x08, LCD_WRITE_COM);
delay_ms(5);
lcd_write(0x01, LCD_WRITE_COM);
delay_ms(5);
lcd_write(0x06, LCD_WRITE_COM);
delay_ms(5);
lcd_write(0x0C, LCD_WRITE_COM);
delay_ms(5);
}
void add()
{
unsigned char i = 0;
while(i < 7)
{
lcd_write(0x70, LCD_WRITE_COM);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(4 + i + 0x80, LCD_WRITE_COM);
lcd_write(0x6, LCD_WRITE_DATA);
lcd_write(4 + i + 0x80 + 0x40, LCD_WRITE_COM);
lcd_write(0x6, LCD_WRITE_DATA);
delay_ms(255);
i++;
}
}
void lcd_elec()
{
lcd_write(0x40, LCD_WRITE_COM);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(4 + 0x80, LCD_WRITE_COM);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x48, LCD_WRITE_COM);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x10, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(4 + 0x80 + 0x40, LCD_WRITE_COM);
lcd_write(0x1, LCD_WRITE_DATA);
lcd_write(0x50, LCD_WRITE_COM);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(5 + 0x80, LCD_WRITE_COM);
lcd_write(0x2, LCD_WRITE_DATA);
lcd_write(6 + 0x80, LCD_WRITE_COM);
lcd_write(0x2, LCD_WRITE_DATA);
lcd_write(7 + 0x80, LCD_WRITE_COM);
lcd_write(0x2, LCD_WRITE_DATA);
lcd_write(8 + 0x80, LCD_WRITE_COM);
lcd_write(0x2, LCD_WRITE_DATA);
lcd_write(9 + 0x80, LCD_WRITE_COM);
lcd_write(0x2, LCD_WRITE_DATA);
lcd_write(10 + 0x80, LCD_WRITE_COM);
lcd_write(0x2, LCD_WRITE_DATA);
lcd_write(0x58, LCD_WRITE_COM);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x0, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(0x1f, LCD_WRITE_DATA);
lcd_write(5 + 0x80 + 0x40, LCD_WRITE_COM);
lcd_write(0x3, LCD_WRITE_DATA);
lcd_write(6 + 0x80 + 0x40, LCD_WRITE_COM);
lcd_write(0x3, LCD_WRITE_DATA);
lcd_write(7 + 0x80 + 0x40, LCD_WRITE_COM);
lcd_write(0x3, LCD_WRITE_DATA);
lcd_write(8 + 0x80 + 0x40, LCD_WRITE_COM);
lcd_write(0x3, LCD_WRITE_DATA);
lcd_write(9 + 0x80 + 0x40, LCD_WRITE_COM);
lcd_write(0x3, LCD_WRITE_DATA);
lcd_write(10 + 0x80 + 0x40, LCD_WRITE_COM);
lcd_write(0x3, LCD_WRITE_DATA);
lcd_write(0x60, LCD_WRITE_COM);
lcd_write(0x1c, LCD_WRITE_DATA);
lcd_write(0x1c, LCD_WRITE_DATA);
lcd_write(0x04, LCD_WRITE_DATA);
lcd_write(0x04, LCD_WRITE_DATA);
lcd_write(0x04, LCD_WRITE_DATA);
lcd_write(0x04, LCD_WRITE_DATA);
lcd_write(0x07, LCD_WRITE_DATA);
lcd_write(0x07, LCD_WRITE_DATA);
lcd_write(11 + 0x80, LCD_WRITE_COM);
lcd_write(0x4, LCD_WRITE_DATA);
lcd_write(0x68, LCD_WRITE_COM);
lcd_write(0x07, LCD_WRITE_DATA);
lcd_write(0x07, LCD_WRITE_DATA);
lcd_write(0x04, LCD_WRITE_DATA);
lcd_write(0x04, LCD_WRITE_DATA);
lcd_write(0x04, LCD_WRITE_DATA);
lcd_write(0x04, LCD_WRITE_DATA);
lcd_write(0x1c, LCD_WRITE_DATA);
lcd_write(0x1c, LCD_WRITE_DATA);
lcd_write(11 + 0x80 + 0x40, LCD_WRITE_COM);
lcd_write(0x5, LCD_WRITE_DATA);
delay_ms(200);
add();
}
void main()
{
lcd_init();
while(1)
{
lcd_elec();
}
}
单片机==lcd_显示时钟(21)
最新推荐文章于 2023-02-22 16:33:51 发布