📄 zhouyi.c
字号:
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
//#define LEDS8 0xFF << 18 // P1[25:18]控制LED8~LED1
#define LiftHalf 1
#define RightHalf 2
#define Page0 0
#define Page1 1
#define Page2 2
#define Page3 3
#define Page4 4
#define Page5 5
#define Page6 6
#define Page7 7
#define MenuOn 1
#define MenuOff 0
#define data_IO P1
//const uint32 LEDS0 = 0xFFFFFFFF;
sbit DQ =P2^5;
sbit LCD_RS =P2^0;
sbit LCD_RW =P2^1;
sbit LCD_E = P2^2;
sbit cs1 = P2^3;
sbit cs2 =P2^4;
void CheckState(void);
void DelayNS(uchar dly);
void SendCommandToLCD(uchar command);
void SetLine(uchar page);
void SetStartLine(uchar startline) ;
void SetColumn(uchar column);
void SetOnOff(uchar onoff);
void WriteByte(uchar dat);
void SelectScreen(uchar screen) ;
void ClearScreen(uchar screen);
void InitLCD(void);
void DelayNS(uchar idata dly)
{
uchar idata i;
for(; dly>0; dly--)
for(i=0; i<20; i++);
}
/*延时函数*/
void dalay(void)
{
uchar i;
for(i=0;i<200;i++)
{
}
}
/*键盘扫描函数
uchar kdyscan(void)
{
uchar code_h; //行扫描值
uchar code_l; //列扫描值
P1=0xf0; //P1.0-P1.3发全0,准备读列状态
if((P1&0xf0)!=0xf0) //如果P1.4-P1.7不全为1,可能的键按下
{
dalay(); //延时去抖动
if((P1&0x0f0)!=0xf0) //重读高4位,若还是不全为1定有键按理
{
code_h=0xfe; //P1.0为0,开始行扫描
while((code_h&0x10)!=0xf0)
{
P1=code_h; //P1口输出行扫描值
if((p1&0xf0)!=0xf0) //如果P1.4~P1.7为全为1,该行有键按下
{
code_l=(P1&0xf0|0x0f); //保留P1高4位,低4位变为1,作为弄值
return((~code_h)+(~code_l)); //键值编码=行扫描值+列扫描值,返回主程序
}
esle
code_h=(code_h<<1)|0x01;
}
}
}
retun(0); //无键按下,返回0
}*/
uchar code huang[32]={
/*黄[16*16]下半列排*/
0x20,0x20,0x24,0xA4,0xA4,0xBF,0xA4,0xE4,
0xA4,0xBF,0xA4,0xE6,0xA4,0x30,0x20,0x00,
0x00,0x80,0x80,0x5F,0x4A,0x2A,0x0A,0x0F,
0x0A,0x2A,0x2A,0x4F,0x40,0x80,0x00,0x00
};
uchar code shi[32]={
/*石[16*16]下半列排*/
0x04,0x04,0x04,0x04,0x84,0x64,0x1C,0x04,
0x04,0x04,0x04,0x04,0x84,0x06,0x04,0x00,
0x08,0x04,0x02,0x01,0xFF,0x41,0x41,0x41,
0x41,0x41,0x41,0x41,0xFF,0x01,0x00,0x00
};
uchar code li[32]={
/*理[16*16]下半列排*/
0x44,0x44,0xFC,0x46,0x44,0x00,0xFE,0x92,
0x92,0xFE,0x92,0x92,0xFF,0x02,0x00,0x00,
0x10,0x30,0x1F,0x08,0x48,0x48,0x44,0x44,
0x44,0x7F,0x44,0x46,0x44,0x60,0x40,0x00
};
uchar code gong[32]={
/*工 CB9A4 */
0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00
};
uchar code xue[32]={
/*学 CD1A7 */
0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00
};
uchar code yuan4[32]={
/*院 CD4BA */
0xFE,0x02,0x32,0x4A,0x86,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00,
0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF1,0x00
};
uchar code zhou[32]={
/*周*/
0x00,0x00, 0xFE,0x82,0x92,0x92,0x92,0xFE,
0x92,0x9A, 0xD2,0x82,0xFF,0x02,0x00,0x00,
0x40,0x20,0x1F,0x00,0x00,0x7E,0x22,0x22,
0x22,0x3F,0x42,0x80,0x7F,0x00,0x00,0x00
};
uchar code yi[32]={
/*义[16*16]下半列排*/
0x00,0x00,0x0C,0x30,0xC0,0x00,0x02,0x0C,
0x00,0x80,0x60,0x18,0x06,0x00,0x00,0x00,
0x00,0x80,0x80,0x40,0x20,0x11,0x0A,0x04,
0x0A,0x11,0x10,0x20,0x60,0xC0,0x40,0x00
};
/*uchar code zhui[32]={
/*追[16*16]下半列排*/
/*0x40,0x42,0x44,0xCC,0x00,0x00,0xFC,0x24,
0x26,0x25,0x24,0x3E,0x84,0x00,0x00,0x00,
0x00,0x40,0x20,0x1F,0x20,0x40,0x7F,0x51,
0x51,0x51,0x51,0x51,0x5F,0x61,0x20,0x00
};
uchar code zhu[32]={
/*逐[16*16]下半列排*/
/*0x40,0x42,0xCC,0x00,0x22,0x22,0x92,0x5A,
0x36,0xE2,0x42,0x22,0x33,0x02,0x00,0x00,
0x40,0x20,0x1F,0x20,0x49,0x49,0x44,0x52,
0x61,0x5F,0x41,0x42,0x4C,0x60,0x20,0x00
};
uchar code meng[32]={
/*梦[16*16]下半列排*/
/*0x84,0x44,0x24,0x14,0xFF,0x94,0x24,0x44,
0x24,0x14,0xFF,0x14,0x24,0x66,0x24,0x00,
0x00,0x80,0x88,0x84,0x42,0x47,0x49,0x31,
0x11,0x09,0x05,0x03,0x01,0x00,0x00,0x00
};
uchar code xiang[32]={
/*想[16*16]下半列排*/
/*0x08,0x88,0x68,0xFF,0x48,0x88,0x08,0xFE,
0x52,0x52,0x52,0x52,0xFF,0x02,0x00,0x00,
0x41,0x30,0x00,0x7B,0x80,0x80,0x88,0x93,
0xB2,0x82,0x82,0xE2,0x03,0x10,0x60,0x00
};
uchar code ai[32]={
/*爱[16*16]下半列排*/
/*0x40,0xB0,0x92,0x96,0x9A,0x92,0xF2,0x9E,
0x92,0x91,0x99,0x95,0x91,0x50,0x30,0x00,
0x00,0x00,0x40,0x30,0x8C,0x83,0x46,0x2A,
0x12,0x2A,0x26,0x42,0xC0,0x40,0x00,0x00
};
uchar code ni[32]={
/*你[16*16]下半列排*/
/*0x40,0x20,0xF8,0x07,0x40,0x20,0x18,0x0F,
0x08,0xC8,0x08,0x08,0x28,0x18,0x00,0x00,
0x00,0x00,0xFF,0x00,0x00,0x08,0x04,0x43,
0x80,0x7F,0x00,0x01,0x06,0x0C,0x00,0x00
};
uchar code zhi[32]={
/*直[16*16]下半列排*/
/*0x00,0x04,0x04,0xE4,0xA4,0xA4,0xA4,0xBF,
0xA4,0xA4,0xA4,0xF4,0x26,0x04,0x00,0x00,
0x40,0x40,0x40,0x7F,0x4A,0x4A,0x4A,0x4A,
0x4A,0x4A,0x4A,0x7F,0x40,0x60,0x40,0x00
};
uchar code dao[32]={
/*到[16*16]下半列排*/
/*0x00,0x62,0x52,0x4A,0xC6,0x42,0x52,0x63,
0xC2,0x00,0xF8,0x00,0x00,0xFF,0x00,0x00,
0x40,0x42,0x42,0x42,0x7F,0x22,0x23,0x22,
0x20,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00
};
uchar code yong[32]={
/*永[16*16]下半列排*/
/*0x00,0x40,0x40,0x48,0x48,0xC8,0x09,0xFA,
0x40,0x80,0x40,0x20,0x30,0x00,0x00,0x00,
0x00,0x20,0x10,0x08,0x06,0x41,0x80,0x7F,
0x00,0x01,0x06,0x08,0x10,0x30,0x10,0x00
};
uchar code yuan3[32]={
/*远[16*16]下半列排*/
/*0x40,0x42,0x44,0xCC,0x00,0x20,0x22,0xE2,
0x22,0x22,0xE2,0x23,0x32,0x20,0x00,0x00,
0x00,0x40,0x20,0x1F,0x20,0x50,0x4C,0x43,
0x40,0x40,0x47,0x48,0x48,0x6E,0x20,0x00
};
/*当[16*16]下半列排*/
/*unsigned char code dang[32]={0x00,0x00,0x40,0x42,0x5C,0x48,0x40,0x40,0x7F,0x40,0x50,0x4E,0x44,0xC0,0x00,0x00,
0x00,0x00,0x20,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x7F,0x00,0x00};//当
/*前[16*16]下半列排*/
/*unsigned char code qian[32]={0x08,0x08,0xE8,0xA8,0xA9,0xAE,0xEA,0x08,0x08,0xC8,0x0C,0x0B,0xEA,0x08,0x08,0x00,
0x00,0x00,0x7F,0x04,0x24,0x44,0x3F,0x00,0x00,0x1F,0x40,0x80,0x7F,0x00,0x00,0x00};//前
*/
uchar code liang[32]={
/*粮[16*16]下半列排*/
0x20,0x24,0xA8,0xFF,0x28,0x24,0xFC,0x24,
0x24,0x25,0x26,0x24,0xFE,0x04,0x00,0x00,
0x08,0x06,0x01,0xFF,0x01,0x02,0xFF,0x41,
0x23,0x05,0x09,0x19,0x25,0x62,0x20,0x00
};
uchar code ku[32]={
/*库[16*16]下半列排*/
0x00,0x00,0xFC,0x24,0x24,0xA4,0x64,0x3D,
0xA6,0x24,0x24,0x24,0x36,0x24,0x00,0x00,
0x80,0x60,0x1F,0x10,0x13,0x12,0x12,0x12,
0xFF,0x12,0x12,0x13,0x12,0x18,0x10,0x00
};
uchar code jian[32]={
/*监[16*16]下半列排*/
0x00,0x00,0xFC,0x00,0x00,0xFF,0x00,0x20,
0x10,0x0F,0x18,0x28,0x6C,0x08,0x00,0x00,
0x40,0x40,0x7E,0x42,0x42,0x7F,0x42,0x42,
0x42,0x7E,0x42,0x42,0x7F,0x42,0x40,0x00
};
uchar code kong[32]={
/*控[16*16]下半列排*/
0x10,0x10,0x10,0xFF,0x90,0x50,0x0C,0x44,
0x24,0x15,0x06,0x14,0x24,0x54,0x0C,0x00,
0x02,0x42,0x81,0x7F,0x00,0x40,0x42,0x42,
0x42,0x42,0x7E,0x42,0x43,0x62,0x40,0x00
};
uchar code xi[32]={
/*系[16*16]下半列排*/
0x00,0x02,0x22,0x22,0x32,0x2E,0xA2,0x62,
0x22,0x22,0x91,0x09,0x01,0x00,0x00,0x00,
0x00,0x00,0x42,0x22,0x1A,0x43,0x82,0x7E,
0x02,0x02,0x0A,0x13,0x66,0x00,0x00,0x00
};
uchar code tong[32]={
/*统[16*16]下半列排*/
0x20,0x30,0xAC,0x63,0x30,0x88,0xC8,0xA8,
0x99,0x8E,0x88,0xA8,0xCC,0x88,0x00,0x00,
0x22,0x67,0x22,0x12,0x92,0x40,0x30,0x0F,
0x00,0x00,0x3F,0x40,0x40,0x41,0x70,0x00
};
uchar code wen[32]={
/*温[16*16]下半列排*/
0x10,0x22,0x64,0x0C,0x80,0x00,0xFE,0x92,
0x92,0x92,0x92,0x92,0xFF,0x02,0x00,0x00,
0x04,0x04,0xFE,0x01,0x40,0x7E,0x42,0x42,
0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00
};
uchar code du[32]={
/*度[16*16]下半列排*/
0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0xA5,
0xA6,0xA4,0xFC,0x24,0x34,0x26,0x04,0x00,
0x40,0x20,0x9F,0x80,0x42,0x42,0x26,0x2A,
0x12,0x2A,0x26,0x42,0x40,0xC0,0x40,0x00
};
uchar code di[32]={
/*第[16*16]下半列排*/
0x10,0x08,0x94,0x97,0x9C,0x96,0x94,0xF8,
0x97,0x94,0x9C,0x94,0xF6,0x04,0x00,0x00,
0x00,0x40,0x47,0x24,0x24,0x14,0x0C,0xFF,
0x04,0x04,0x24,0x44,0x44,0x3E,0x04,0x00
};
uchar code dian[32]={
/*点[16*16]下半列排*/
0x00,0x00,0xC0,0x40,0x40,0x40,0x7F,0x48,
0x48,0x48,0x48,0xE8,0x4C,0x08,0x00,0x00,
0x80,0x40,0x37,0x04,0x14,0x64,0x04,0x14,
0x24,0x64,0x04,0x17,0x20,0xC0,0x00,0x00
};
unsigned char code cone[32]={0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//一
/*unsigned char code ctwo[32]={0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x00,
0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00};//二
unsigned char code cthree[32]={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};//三
unsigned char code cfour[32]={0x00,0xFE,0x02,0x02,0x02,0xFE,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,
0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x22,0x7F,0x00,0x00};//四
unsigned char code cfive[32]={0x00,0x02,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0xC2,0x82,0x02,0x00,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x30,0x20,0x00};//五
unsigned char code csix[32]={0x10,0x10,0x10,0x10,0x10,0x91,0x12,0x1E,0x94,0x10,0x10,0x10,0x10,0x10,0x10,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x00,0x00,0x01,0x02,0x0C,0x78,0x30,0x00,0x00};//六
*/
unsigned char code TemperatureSign[32]={0x00,0x02,0x05,0xE2,0x18,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x04,0x1E,0x00,0x00,
0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x18,0x00,0x00};//摄氏度的符号
unsigned char code zero[16]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};//0
unsigned char code one[16]={0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};//1
unsigned char code two[16]={0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};//2
unsigned char code three[16]={0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};//3
unsigned char code four[16]={0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};//4
unsigned char code five[16]={0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};//5
unsigned char code six[16]={0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};//6
unsigned char code seven[16]={0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};//7
unsigned char code eight[16]={0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};//8
unsigned char code nine[16]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};//9
unsigned char code point[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00};//小数点
unsigned char code maohao[16]={0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00};//冒号
uchar code black[32]={
/*黑屏[16*16]下半列排*/
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
};
unsigned char code clear[32]={
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
};
uchar code lu[32]={
/*卢[16*16]下半列排*/
0x00,0x00,0xE0,0x20,0x20,0x20,0x20,0x3F,
0x24,0x24,0x24,0x24,0xF4,0x26,0x04,0x00,
0x80,0x40,0x3F,0x02,0x02,0x02,0x02,0x02,
0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00
};
void CheckState() //状态检查,LCD是否忙?
{
// uint32 dat;
LCD_RS=0;
LCD_RW=1;
data_IO=( data_IO& 0x00) | 0x00;
//RS=0;
// RW=1;
while(P1&0x80)
{
//Dataport=0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -