📄 lcd.c
字号:
/*;-------------------------------------------------------------------
;编写: 李满庭
;用途: A.用于900NM半导体激光美容仪的320*240LCM驱动,共分三个界面
; 1.合作公司标志(格雷斯)
; 2.安全界面,用户必须输入密码方可进入工作界面
; 3.工作界面
;硬件平台:带sed1335LCD驱动器的320*240LCD模块,ads7846伟福仿真机,
;软件平台: Keil v6.12
;时间: 2004年6月3日
;修改记录:
; 1.6月6日,把同一种字体的字都放在同一个code里,在算法中实现把指针的首地址读出
; 2.6月7日,把WriteOneWork()中的字节个数参数由uchar类型改为uint类型,实现把图片描出
; 3.6月8日,
;
;
; LCM指令端口地址FFFFH:数据端口地址:FEFFH
; 320*240点阵整屏的点象素为76800,也就有9600(2580H)个字节,单屏图形方式
; 所以第一区显示缓存地址范围为:0000H----257FH
; 所以第二区显示缓存地址范围为:2580H----4AFFH
; 所以第三区显示缓存地址范围为:4B00H----707FH
; 320*240点阵整屏---一行占40个字节的显示缓存
;
;--------------------------------------------------------------------*/
#include <reg52.h>
#include <absacc.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define LcdCommand XBYTE[0xFEFF]
#define LcdDataWrite XBYTE[0xFCFF]
///////////////////////////////////////////////////////////////////////////////////////
//输入密码界面
///////////////////////////////////////////////////////////////////////////////////////
uchar code ZKqsrmm[]={//请输入密码:
0x20,0x40,0x10,0x48,0x13,0xFC,0x00,0x40,0xFD,0xF8,0x00,0x40,0x7B,0xFE,0x00,0x00,
0x79,0xF8,0x01,0x08,0x79,0xF8,0x49,0x08,0x49,0xF8,0x79,0x08,0x41,0x28,0x01,0x10,
0x20,0x40,0x20,0xA0,0x20,0xA0,0xF9,0x10,0x22,0x0E,0xFD,0xF4,0xA8,0x00,0xFB,0xC4,
0xAA,0x54,0xFB,0xD4,0x22,0x54,0xFF,0xD4,0x22,0x54,0x22,0x44,0x22,0x44,0x22,0xCC,
0x04,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x80,0x02,0x80,
0x04,0x40,0x04,0x40,0x08,0x20,0x08,0x20,0x10,0x10,0x20,0x10,0x40,0x0E,0x80,0x04,
0x02,0x00,0x01,0x00,0x7F,0xFE,0x42,0x02,0x89,0x24,0x28,0xC8,0x4B,0x04,0x0C,0x10,
0x77,0xF0,0x01,0x00,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x20,0x08,
0x00,0x00,0x7D,0xFC,0x11,0x20,0x11,0xFC,0x11,0x20,0x21,0xFC,0x3D,0x20,0x65,0x20,
0xA5,0xFE,0x24,0x02,0x25,0x56,0x25,0x56,0x25,0x56,0x3E,0x02,0x24,0x14,0x00,0x08,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,};
uchar code ZKnum[]={//0123456789
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,
0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,
0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00,
0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00,
0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00,
0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00,
0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x1E,0x22,0x42,0x42,0x3F,0x00,0x00,
0x00,0x00,0x00,0xC0,0x40,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x64,0x58,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x40,0x40,0x40,0x22,0x1C,0x00,0x00,
0x00,0x00,0x00,0x06,0x02,0x02,0x02,0x1E,0x22,0x42,0x42,0x42,0x26,0x1B,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x7E,0x40,0x40,0x42,0x3C,0x00,0x00,
0x00,0x00,0x00,0x0F,0x11,0x10,0x10,0x7E,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
};
uchar code ZKOK[]={//确定
0x00,0x40,0x08,0x20,0xFD,0xFE,0x11,0x02,0x12,0xA4,0x20,0x90,0x25,0xFC,0x7E,0x90,
0xA4,0xFC,0x24,0x90,0x24,0xFC,0x24,0x90,0x24,0x90,0x3C,0xFE,0x20,0x80,0x00,0x80,
0x02,0x00,0x01,0x04,0x7F,0xFE,0x40,0x04,0x80,0x08,0x00,0x20,0x3F,0xF0,0x01,0x00,
0x01,0x00,0x11,0x20,0x11,0xF0,0x11,0x00,0x11,0x00,0x29,0x00,0x47,0xFE,0x80,0x00,
0x01,0x00,0xFF,0x80,0x22,0x00,0x23,0xFC,0x3E,0x04,0x22,0x84,0x22,0x88,0x3E,0x88,
0x22,0x48,0x22,0x50,0x22,0x20,0x3E,0x50,0xE2,0x48,0x42,0x8E,0x03,0x04,0x02,0x00,
0x00,0x40,0x42,0x48,0x31,0x50,0x11,0x60,0x80,0x40,0x63,0xF8,0x22,0x08,0x0A,0x08,
0x13,0xF8,0x22,0x08,0xE2,0x08,0x23,0xF8,0x22,0x08,0x22,0x08,0x22,0x28,0x22,0x10,
};
uchar code ZKxin[]={//*
0x00,0x00,0x00,0x00,0x10,0x10,0xD6,0x38,0x38,0xD6,0x10,0x10,0x00,0x00,0x00,0x00,
};
uchar code ZKdian_r[]={//__左右两边各一点
0x81,
};
uchar code ZKdian_rr[]={//__右边的点
0x01,
};
uchar code ZKdian_l[]={//__左边的点
0x80,
};
uchar code ZKheng[]={//__
0xff,
};
uchar code ZKbdt[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x10,0x00,0x08,0x10,0x60,0x06,
0x10,0x60,0x03,0x10,0x80,0x01,0x91,0x00,0x01,0x12,0x00,0x00,0x10,0x10,0x00,0x10,
0x38,0x0F,0xFF,0xFC,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x06,0x7F,0xFF,0xFF,
0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,
0x10,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x20,0x00,0x08,0x18,0xC0,0x0C,0x09,0x00,0x04,0x12,0x18,0x04,
0xFF,0xFC,0x04,0x7F,0xE0,0x1E,0x40,0x20,0x04,0x7F,0xE0,0x04,0x40,0x20,0x04,0x7F,
0xE0,0x04,0x40,0x20,0x04,0x7F,0xE0,0x0B,0x40,0x40,0x10,0xFF,0xFC,0x00,0x02,0xF8,
0x00,0x01,0x88,0x3F,0xFF,0xFC,0x02,0x01,0x00,0x01,0x81,0x00,0x00,0x81,0x00,0x00,
0x89,0x00,0x00,0x07,0x00,0x00,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x1F,0xC1,0x20,0x10,0x81,0x2C,0x12,
0x8F,0xFC,0x1F,0x89,0x24,0x12,0x8F,0xFC,0x32,0x89,0x24,0x3F,0xF9,0x24,0x60,0x4F,
0xFC,0x50,0x88,0x00,0x1F,0xC0,0x04,0x10,0x8F,0xFE,0x10,0x84,0x08,0x1F,0x87,0xF8,
0x10,0x84,0x08,0x10,0x87,0xF8,0x1F,0x84,0x28,0x10,0x82,0x30,0x10,0x81,0x20,0x13,
0x81,0x44,0x10,0x9F,0xFE,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x20,0x00,0x10,0x30,0x60,0x08,0x20,0x40,0x0C,0xC4,0x40,0x04,
0xBC,0x40,0x02,0x84,0x80,0x44,0xFC,0x84,0x24,0x85,0x78,0x34,0x85,0x88,0x14,0xFE,
0x88,0x04,0x94,0x98,0x04,0x12,0x90,0x0B,0xFF,0x90,0x08,0x40,0x90,0x08,0x7C,0x70,
0x78,0xC4,0x60,0x18,0x84,0x60,0x18,0x84,0x60,0x19,0x8C,0x90,0x19,0x79,0x0C,0x1A,
0x12,0x0E,0x04,0x0C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x04,0x10,0x40,0x02,
0x10,0x60,0x03,0x10,0xE0,0x01,0x90,0xC0,0x01,0x90,0x80,0x00,0x11,0x00,0x00,0x12,
0x0C,0x3F,0xFF,0xFE,0x00,0xC2,0x00,0x00,0xC2,0x00,0x00,0xC2,0x00,0x00,0x82,0x00,
0x00,0x82,0x04,0x01,0x82,0x04,0x01,0x02,0x04,0x03,0x02,0x04,0x06,0x02,0x06,0x08,
0x03,0xFE,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x83,0x00,0x00,0xC3,0x00,0x00,0xC2,0x10,0x3F,
0xFF,0xF8,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x40,0x07,0xFF,0xE0,0x00,0x10,
0x00,0x00,0x10,0x08,0x3F,0xFF,0xFC,0x00,0x10,0x00,0x00,0x10,0x10,0x3F,0xFF,0xF8,
0x00,0x38,0x00,0x00,0x34,0x00,0x00,0x62,0x00,0x00,0xC1,0x00,0x01,0x80,0xC0,0x03,
0x00,0x7E,0x0C,0x00,0x18,0x70,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x18,0x00,0x00,0x08,0x08,0x1F,
0xFF,0xFC,0x10,0x80,0x10,0x30,0xC1,0x20,0x01,0x98,0xC0,0x02,0x18,0x70,0x04,0x38,
0x30,0x18,0x64,0x10,0x00,0xC2,0x00,0x01,0x81,0x80,0x03,0x00,0xE0,0x07,0x00,0xBE,
0x09,0xFF,0xDC,0x31,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,
0xFF,0x80,0x01,0x00,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x60,0x06,0x18,0x40,0x06,0x08,0x88,0x06,
0xFF,0xFC,0x0E,0x02,0x00,0x0C,0x02,0x20,0x0C,0x3F,0xF0,0x18,0x02,0x04,0x19,0xFF,
0xFE,0x28,0x05,0x40,0x48,0x1D,0xB0,0x48,0xF1,0x90,0x08,0x11,0x84,0x09,0xFF,0xFE,
0x08,0x10,0x90,0x08,0x1C,0x98,0x08,0xF0,0xB0,0x09,0x90,0xE2,0x08,0x10,0x64,0x08,
0x30,0xB4,0x0C,0xE3,0x1E,0x00,0x04,0x00,
};
uchar code ZKmggls[]={
0x08,0x20,0x04,0x40,0x7F,0xFC,0x01,0x00,0x1F,0xF8,0x01,0x00,0x01,0x00,0x7F,0xFE,
0x01,0x00,0x01,0x00,0x3F,0xFC,0x02,0x80,0x04,0x40,0x08,0x30,0x30,0x1C,0xC0,0x08,
0x7F,0xFC,0x40,0x84,0x40,0xA4,0x40,0xA4,0x5F,0xF4,0x40,0x84,0x5E,0xA4,0x52,0xB4,
0x5E,0x64,0x40,0x44,0x46,0xD4,0x59,0x54,0x42,0x24,0x40,0x04,0x7F,0xFC,0x40,0x04,
0x10,0x80,0x10,0x80,0x11,0xF8,0xFD,0x08,0x12,0x90,0x34,0x50,0x38,0x20,0x54,0x50,
0x57,0x8E,0x91,0xF8,0x11,0x08,0x11,0x08,0x11,0x08,0x11,0x08,0x11,0xF8,0x11,0x08,
0x1F,0xF8,0x01,0x00,0x7F,0xFE,0x41,0x04,0x1D,0x70,0x01,0x00,0x1D,0x70,0x01,0x00,
0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x20,0x08,
0x22,0x0C,0x22,0x70,0xFF,0x40,0x22,0x40,0x3E,0x40,0x22,0x7E,0x22,0x48,0x3E,0x48,
0x22,0x48,0x22,0x48,0xFF,0x48,0x00,0x48,0x24,0x88,0x62,0x88,0x83,0x08,0x00,0x08,
};
uchar code ZKguohao[]={
0x00,0x02,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x08,0x04,0x02,0x00,
0x00,0x40,0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x40,0x00,
};
uchar code ZKzhuhai[]={
0x00,0x20,0xF9,0x20,0x21,0x28,0x21,0xFC,0x21,0x20,0x22,0x20,0xF8,0x20,0x27,0xFE,
0x20,0x70,0x20,0xA8,0x38,0xA8,0xC1,0x24,0x02,0x26,0x04,0x24,0x08,0x20,0x00,0x20,
0x21,0x00,0x11,0x00,0x11,0xFE,0x02,0x00,0x97,0xF8,0x52,0x88,0x52,0x48,0x12,0x08,
0x2F,0xFE,0x22,0x88,0xE2,0x48,0x22,0x08,0x23,0xFE,0x20,0x08,0x20,0x28,0x20,0x10,
};
uchar code ZKkjsy[]={
0x06,0x08,0x78,0x88,0x08,0x48,0x08,0x48,0xFE,0x08,0x18,0x88,0x1C,0x48,0x2A,0x48,
0x28,0x0E,0x48,0x78,0x8B,0x88,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x14,0x20,0x19,0xFC,0x31,0x08,
0xD0,0x88,0x10,0x90,0x10,0x60,0x10,0x60,0x10,0x90,0x11,0x0E,0x56,0x04,0x20,0x00,
0x02,0x00,0x7F,0xFE,0x40,0x04,0x9F,0xE8,0x12,0x20,0x7F,0xF8,0x11,0x20,0x1F,0xE0,
0x00,0x00,0x1F,0xE0,0x15,0x20,0x12,0xA0,0x10,0x20,0x1F,0xE0,0x0C,0xC0,0x30,0x30,
0x02,0x40,0x12,0x48,0x0A,0x50,0xFF,0xFE,0x08,0x40,0x04,0x80,0x7F,0xF8,0x01,0x00,
0x1F,0xF0,0x01,0x00,0x7F,0xFE,0x03,0x40,0x05,0x20,0x19,0x18,0x61,0x0E,0x01,0x04,
0x01,0x00,0x01,0x00,0x7F,0xFE,0x02,0x00,0x04,0x00,0x0F,0xF0,0x18,0x10,0x28,0x10,
0x4F,0xF0,0x88,0x10,0x08,0x10,0x0F,0xF0,0x08,0x10,0x08,0x90,0x08,0x70,0x08,0x20,
0x00,0x00,0xFB,0xF8,0x92,0x08,0x93,0xF8,0xA2,0x08,0xA2,0x08,0x93,0xF8,0x8A,0x80,
0x8A,0x48,0xAA,0x50,0x92,0x20,0x82,0x20,0x82,0x10,0x82,0x8E,0x83,0x04,0x82,0x00,
0x00,0x00,0x04,0x40,0x06,0x40,0x04,0x40,0x08,0x20,0x08,0x10,0x10,0x18,0x22,0x0E,
0x43,0x04,0x02,0x00,0x04,0x20,0x08,0x10,0x11,0xF8,0x3F,0x18,0x10,0x10,0x00,0x00,
0x00,0x00,0x3F,0xFC,0x00,0x04,0x00,0x04,0x7F,0xE4,0x00,0x04,0x00,0x04,0x3F,0xC4,
0x20,0x44,0x20,0x44,0x3F,0xC4,0x20,0x44,0x20,0x04,0x00,0x14,0x00,0x08,0x00,0x00,
};
uchar code ZKcarise_int[]={
0x00,0x00,0x00,0xE7,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
0x00,0x00,0x00,0x3E,0x42,0x42,0x40,0x20,0x18,0x04,0x02,0x42,0x42,0x7C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
0x00,0x00,0x00,0x10,0x10,0x18,0x28,0x28,0x24,0x3C,0x44,0x42,0x42,0xE7,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
0x00,0x02,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x08,0x04,0x02,0x00,
0x00,0x00,0x00,0x7E,0x84,0x04,0x08,0x08,0x10,0x20,0x20,0x42,0x42,0xFC,0x00,0x00,
0x00,0x00,0x00,0xC0,0x40,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC6,0x42,0x42,0x42,0x42,0x46,0x3B,0x00,0x00,
0x00,0x00,0x00,0xC0,0x40,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x1E,0x22,0x42,0x42,0x3F,0x00,0x00,
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
0x00,0x40,0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x40,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3E,0x42,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x44,0x38,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x1E,0x22,0x42,0x42,0x3F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEE,0x32,0x20,0x20,0x20,0x20,0xF8,0x00,0x00,
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x42,0x40,0x3C,0x02,0x42,0x7C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x7E,0x40,0x40,0x42,0x3C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3E,0x42,0x42,0x40,0x20,0x18,0x04,0x02,0x42,0x42,0x7C,0x00,0x00,
0x00,0x00,0x00,0x30,0x48,0x48,0x48,0x50,0x6E,0xA4,0x94,0x88,0x89,0x76,0x00,0x00,
0x00,0x00,0x00,0xFE,0x92,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDC,0x62,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x40,0x40,0x40,0x22,0x1C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
};
uchar code ZKno_full[]={
0x20,0x20,0x13,0xFE,0xFC,0x20,0x01,0xFC,0x78,0x20,0x03,0xFE,0x00,0x00,0x79,0xFC,
0x01,0x04,0x79,0xFC,0x49,0x04,0x49,0xFC,0x49,0x04,0x79,0x04,0x49,0x14,0x01,0x08,
0x10,0x20,0x10,0x20,0xFE,0x50,0x10,0x88,0x7D,0xF6,0x56,0x00,0x7D,0xC4,0x55,0x54,
0x55,0xD4,0x7D,0x54,0x11,0x54,0xFD,0xD4,0x11,0x54,0x11,0x44,0x11,0x54,0x11,0x48,
0x0C,0x00,0x06,0x00,0x02,0x00,0x01,0x00,0x03,0x00,0x02,0x80,0x02,0x80,0x04,0x40,
0x04,0x20,0x08,0x20,0x08,0x10,0x10,0x08,0x20,0x0E,0x40,0x04,0x80,0x00,0x00,0x00,
0x04,0x00,0x03,0x00,0x01,0x80,0x01,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x04,0x80,
0x06,0x40,0x04,0x20,0x08,0x10,0x08,0x18,0x10,0x0C,0x20,0x0C,0x40,0x08,0x00,0x00,
0x09,0x00,0x0C,0xC0,0x10,0x40,0x17,0xFC,0x20,0x00,0x34,0x10,0x52,0x18,0x52,0x10,
0x91,0x10,0x11,0x20,0x11,0x20,0x10,0x20,0x10,0x40,0x1F,0xFE,0x10,0x00,0x00,0x00,
0x10,0x80,0x10,0x80,0x20,0x80,0x7C,0xFC,0x45,0x04,0x45,0x04,0x46,0x04,0x7C,0x84,
0x44,0x44,0x44,0x64,0x44,0x24,0x44,0x04,0x7C,0x04,0x44,0x28,0x40,0x10,0x00,0x00,
0x02,0x00,0x01,0x00,0x3F,0xFE,0x42,0x24,0x49,0x50,0x29,0x48,0x48,0xA4,0x0B,0x34,
0x1F,0xE0,0xE0,0x00,0x41,0x00,0x11,0x08,0x11,0x08,0x11,0x08,0x1F,0xF8,0x00,0x00,
0x00,0x00,0xFD,0xFE,0x11,0x20,0x11,0xFC,0x21,0x20,0x21,0xFC,0x7D,0x20,0x65,0x20,
0xA5,0xFE,0x24,0x02,0x25,0x52,0x3D,0x4A,0x25,0x2A,0x22,0x22,0x00,0x14,0x00,0x08,};
uchar code ZKPswErr[]={
0x02,0x00,0x01,0x00,0x3F,0xFE,0x42,0x24,0x49,0x50,0x29,0x48,0x48,0xA4,0x0B,0x34,
0x1F,0xE0,0xE0,0x00,0x41,0x00,0x11,0x08,0x11,0x08,0x11,0x08,0x1F,0xF8,0x00,0x00,
0x00,0x00,0xFD,0xFE,0x11,0x20,0x11,0xFC,0x21,0x20,0x21,0xFC,0x7D,0x20,0x65,0x20,
0xA5,0xFE,0x24,0x02,0x25,0x52,0x3D,0x4A,0x25,0x2A,0x22,0x22,0x00,0x14,0x00,0x08,
0x10,0x88,0x10,0x88,0x28,0x88,0x25,0xFE,0x40,0x88,0x7C,0x88,0x93,0xFE,0x7C,0x00,
0x11,0xFC,0x95,0x04,0x55,0x04,0x59,0xFC,0x11,0x04,0x1D,0x04,0xE1,0xFC,0x01,0x04,
0x20,0x00,0x11,0xF8,0xFD,0x08,0x01,0x08,0x01,0xF8,0x78,0x00,0x03,0xFC,0x78,0x40,
0x00,0x40,0x7F,0xFE,0x48,0x40,0x48,0xA0,0x48,0x90,0x79,0x0C,0x4A,0x06,0x04,0x04,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x20,0x20,0x13,0xFE,0xFC,0x20,0x01,0xFC,0x78,0x20,0x03,0xFE,0x00,0x00,0x79,0xFC,
0x01,0x04,0x79,0xFC,0x49,0x04,0x49,0xFC,0x49,0x04,0x79,0x04,0x49,0x14,0x01,0x08,
0x01,0xF0,0x3F,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x1F,0xF0,0x11,0x10,0x1F,0xF0,
0x11,0x10,0x1F,0xF0,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00,
0x10,0x00,0x08,0x0E,0x7F,0x70,0x22,0x40,0x14,0x40,0xFF,0x7E,0x08,0x48,0x08,0x48,
0xFF,0x48,0x08,0x48,0x2C,0x48,0x2A,0x88,0x4A,0x88,0x89,0x08,0x2A,0x08,0x10,0x08,
0x10,0x20,0x10,0x20,0xFE,0x50,0x10,0x88,0x7D,0xF6,0x56,0x00,0x7D,0xC4,0x55,0x54,
0x55,0xD4,0x7D,0x54,0x11,0x54,0xFD,0xD4,0x11,0x54,0x11,0x44,0x11,0x54,0x11,0x48,
0x0C,0x00,0x06,0x00,0x02,0x00,0x01,0x00,0x03,0x00,0x02,0x80,0x02,0x80,0x04,0x40,
0x04,0x20,0x08,0x20,0x08,0x10,0x10,0x08,0x20,0x0E,0x40,0x04,0x80,0x00,0x00,0x00,
};
uchar code ZKnone[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
uchar code LCD_set[]={
0x30,0x87,0x07,39,0x40,240,40,0
};
uchar code LCD_scroll[]={
0,0,240,0x80,0x25,240,0,0x4b
};
void Initialize(void); //LCD初始化
void delay(uint); //延时
void SetCursor(uchar,uchar); //LCD定位子程序
void WriteWork(uchar,uchar,uchar *,uchar,uint,uchar,uchar); //LCD显示子程序
void Clear_display(void); //清屏子程序
void TurnOnWork(void); //开机子程序,输和密码功能
void Working(void); //工作界面
void Chang_display(void); //更换界面准备工作
void Clear_pswstar(void); //输入密码出错时清除星符号
void PSW_num(uchar); //键盘输密码子程序
void Work_num(uchar); //键盘工作子程序
void Clear_Warning(void); //重新输密码时清除警告函数
void format_mcu(void); //格式化单片机
uchar Key(void); //键盘对应编码返回函数
uchar Key_check(void); //键盘扫描子函数
void init_24c02(void); //IIC总线初始化.在MAIN()函数中首先调用本函数
void start(void); // IIC启动函数
void stop(void); // IIC结束函数
bit clock(void); //IIC时钟信号
bit send(uchar); //IIC发送八位数据函数
bit send_address(uchar); //发送2402地址与指定字节地址
bit read_byte(uchar,uchar); //连续读取数据,第一个参数为字节首地址,二为字节数
bit write_byte(uchar,uchar); //连续写入数据,第一个参数为字节首地址,二为字节数
void ack(); //IIC应答函数
uchar rd_24c02(void); //IIC连续
void delay1(void);
sbit LCD_reset=P1^2; //LCD复位腿
sbit clk=P1^6; //发PWM腿
sbit scl_IC=P1^0; //IIC时钟线
sbit sda_IC=P1^1; //IIC数据线
bit Bit_key; //键盘扫描标标位
bit not_full; //密码位数不够标志位
bit PswErr; //密码错误标志位
bit PswDisplay; //输密码键盘扫描标志位
uchar bdata send_data;
sbit hit_bit=send_data^7;
sbit low_bit=send_data^0;
uchar data Timer0Num_0; //软件定时器参数0
uchar data Timer0Num_1; //软件定时器参数1
uchar data num; //输入密码的位数
uchar data Pswnum[6]; //密码数组
uchar data Pswnum_buff[6]; //密码缓冲池
uchar data output;
uchar data num_and;
//uchar read_buff[6];
void main(void)
{
uchar Key_num;
// uchar i;
SP=0XD0;
delay(500);
format_mcu();
while(1)
{
if(_testbit_(Bit_key))
{
if(PswDisplay)
{
switch(Key_num=Key())
{
case 0x33: PSW_num(3);break; //s9
case 0x63: PSW_num(2);break; //s3
case 0x91: PSW_num(1);break; //s8
case 0xA2: PSW_num(6);break; //s2
case 0xC1: PSW_num(5);break; //s1
case 0xA0: PSW_num(4);break; //s7
case 0x53: PSW_num(9);break; //s6
case 0x51: PSW_num(8);break; //s11
case 0x32: PSW_num(7);break; //s12
case 0xC0: PSW_num(10);break; //取消键 s4
case 0x92: PSW_num(0);break; //s5
case 0x60: PSW_num(11);break; //确定键 s10
default: break;
}
}
}
}
}
/******************************************************************************************
*
*
* IIc处理程序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -