📄 guangdian.c
字号:
#include <reg52.h>
#include <absacc.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define D_PORT P1
sbit RS=P3^0;
sbit RW=P3^1;
sbit E=P3^2;
//sbit GD=P3^3;
sbit dj=P2^7;
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
//#define LCD_BUS P1
uchar i,j,ren;
uchar code table0[]="2008-11-12--WED";
uchar code table1[]="22: 58: 55";
void wait_free()
{
unsigned char retb;
do{
D_PORT=0xff;
RS=0;
RW=1;
E=1;
retb=D_PORT;
E=0;
}while((retb&0x80)!=0);
}
void write_commm(unsigned char cmd_dat,bit cd)
{
wait_free();
if(cd)RS=1;
else RS=0;
RW=0;
E=1;
D_PORT=cmd_dat;
E=0;
}
void delay(unsigned int t)
{ unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++)
;
}
void hzkdis(unsigned char code *s)
{ while(*s>0)
{ write_commm(*s,1);
s++;
delay(500);
}
}
void lcdreset()
{
delay(2000);
write_commm(0x30,0); //选择基本指令集
write_commm(0x30,0); //选择8bit数据流
delay(5);
write_commm(0x0c,0); //开显示(无游标、不反白)
delay(5);
write_commm(0x01,0); //清除显示,并且设定地址指针为00H
delay(5);
write_commm(0x06,0); //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
}
void init()
{
//GD=0;
EA=1;
EX1=1;
// TMOD=0x90;
// TMOD=0x11;
//TH1=(65536-65534)/256;
// TL1=(65536-65534)%256;
IE1=1;
ET1=1;
IT1=1;
TR1=0;
}
void main()
{
init();
lcdreset();
delay(1000);
write_commm((0x80),0);
for(i=0;i<=16;i++)
{
write_commm(table0[i],1);delay(200);
}
delay(1000);
write_commm((0x90),0); delay(200);
for(j=0;j<9;j++)
{
write_commm(table1[j],1);delay(200);
}
delay(1000);
write_commm(0x0f,0);//开光标显示
write_commm(0x98,0);
hzkdis("设计创新研究室!"); delay(5000);
write_commm(0x0c,0);//关光标
while(1)
{
;
}
}
void exter1() interrupt 2
{
write_commm((0x88+3),0);delay(100);
ren++;
if(ren==10)ren=0;
write_commm((0x30+ren),1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -