⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 read4442.h

📁 一个LCD2002液晶屏驱动程序,对于想对LCD想对LCD编程的朋友可以参考.
💻 H
字号:

#define uchar unsigned char 
#define uint  unsigned int  
typedef signed   char  INT8S;                    /* Signed    8 bit quantity                           */
typedef unsigned char  INT8U;                    /* Unsigned  8 bit quantity                           */

//#define unsigned char byte
//#define unsigned int  word
#define	OFF 1
#define ON	0
#define True 1
#define	False 0


#define RMM_COMM 0x30    //读主存命令字
#define WMM_COMM 0x38    //写主存命令字
#define VER_COMM 0x33    //校验密码
#define RSM_COMM 0x31    //读密码存储区
#define WSM_COMM 0x39    //写密码存储区
#define RPM_COMM 0x34    //读保护存储区
#define WPM_COMM 0x3c    //写保护存储区

#define LCDCOM XBYTE[0x8000]       /* LCD Command Address */
#define LCDDAT XBYTE[0xc000]       /* LCD Date Address */

//******************************************
//             定义IC卡接口

sbit	OK = P4 ^ 0;
//sbit	IC_Read_LED = P1 ^ 6;
//sbit	IC_In_LED = P2 ^ 5; 
//sbit	IC_VCC_LED = P1 ^ 4;
//sbit	IC_VCCC	= P1 ^ 1;
//sbit	IC_In		= P1 ^ 0;
//sbit    IC_RST     = P3 ^ 7;   /*ICCard复位线引脚 */
//sbit    IC_CLK     = P1 ^ 2;   /*ICCard时钟线引脚 */
//sbit    IC_IO      = P1 ^ 3;   /*ICCard数据线引脚 */
//sbit     IC_PGM     = P3^2;   /*ICCard编程线引脚 */


sbit IC_IO  = P1^2;   /*ICCard数据线引脚 */
sbit IC_RST = P1^0;   /*ICCard复位线引脚 */
sbit IC_CLK = P1^1;   /*ICCard时钟线引脚 */
sbit IC_In  = P3^2; 
sbit IC_VCCC = P1^5; 


#define LCD2002_MODE       0x3C                 /* 接口数据8位,显示2行,字体为1号 */ 
    
#define LCD2002_NO_FLASH   0x0C                 /* 屏幕显示开,无光标 */ 
       
#define LCD2002_HIDE       0x08                 /* 屏幕显示关 */       

#define LCD2002_FLASH      0x0D                 /* 屏幕显示开,并打开闪烁光标 */    

#define LCD2002_SHIFT      0x07                 /* 模块数据输入为增量方式,显示内容移动 */      

#define LCD2002_NO_SHIFT   0x06                 /* 模块数据输入为增量方式,显示光标移动 */     

#define LCD2002_SH         0x14                 /* 移动光标及整体显示 */ 
     

/* LCD地址相关控制宏 */

#define LCD2002_LINE1      0x80                 /* 第一行DDRAM起始地址 */   

#define LCD2002_LINE2      0xC0                 /* 第二行DDRAM起始地址 */  

#define LCD2002_CGRAM      0x40                 /* 定义CGRAM的起始地址 */ 


/******************************************/

uchar   Read_Buffer[16]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};
//uchar xdata Read_Buffer[16];

bit 	IC_In_Flag;
bit		IC_Read_Flag;
//************************************************************************
//4442卡底层程序的外部函数声明

void ReadMainMem(uchar addr,uchar idata *pt,uchar count); //读IC卡主存
void WriteMainMem(uchar addr,uchar idata *pt);        //写IC卡主存
void ReadProtectMem(uchar idata *pt);                 //读保护存储器
void ProtectByte(uchar CardAdd,uchar idata *pt);      //保护一字节,注意待保
//护的字节是已经写入过的,地址只能在保护存储区内
bit  Verify(uchar idata *pt);                         //校验密码,成功返回1

void SendComm(uchar a,uchar b,uchar c);                      //发送命令
void ReadMode(uchar idata *pt,uchar count);
void ProcessMode(void);
void ResetCard(void);
void BreakOperate(void);
void StartComm(void);
void StopComm(void);
uchar ReadByte(void);
void WriteByte(uchar ch);
void Delay10us(void);
void Delay5us(void);
void init();
void Read_Send();
void Check_Send();

//extern void PowerOn(uchar idata *pt);                        //卡上电,延时约80us,卡复位,同时读入4个标示字节
//extern void PowerOff(void);                                  //卡下电,延时约80us
//******************************************************************

void  Lcd2002Clr(INT8U y); 
void  Lcd2002Init(void);
void  Lcd2002DispStr(INT8U x, INT8U y, INT8S *Data);
void  Lcd2002DispCha(INT8U x, INT8U y, INT8U Data);
void  Lcd2002LoadC(INT8U Addr, INT8U *Data, INT8U Nchar);

#define  LCD2002_SEND_COMMAND(a)        \
         LCDCOM = a;
//写数据
#define  LCD2002_SEND_DATA(a)           \
         LCDDAT = a;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -