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

📄 g19264-ly.h

📁 这是一个用STC单片机作的,带液晶显示屏的万年历程序,并有串行接收部份,大家一定要珍惜用.
💻 H
📖 第 1 页 / 共 2 页
字号:
/*写汉字液晶子程 液晶屏分为4行*12列汉字,全部使用模拟接口方式。
/*		 TGLCMLIMIT64A接口程序(模拟方式)
	液晶模块供应商:广州市盛宝电子有限公司	Tel:020-87592491 Fax:87541571
	Email:	tinsharp@public.guangzhou.gd.cn
;***************************************************************************
;连线图:
;*LCM---89C52*  *LCM---89C52*   *LCM-------89C52*     *LCM----------89C52* *
;*DB0---P0.0*   *DB4---P0.4*    *D/I-------P2.6*      *CS1----------P2.4*  *
;*DB1---P0.1*   *DB5---P0.5*    *R/W-------P2.7*      *CS2----------P2.5*  *
;*DB2---P0.2*   *DB6---P0.6*    *RST--------VCC*      *CS3----------P3.2*  * 
;*DB3---P0.3*   *DB7---P0.7*    *E---------P2.3*                           *
;注:89C52的晶振频率为12MHz                                                 *
;***************************************************************************/
//画线部分请参照avr的c程序。
//#pragma src			/*生成ASM文件开关,必要时打开	*/
#include<reg52.h>
#include<math.h>
#include<INTRINS.H>
#define	Uchar unsigned char
#define word 	unsigned int 
#define byte 	unsigned char
#define dword 	unsigned long
#define	uchar unsigned char

sfr T2MOD=0xc9;
sfr P4 = 0xe8;
sfr P4CONA = 0xC2;
sfr P4CONB = 0xC3; 
sfr CHPCON = 0xBF;
sfr CHPENR = 0xF6;
sfr XICON = 0xC0;
sfr WDT_CONTR=0xe1;//看门狗寄存器


sbit P4_0=P4^0;
sbit P4_1=P4^1;
sbit P4_2=P4^2;
sbit P4_3=P4^3;
sbit 	BL=P4^3; //背光源
sbit 	BEEP=P1^0; //蜂鸣器
bit 	keydn=0;//键盘有效按下标志位
bit 	enterflg;//确认键按下与否标志
Uchar  read_count;
Uchar   data keybuf;//输入密码存储区
Uchar read_count;
Uchar   card_id[3];


#define  WDT 63


/***********液晶显示器接口引脚定义***************/
sbit	Elcm= 	 P1^1;		//
sbit	CS1LCM=	 P3^4;		//
sbit	CS2LCM=	 P4^0;		//
sbit	CS3LCM=	 P4^2;		/*这个连接只是做实验的临时接法。*/
sbit	Dilcm=	 P1^5;		//
sbit	Rwlcm=	 P1^2;		//
sfr     Datalcm= 0x80;		//数据口
//sbit    CEDS   = P1^1;
/***********常用操作命令和参数定义***************/
#define	 DISPON		0x3f	/*显示on		*/
#define	 DISPOFF	0x3e	/*显示off		*/
#define	 DISPFIRST	0xc0	/*显示起始行定义	*/
#define	 SETX		0x40	/*X定位设定指令(页)	*/
#define	 SETY		0xb8	/*Y定位设定指令(列)	*/
#define	 Lcdbusy	0x80	/*LCM忙判断位		*/

/**************显示分区边界位置*****************/
#define	 MODL		0x00	/*左区			*/
#define	 MODM		0x40	/*左区和中区分界	*/
#define	 MODR		0x80	/*中区和右区分界	*/
#define	LCMLIMIT	0xC0	/*显示区的右边界	*/

/****************全局变量定义*******************/
Uchar col,row,cbyte;		/*列x,行(页)y,输出数据	*/
Uchar alarm;
/*****************函数列表**********************/
void Lcminit(void);		/*液晶模块初始化	*/
void Delay(Uchar);		/*延时,入口数为Ms	*/
void lcdbusyL(void);		/*busy判断、等待(左区)	*/
void lcdbusyM(void);		/*busy判断、等待(中区)	*/
void lcdbusyR(void);		/*busy判断、等待(右区)	*/
void Putedot(Uchar);		/*半角字符输出		*/
void Putcdot(Uchar);		/*全角(汉字)输出	*/
void Wrdata(Uchar);		/*数据输出给LCM		*/
void Lcmcls( void );		/*LCM全屏幕清零(填充0)	*/
void wtcom(void);		/*公用busy等待		*/
void Locatexy(void);		/*光标定位		*/
void WrcmdL(Uchar);		/*左区命令输出		*/
void WrcmdM(Uchar);		/*中区命令输出		*/
void WrcmdR(Uchar);		/*右区命令输出		*/
void Putstr(Uchar *puts,Uchar i);	/*中英文字符串输出	*/
void Rollscreen(Uchar x);	/*屏幕向上滚动演示	*/
void Rddata(void);		/*  从液晶片上读数据	*/
void Linehv(Uchar length);	/*横(竖)方向画线	*/
void point(void);		/*打点			*/
void Linexy(Uchar endx,Uchar endy);/*画线。任意方向的斜线,不支持垂直的或水平线	*/
Uchar getdate(uchar);//读时间
void init_ds(void);
void init_serial();		//串口初始化





/******************数组列表*********************/
Uchar code Ezk[];		/*ASCII常规字符点阵码表	*/
Uchar code Hzk[];		/*自用汉字点阵码表	*/
Uchar code STR1[];		/*自定义字符串		*/
Uchar code STR2[];		//
Uchar code STR3[];		//
Uchar code STR4[];	
Uchar code HZ[];

Uchar code STR2[]=
		{
		0x80,0x81,0x82,0x83,0x84,0x85,
		0x86,0x87,0x88,0x89,0x8a,0x8B
		};

Uchar code HZ[]={

/*--  文字:  年  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,
0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x00,
0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,
0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00,


/*--  文字:  月  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,
0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,
0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00,

/*--  文字:  日  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,
0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00,

 /*时   CCAB1 */
0x00,0xFC,0xFC,0x44,0x44,0xFC,0xFC,0x90,
0x90,0x10,0x10,0xFF,0xFF,0x10,0x10,0x10,
0x00,0x07,0x07,0x04,0x04,0x07,0x07,0x00,
0x03,0x43,0xC0,0xFF,0x7F,0x00,0x00,0x00,
 /*分   CB7D6 */
0x80,0xC0,0x60,0xB8,0x9F,0x87,0x82,0x80,
0x83,0x87,0x9C,0xB8,0x70,0xE0,0xC0,0x40,
0x00,0x80,0xC0,0x60,0x30,0x1F,0x0F,0x00,
0x20,0x60,0x7F,0x3F,0x00,0x00,0x00,0x00,
 /*秒   CC3EB */
0x12,0x12,0xD2,0xFE,0xFF,0x91,0xD1,0xF8,
0x38,0x10,0xFF,0xFF,0x08,0x18,0x70,0x60,
0x04,0x07,0x03,0xFF,0xFF,0x83,0x83,0xC0,
0x40,0x60,0x23,0x33,0x18,0x0C,0x07,0x03,


/*--  文字:  星  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,
0x2A,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,
0x00,0x48,0x46,0x41,0x49,0x49,0x49,0x7F,
0x49,0x49,0x49,0x49,0x49,0x41,0x40,0x00,
/*--  文字:  期  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x04,0xFF,0x54,0x54,0x54,0xFF,0x04,

⌨️ 快捷键说明

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