?? 12232.c
字號(hào):
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define NOP() _nop_();
//功能引腳定義
sbit A0 = P3^0;//數(shù)據(jù)1/命令0選擇
sbit _WR = P3^7;//讀寫
sbit E1 = P3^4; //片選1(Master)
sbit E2 = P3^3;//片選2(slave)
#define lcd_data P2//數(shù)據(jù)
//常用操作宏定義
#define set_E1() (E1=1) //1片選M
#define set_E2() (E2=1) //1片選S
#define set_A0() (A0=1) //1數(shù)據(jù)
#define set_WR() (_WR=1) //1讀
#define clr_E1() (E1=0) //0
#define clr_E2() (E2=0) //0
#define clr_A0() (A0=0) //0命令
#define clr_WR() (_WR=0) //0寫
//液晶顯示控制命令表
#define disp_off 0xAE //顯示關(guān)閉
#define disp_on 0xAF //顯示打開
#define disp_start_line 0xC0 //顯示起始地址(后5位-表示0-31行)
#define page_addr_set 0xB8 //頁(yè)地址設(shè)置(0~3)
#define col_addr_set 0x00 //列地址設(shè)置(0~61)
#define status_busy 0x80 //0=ready
#define mode_write 0xEE //寫模式
#define dynamic_driver 0xA4 //動(dòng)態(tài)驅(qū)動(dòng)
#define adc_select 0xA0 //clockwise
#define clk32 0xA9 //刷新時(shí)鐘設(shè)置1/32
#define clk16 0xA8 //刷新時(shí)鐘設(shè)置1/16
#define reset 0xE2 //軟件復(fù)位
uchar dot_buffer[32]; //點(diǎn)陣緩存區(qū)
uchar disp_buffer[4]={1,3,97,4}; //ram數(shù)據(jù)顯示緩存區(qū)
void lcd_init(void); //LCD初始化
void lcd_clr(void); //LCD清屏
void wait_ready(void); //等待ready
void draw_bmp(uchar col,uchar layer,uchar width,uchar *bmp); //點(diǎn)陣碼顯示輸出
void disp_one_ascii(uchar col,uchar layer,uchar ascii_code,uchar mode);//單個(gè)ascci碼輸出(ascii_code為ascii編碼)
void disp_ram_data(uchar col,uchar layer,uchar n,uchar mode); //ram數(shù)據(jù)(數(shù)字)顯示輸出
void dprintf(uchar col,uchar layer,uchar *buf,uchar mode); //通用混合字串顯示
typedef struct typFNT_GB16 // 漢字字模數(shù)據(jù)結(jié)構(gòu)
{
signed char Index[2];
char Msk[32];
};
struct typFNT_GB16 code GB_16[] =
{
"歡", 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,0x40,0x42,0x44,0x58,0xC0,0x40,0x7F,
0x40,0xC0,0x50,0x48,0x46,0x64,0x40,0x00,
0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x00,
0x00,0x3F,0x40,0x40,0x40,0x40,0x70,0x00,
"臨", 0x00,0xFC,0x00,0xFF,0x40,0x20,0x10,0x0C,
0x2B,0x48,0xC8,0x08,0x08,0x8C,0x08,0x00,
0x00,0x1F,0x00,0xFF,0x00,0xFF,0x41,0x41,
0x41,0x7F,0x41,0x41,0x41,0xFF,0x01,0x00,
"太", 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,
0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
0x40,0x40,0x20,0x20,0x10,0x0C,0x0B,0x30,
0x03,0x0C,0x10,0x10,0x20,0x60,0x20,0x00,
"川", 0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,
0xFC,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,
0x00,0x40,0x20,0x1F,0x00,0x00,0x00,0x00,
0x1F,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,
"單", 0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,
0x48,0x4C,0x4A,0x49,0xFC,0x08,0x00,0x00,
0x10,0x10,0x17,0x12,0x12,0x12,0x12,0xFF,
0x12,0x12,0x12,0x12,0x13,0x18,0x10,0x00,
"片", 0x00,0x00,0xFE,0x20,0x20,0x20,0x20,0x20,
0x3F,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
0x80,0x40,0x3F,0x01,0x01,0x01,0x01,0x01,
0x01,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
"機(jī)", 0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xFC,
0x04,0x04,0x04,0xFE,0x04,0x00,0x00,0x00,
0x04,0x03,0x00,0xFF,0x80,0x41,0x20,0x1F,
0x00,0x00,0x00,0x3F,0x40,0x40,0x70,0x00,
"網(wǎng)", 0x00,0xFE,0x12,0x62,0x82,0x62,0x1A,0x02,
0x12,0x62,0x82,0x62,0x1A,0xFF,0x02,0x00,
0x08,0x06,0x01,0x42,0x8C,0x7F,0x00,0x00,
"絡(luò)", 0x20,0x30,0xAC,0x63,0x30,0x00,0x10,0x08,
0x17,0xA4,0x44,0xA4,0x14,0x0C,0x00,0x00,
0x22,0x63,0x22,0x12,0x12,0x04,0x02,0xFF,
0x43,0x42,0x42,0x42,0x43,0xFF,0x01,0x00,
"空", 0x10,0x0C,0x84,0x44,0x24,0x34,0x05,0x06,
0x04,0x14,0x24,0x64,0xC4,0x14,0x0C,0x00,
0x40,0x40,0x42,0x42,0x42,0x42,0x42,0x7E,
0x42,0x42,0x42,0x42,0x42,0x60,0x40,0x00,
"間", 0x00,0xF8,0x01,0x02,0xF6,0x10,0x12,0x12,
0x12,0x12,0xFA,0x12,0x02,0xFF,0x02,0x00,
0x00,0xFF,0x00,0x00,0x3F,0x11,0x11,0x11,
0x11,0x11,0x3F,0x40,0x80,0x7F,0x00,0x00,
"網(wǎng)", 0x00,0xFE,0x12,0x62,0x82,0x62,0x1A,0x02,
0x12,0x62,0x82,0x62,0x1A,0xFF,0x02,0x00,
0x00,0xFF,0x18,0x06,0x01,0x02,0x2C,0x10,
0x08,0x06,0x01,0x42,0x8C,0x7F,0x00,0x00,
"址", 0x10,0x10,0x10,0xFF,0x10,0x18,0x10,0xF8,
0x00,0x00,0xFF,0x20,0x20,0x30,0x20,0x00,
0x20,0x60,0x20,0x3F,0x10,0x50,0x48,0x7F,
0x40,0x40,0x7F,0x40,0x40,0x60,0x40,0x00,
"是", 0x00,0x00,0x00,0x00,0x7F,0x49,0x49,0x49,
0x49,0x49,0x7F,0x00,0x00,0x80,0x00,0x00,
0x01,0x81,0x41,0x21,0x1D,0x21,0x41,0x7F,
0x89,0x89,0x8D,0x89,0x81,0xC1,0x41,0x00,
"電", 0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,
0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,
0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,
"話", 0x40,0x42,0x44,0xCC,0x00,0x40,0x44,0x44,
0x44,0xFC,0x42,0x43,0x42,0x60,0x40,0x00,
0x00,0x00,0x00,0x7F,0x20,0x10,0xFE,0x42,
0x42,0x43,0x42,0x42,0xFF,0x02,0x00,0x00
};
uchar code ascii[] = {
//前面0x20(32個(gè))ASCII碼為控制命令
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x38,0xFC,0xFC,0x38,0x00,0x00,//!
0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00,
0x00,0x0E,0x1E,0x00,0x00,0x1E,0x0E,0x00,//"
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x20,0xF8,0xF8,0x20,0xF8,0xF8,0x20,0x00,//#
0x02,0x0F,0x0F,0x02,0x0F,0x0F,0x02,0x00,
0x38,0x7C,0x44,0x47,0x47,0xCC,0x98,0x00,//$
0x03,0x06,0x04,0x1C,0x1C,0x07,0x03,0x00,
0x30,0x30,0x00,0x80,0xC0,0x60,0x30,0x00,//%
0x0C,0x06,0x03,0x01,0x00,0x0C,0x0C,0x00,
0x80,0xD8,0x7C,0xE4,0xBC,0xD8,0x40,0x00,//&
0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00,
0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,0x00,//'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xF0,0xF8,0x0C,0x04,0x00,0x00,//(
0x00,0x00,0x03,0x07,0x0C,0x08,0x00,0x00,
0x00,0x00,0x04,0x0C,0xF8,0xF0,0x00,0x00,//)
0x00,0x00,0x08,0x0C,0x07,0x03,0x00,0x00,
0x80,0xA0,0xE0,0xC0,0xC0,0xE0,0xA0,0x80,//*
0x00,0x02,0x03,0x01,0x01,0x03,0x02,0x00,
0x00,0x80,0x80,0xE0,0xE0,0x80,0x80,0x00,//+
0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//,
0x00,0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,//-
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//.
0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00,///
0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,
0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00,//0
0x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00,
0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,//1
0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,
0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,//2
0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,
0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,//3
0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,//4
0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,
0x7C,0x7C,0x44,0x44,0xC4,0xC4,0x84,0x00,//5
0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00,//6
0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00,//7
0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00,
0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00,//8
0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00,//9
0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00,
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//:
0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//;
0x00,0x00,0x08,0x0E,0x06,0x00,0x00,0x00,
0x00,0x80,0xC0,0x60,0x30,0x18,0x08,0x00,//<
0x00,0x00,0x01,0x03,0x06,0x0C,0x08,0x00,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,//=
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
0x00,0x08,0x18,0x30,0x60,0xC0,0x80,0x00,//>
0x00,0x08,0x0C,0x06,0x03,0x01,0x00,0x00,
0x18,0x1C,0x04,0xC4,0xE4,0x3C,0x18,0x00,//?
0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00,
0xF0,0xF8,0x08,0xC8,0xC8,0xF8,0xF0,0x00,//@
0x07,0x0F,0x08,0x0B,0x0B,0x0B,0x01,0x00,
0xE0,0xF0,0x98,0x8C,0x98,0xF0,0xE0,0x00,//A
0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
0x04,0xFC,0xFC,0x44,0x44,0xFC,0xB8,0x00,//B
0x08,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00,
0xF0,0xF8,0x0C,0x04,0x04,0x0C,0x18,0x00,//C
0x03,0x07,0x0C,0x08,0x08,0x0C,0x06,0x00,
0x04,0xFC,0xFC,0x04,0x0C,0xF8,0xF0,0x00,//D
0x08,0x0F,0x0F,0x08,0x0C,0x07,0x03,0x00,
0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,//E
0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00,
0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,//F
0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,
0xF0,0xF8,0x0C,0x84,0x84,0x8C,0x98,0x00,//G
0x03,0x07,0x0C,0x08,0x08,0x07,0x0F,0x00,
0xFC,0xFC,0x40,0x40,0x40,0xFC,0xFC,0x00,//H
0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x00,//I
0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,
0x00,0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,//J
0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,0x00,
0x04,0xFC,0xFC,0xC0,0xF0,0x3C,0x0C,0x00,//K
0x08,0x0F,0x0F,0x00,0x01,0x0F,0x0E,0x00,
0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,//L
0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00,
0xFC,0xFC,0x38,0x70,0x38,0xFC,0xFC,0x00,//M
0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
0xFC,0xFC,0x38,0x70,0xE0,0xFC,0xFC,0x00,//N
0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
0xF0,0xF8,0x0C,0x04,0x0C,0xF8,0xF0,0x00,//O
0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00,
0x04,0xFC,0xFC,0x44,0x44,0x7C,0x38,0x00,//P
0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,
0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00,//Q
0x07,0x0F,0x08,0x0E,0x3C,0x3F,0x27,0x00,
0x04,0xFC,0xFC,0x44,0xC4,0xFC,0x38,0x00,//R
0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00,
0x18,0x3C,0x64,0x44,0xC4,0x9C,0x18,0x00,//S
0x06,0x0E,0x08,0x08,0x08,0x0F,0x07,0x00,
0x00,0x1C,0x0C,0xFC,0xFC,0x0C,0x1C,0x00,//T
0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,
0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,//U
0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,//V
0x01,0x03,0x06,0x0C,0x06,0x03,0x01,0x00,
0xFC,0xFC,0x00,0x80,0x00,0xFC,0xFC,0x00,//W
0x03,0x0F,0x0E,0x03,0x0E,0x0F,0x03,0x00,
0x0C,0x3C,0xF0,0xC0,0xF0,0x3C,0x0C,0x00,//X
0x0C,0x0F,0x03,0x00,0x03,0x0F,0x0C,0x00,
0x00,0x3C,0x7C,0xC0,0xC0,0x7C,0x3C,0x00,//Y
0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,
0x1C,0x0C,0x84,0xC4,0x64,0x3C,0x1C,0x00,//Z
0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0E,0x00,
0x80,0x80,0x80,0x80,0xe0,0xC0,0x80,0x00,//->0x5b(自定義顯示字符)
0x01,0x01,0x01,0x01,0x07,0x03,0x01,0x00
//0x5c開始可以加入其他的自定義字符
};
void delay_ms(uint c)
{uchar x;
while(c--)
{
for (x=0;x<121;x++);
}
}
////////////////////////////////////////////////////////////////////////////////
//調(diào)用方式:void send_mi(uchar instuction)
//函數(shù)說(shuō)明:發(fā)指令instruction到主窗口(內(nèi)函數(shù),私有,用戶不能直接調(diào)用)
////////////////////////////////////////////////////////////////////////////////
void send_mi(uchar instruction)
{
clr_E2(); //關(guān)S
set_E1(); //開M
wait_ready();
clr_A0(); //指令
clr_WR(); //寫觸發(fā)
NOP();NOP();
lcd_data = instruction; //指令碼
NOP();NOP();
clr_E1(); //關(guān)M
}
////////////////////////////////////////////////////////////////////////////////
//調(diào)用方式:void OutMD(uchar i)
//函數(shù)說(shuō)明:發(fā)數(shù)據(jù)data到主窗口(內(nèi)函數(shù),私有,用戶不能直接調(diào)用)
////////////////////////////////////////////////////////////////////////////////
void send_md(uchar c)
{
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -