📄 1602.c
字号:
#define uchar unsigned char
#define uint unsigned int
#include "def.h"
#include <reg52.h>
#include <stdio.h>
#include <intrins.h>
#define PUBLIC_GLOBALS
#include <public.h>
/*****************************************************************************/
uchar num,minute,temp;
sbit RS = P1^0;//Pin4
sbit RW = P1^1; //Pin5
sbit E = P1^2;//Pin6
#define Data P2 //数据端口
void DelayUs(unsigned char us)//精确延时1us
{
unsigned char uscnt;
uscnt=us>>1;/* Crystal frequency in 12MHz*/
while(--uscnt);
}
/******************************************************************/
void DelayMs(unsigned char ms)//这个延时和上面的组合起来的延时即为ms(ms)
{
while(--ms)
{
DelayUs(250);
DelayUs(250);
DelayUs(250);
DelayUs(250);
}
}
void delay5ms(void) //精确延时(5ms-5us)的时间,对与MS级的延时已经很精确了
{
uchar i,j;
for(i=10;i>0;i--)
for(j=248;j>0;j--);
}
void delay15ms(void) //精确延时(5ms-5us)的时间,对与MS级的延时已经很精确了
{
uchar i,j;
for(i=30;i>0;i--)
for(j=248;j>0;j--);
}
void WriteCommand(unsigned char c)
{
//DelayMs(5);//short delay before operation 延时4.179ms
delay5ms();//精确延时(5ms-5us)的时间
E=0;
RS=0;
RW=0;
_nop_();
E=1;
Data=c;
E=0;
}
/****************************************************************/
void WriteData(unsigned char c)
{
// DelayMs(5); //short delay before operation 延时4.179ms
delay5ms(); //精确延时(5ms-5us)的时间
E=0;
RS=1;
RW=0;
_nop_(); //1us
E=1;
Data=c;
E=0;
RS=0;
}
/*********************************************************************/
void ShowChar(unsigned char pos,unsigned char c)
{
unsigned char p;
if (pos>=0x10)
p=pos+0xb0; //是第二行则命令代码高4位为0xc
else
p=pos+0x80; //是第二行则命令代码高4位为0x8
WriteCommand (p);//write command
WriteData (c); //write data
}
/*************************************************************************/
void ShowString (unsigned char line,char *ptr)
{
unsigned char l,i;
l=line<<4;
for (i=0;i<16;i++)
ShowChar (l++,*(ptr+i));//循环显示16个字符
}
/*********************************************************************/
void InitLcd()
{
//DelayMs(15);
delay15ms();
WriteCommand(0x38); //display mode
WriteCommand(0x38); //display mode
WriteCommand(0x38); //display mode
WriteCommand(0x06); //显示光标移动位置
WriteCommand(0x0c); //显示开及光标设置
WriteCommand(0x01); //显示清屏
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -