📄 lcd.c
字号:
#include <REGX51.H>
#include <INTRINS.H>
#define uint unsigned int
#define uchar unsigned char
#define PaiduiNO 0x10
#define RS P0_2
#define RW P0_1
#define E1 P0_0
#define KEYEN P0_6
#define ADDEN P0_7
uint WorkingNO;
uchar Waiter;
void LCDWriteCmd(uchar Cmd);
void LCDWriteData(uchar TempData);
void LCDDisplayNO();
void delay(uint tt);
void LCDInitialization();
void main()
{
uint i;
WorkingNO=0;
Waiter=0x00;
LCDWriteCmd(0x06);
LCDInitialization();
LCDDisplayNO();
while(1)
{
for(i=0;i<5000;i++)
{
WorkingNO++;
LCDDisplayNO();
delay(5000);
delay(5000);
delay(5000);
delay(5000);
delay(5000);
delay(5000);
delay(5000);
delay(5000);
delay(5000);
delay(5000);
}
}
}
/*************************************/
void LCDWriteCmd(uchar Cmd) //写命令。
{
// uchar temp;
ADDEN=1;
KEYEN=1;
// CLKK=0;
E1=0; //
RS=0; //
RW=0; //RS/RW同时为0,是命令状态。
_nop_();
P2=Cmd;
_nop_();
_nop_();
E1=1; //关闭LCD
delay(100);
E1=0;
delay(10);
}
void LCDWriteData(uchar TempData)
{
ADDEN=1;
KEYEN=1;
E1=0;
RS=1;
RW=0; //RS=1,RW=0是写数据。
P2=TempData;
E1=1;
delay(100);
E1=0;
delay(10);
}
void LCDDisplayNO() //显示号码
{
LCDWriteCmd(0x01);//清除屏幕
LCDWriteCmd(0x81);
LCDWriteData(0x4e);//N
LCDWriteData(0x4f);//O
LCDWriteData(0x3a); //:
LCDWriteData(0x30+WorkingNO/1000);
LCDWriteData(0x30+(WorkingNO%1000)/100);
LCDWriteData(0x30+(WorkingNO%100)/10);
LCDWriteData(0x30+WorkingNO%10);
LCDWriteCmd(0xc1);
LCDWriteData(0x57);//W
LCDWriteData(0x54);//T
LCDWriteData(0x3a); //:
LCDWriteData(0x30+Waiter/10);
LCDWriteData(0x30+Waiter%10);
// LCDWriteCmd(0xCC);
}
void LCDInitialization() //初始化
{
LCDWriteCmd(0x01);//清除屏幕
delay(5000);
LCDWriteCmd(0x0c);//
delay(5000);
LCDWriteCmd(0x3c);
delay(5000);
}
void delay(uint tt)
{
uint i;
for(i=0;i<tt;i++)
{
_nop_();
_nop_();
_nop_();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -