【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《液晶LCD12864左右滚屏显示汉字》,欢迎阅读!
Keil C语言源程序
#include #include
#define uchar unsigned char #define uint unsigned int #define LCD_databus P0 uchar num;
uchar code zi[10][32]={
/***********************临**************************/ 0x00,0xF8,0xF0,0x00,0xFF,0xFE,0x80,0x60, 0x38,0x1E,0x3F,0x6A,0x68,0xC8,0x4C,0x08, 0x00,0x0F,0x07,0x00,0xFF,0x7F,0x00,0xFF, 0x7E,0x42,0x7E,0x7E,0x42,0xFE,0x7F,0x02,
/***********************沂**************************/ 0x00,0x10,0xE1,0xC6,0x0C,0x8C,0xE0,0xFE, 0xFC,0x24,0x26,0xE2,0xE3,0x23,0x32,0x20, 0x00,0x04,0x78,0xF8,0x1E,0x83,0x40,0x3F, 0x1F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,
/***********************大**************************/ 0x00,0x00,0x20,0x20,0x20,0x20,0x20,0xFF, 0xFE,0xA0,0x20,0x20,0x20,0x30,0x20,0x00, 0x00,0x80,0x40,0x60,0x30,0x1C,0x0F,0x03, 0x00,0x03,0x0E,0x18,0x30,0x60,0xE0,0x40,
/***********************学**************************/ 0x00,0x10,0x38,0x1C,0x0B,0x4E,0x48,0x4B, 0x4E,0xC8,0xEC,0x4F,0x0A,0x38,0x1C,0x08, 0x00,0x00,0x04,0x04,0x04,0x04,0x44,0x44, 0xFF,0x7F,0x04,0x04,0x04,0x06,0x04,0x00,
/**********************横杠*************************/ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80, 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/***********************欢**************************/ 0x04,0x34,0xC4,0x04,0xC4,0x3C,0x20,0x10, 0x0F,0xE8,0x08,0x08,0x28,0x18,0x00,0x00, 0x10,0x08,0x06,0x01,0x82,0x8C,0x40,0x30, 0x0C,0x03,0x0C,0x10,0x60,0xC0,0x40,0x00,
/***********************迎**************************/ 0x40,0x42,0x44,0xC8,0x00,0xFC,0x04,0x02, 0x82,0xFC,0x04,0x04,0x04,0xFE,0x04,0x00, 0x00,0x40,0x20,0x1F,0x20,0x47,0x42,0x41, 0x40,0x7F,0x40,0x42,0x44,0x63,0x20,0x00,
/***********************您**************************/ 0x40,0x20,0x10,0xFC,0x23,0x10,0x8C,0x67, 0x04,0xF4,0x04,0x44,0x94,0x8C,0x00,0x00,
0x40,0x30,0x00,0x77,0x80,0x81,0x88,0x92, 0xB4,0x83,0x80,0xE0,0x00,0x11,0x60,0x00,
/**********************笑脸*************************/ 0x00,0x40,0x20,0x10,0x10,0x00,0x00,0x00, 0x00,0x00,0x00,0x10,0x10,0x20,0x40,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08, 0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
/**********************空格*************************/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
sbit RS=P2^2; sbit RW=P2^1; sbit EN=P2^0; sbit CS1=P2^4; sbit CS2=P2^3; void delay(uint x) {
uchar i; while(x--)
for(i=0;i<120;i++); }
void Read_busy() {
P0=0X00; RS=0; RW=1; EN=1;
while(P0&0x80); EN=0; }
void write_LCD_command(uchar value) {
Read_busy(); RS=0; RW=0;
LCD_databus=value; EN=1; _nop_(); _nop_ (); EN=0; }
void write_LCD_data(uchar value) {
Read_busy(); RS=1; RW=0;
LCD_databus=value;
EN=1; _nop_(); _nop_(); EN=0; }
void Set_page(uchar page) {
page=0xb8|page;
write_LCD_command(page); }
void Set_line(uchar startline) {
startline=0xc0|startline; write_LCD_command(startline); }
void Set_colum(uchar colum) {
colum=colum&0x3f; colum=0x40|colum;
write_LCD_command(colum); }
void Setonoff(uchar onoff) {
onoff=0x3e|onoff;
write_LCD_command(onoff); }
void SelectScreen(uchar screen) {
switch(screen) {
case 0:CS1=0;CS2=0;break; case 1:CS1=0;CS2=1;break; case 2:CS1=1;CS2=0;break; default:break; } }
void ClearScreen(uchar screen) {
uchar i,j;
SelectScreen(screen); for(i=0;i<8;i++) {
Set_page(i); Set_colum(0);
for(j=0;j<64;j++) {
write_LCD_data(0x00); }
} }
void InitLCD() {
Read_busy(); SelectScreen(0); Setonoff(0); SelectScreen(0); Setonoff(1); SelectScreen(0); ClearScreen(0); Set_line(0); }
void Display(uchar ss,uchar page,uchar colum,uchar *p) {
uchar i;
SelectScreen(ss); Set_page(page); Set_colum(colum); for(i=0;i<16;i++) {
write_LCD_data(p[i]); }
Set_page(page+1); Set_colum(colum); for(i=0;i<16;i++) {
write_LCD_data(p[i+16]); } }
void main() {
int i; InitLCD();
ClearScreen(0); Set_line(0); while(1) {
for(i=0;i<10;i++) {
int a=i+1,b=i+2,c=i+3,d=i+4,e=i+5,f=i+6,g=i+7;
if(a>=10||b>=10||c>=10||d>=10||e>=10||f>=10||g>=10) {
a=a%10; b=b%10; c=c%10; d=d%10; e=e%10;
} } }
f=f%10; g=g%10; }
Display(1,2,0*16,zi[i]); Display(1,2,1*16,zi[a]); Display(1,2,2*16,zi[b]); Display(1,2,3*16,zi[c]); Display(2,2,0*16,zi[d]); Display(2,2,1*16,zi[e]); Display(2,2,2*16,zi[f]); Display(2,2,3*16,zi[g]); delay(500); ClearScreen(0);
Protues仿真图
本文来源:https://www.wddqxz.cn/f0615035c181e53a580216fc700abb68a982ad08.html