?? x102_12232.txt
字號:
#include <reg52.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define cs_e1_com XBYTE[0XA000]
#define cs_e1_dat XBYTE[0XA001]
#define cs_e1_rd XBYTE[0XA002]
#define cs_e2_com XBYTE[0XB000]
#define cs_e2_dat XBYTE[0XB001]
#define cs_e2_rd XBYTE[0XB002]
void delay(uchar delay_temp);//長延時
void lcd_display1_32(uchar page,uchar col,uchar num);
void lcd_display1_16(uchar page,uchar col,uchar num);
void lcd_display2_32(uchar page,uchar col,uchar num);
void lcd_display2_16(uchar page,uchar col,uchar num);
void cls_lcd(uchar cls_code);//液晶顯示黑屏或白屏
void cls_lcd1(void);//液晶顯示點陣1
const uchar code lcd_data_32[][16]=
{
/*-- 0 文字: (空) --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
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,
/*-- 1 文字: 三 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
/*-- 2 文字: 毛 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x04,0x44,0x44,0x44,0x44,0xFC,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,
0x04,0x04,0x04,0x04,0x04,0x04,0x3F,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x70,0x00,
/*-- 3 文字: 電 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,
/*-- 4 文字: 子 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xE2,0x12,0x0A,0x06,0x02,0x00,0x80,0x00,0x00,
0x01,0x01,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
/*-- 5 文字: 世 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x20,0x20,0x20,0xFE,0x20,0x20,0xFE,0x20,0x20,0x20,0x20,0xFE,0x20,0x20,0x20,0x00,
0x00,0x00,0x00,0x3F,0x20,0x20,0x27,0x22,0x22,0x22,0x22,0x27,0x30,0x20,0x00,0x00,
/*-- 6 文字: 界 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0xFF,0xC9,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,
0x00,0x08,0x08,0x84,0x44,0x22,0x1D,0x00,0x00,0xFD,0x02,0x02,0x04,0x0C,0x04,0x00
};
const uchar code lcd_data_16[][8]=
{
/*-- 0 文字: (空) --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,
/*-- 1 文字: W --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,
/*-- 2 文字: . --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,
/*-- 3 文字: M --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,
/*-- 4 文字: C --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,
/*-- 5 文字: U --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,
/*-- 6 文字: L --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,
/*-- 7 文字: I --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
/*-- 8 文字: B --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,
/*-- 9 文字: O --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00
};
uchar i;
main(void)
{
start: cs_e1_com=0xaf;//開顯示
cs_e2_com=0xaf;//開顯示
cls_lcd(0xff);//黑屏
delay(0xff);
delay(0xff);
cls_lcd(0x00);//清屏
delay(0xff);
delay(0xff);
cls_lcd1();//花屏
delay(0xff);
delay(0xff);
cls_lcd(0xff);//黑屏
delay(0xff);
delay(0xff);
cls_lcd1();//花屏
delay(0xff);
delay(0xff);
cls_lcd(0x00);//清屏
delay(0xff);
delay(0xff);
lcd_display1_32(0xba,13,1);//三
lcd_display1_32(0xba,29,2);//毛
lcd_display1_32(0xba,45,3);//電
lcd_display2_32(0xba,0,4);//子
lcd_display2_32(0xba,16,5);//世
lcd_display2_32(0xba,32,6);//界
lcd_display1_16(0xb8,5,1);//W
lcd_display1_16(0xb8,13,1);//W
lcd_display1_16(0xb8,21,1);//W
lcd_display1_16(0xb8,29,2);//.
lcd_display1_16(0xb8,37,3);//M
lcd_display1_16(0xb8,45,4);//C
lcd_display1_16(0xb8,53,5);//U
lcd_display2_16(0xb8,0,6);//L
lcd_display2_16(0xb8,8,7);//I
lcd_display2_16(0xb8,16,8);//B
lcd_display2_16(0xb8,24,2);//.
lcd_display2_16(0xb8,32,4);//C
lcd_display2_16(0xb8,41,9);//O
lcd_display2_16(0xb8,48,3);//M
for(i=0;i<5;i++)delay(0x88);
goto start;
}
void delay(uchar delay_temp)//延時子程序
{
uchar data i,j;
for(i=0;i<delay_temp;i++)
{
for(j=0;j<255;j++);
}
}
void lcd_display1_32(uchar page,uchar col,uchar num)
{
uchar i;
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=page;//頁地址
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=col;//列地址
for(i=0;i<16;i++)
{
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_dat=lcd_data_32[2*num][i];
}
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=page+1;//頁地址
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=col;//列地址
for(i=0;i<16;i++)
{
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_dat=lcd_data_32[2*num+1][i];
}
}
void lcd_display1_16(uchar page,uchar col,uchar num)
{
uchar i;
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=page;//頁地址
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=col;//列地址
for(i=0;i<8;i++)
{
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_dat=lcd_data_16[2*num][i];
}
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=page+1;//頁地址
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=col;//列地址
for(i=0;i<8;i++)
{
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_dat=lcd_data_16[2*num+1][i];
}
}
void lcd_display2_32(uchar page,uchar col,uchar num)
{
uchar i;
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=page;//頁地址
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=col;//列地址
for(i=0;i<16;i++)
{
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_dat=lcd_data_32[2*num][i];
}
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=page+1;//頁地址
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=col;//列地址
for(i=0;i<16;i++)
{
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_dat=lcd_data_32[2*num+1][i];
}
}
void lcd_display2_16(uchar page,uchar col,uchar num)
{
uchar i;
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=page;//頁地址
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=col;//列地址
for(i=0;i<8;i++)
{
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_dat=lcd_data_16[2*num][i];
}
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=page+1;//頁地址
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=col;//列地址
for(i=0;i<8;i++)
{
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_dat=lcd_data_16[2*num+1][i];
}
}
void cls_lcd(uchar cls_code)
{
uchar i,j;
for(j=0;j<4;j++)
{
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=0xb8+j;//頁地址
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=0x00;//列地址0
for(i=0;i<61;i++)
{
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_dat=cls_code;
delay(2);
}
}
for(j=0;j<4;j++)
{
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=0xb8+j;//頁地址
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=0x00;//列地址0
for(i=0;i<61;i++)
{
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_dat=cls_code;
delay(2);
}
}
}
void cls_lcd1(void)//液晶顯示點陣1
{
uchar i,j;
for(j=0;j<4;j++)
{
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=0xb8+j;//頁地址
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_com=0x00;//列地址0
for(i=0;i<30;i++)
{
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_dat=0xaa;
delay(2);
cs_e1_dat=0x55;
delay(2);
}
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e1_dat=0xaa;
}
for(j=0;j<4;j++)
{
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=0xb8+j;//頁地址
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_com=0x00;//列地址0
for(i=0;i<30;i++)
{
while((cs_e2_rd&0x80)==0x80);//判斷空閑否
cs_e2_dat=0x55;
delay(2);
cs_e2_dat=0xaa;
delay(2);
}
while((cs_e1_rd&0x80)==0x80);//判斷空閑否
cs_e2_dat=0x55;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -