📄 0801用控灯试转.c
字号:
//------------------------------------------------------------
//------------------------------------------------------------
#include<reg51.h>
#include<absacc.h>
#include<INTRINS.H>
#define uchar unsigned char
sbit rs=P2^0;
sbit rw=P2^1;
sbit e=P3^7;
sbit lg=P2^2;
sbit aa=P3^4;
sbit ls=P2^7;
sbit rd=P3^7;
uchar s[5]={0x47,0x4f,0x4f,0x44,0x00};
delay(uchar time)//延时函数
{ while(time>0)
{time--;}
}
delay1(uchar k)//延时函数
{ uchar i = k;
int j;
while(i--)
{
j=7269;
while(
j--);
}
}
enrw()//写使能
{rs=0;
rw=0;
e=0;
delay(15);
e=1;
}
write_data(uchar c)//写数据
{
P0=c;
rs=1;
rw=0;
e=0;
delay(15);
e=1;
}
write_cmd(uchar m)//写命令,注意与写数据的区别
{ P0=m;
enrw();
}
/*=======================================================
显示光标定位
=======================================================*/
void Disp_XY( char posx,char posy) {
uchar mp;
mp = posx & 0x0f;
posy &= 0x01;
if ( posy )mp |= 0x40;
mp |= 0x80;
write_cmd( mp);
}
/*=======================================================
按指定位置显示数出一个字符
=======================================================*/
void DispOneChar(uchar x,uchar y,uchar Wdata) {
Disp_XY( x, y ); // 定位显示地址
write_data( Wdata ); // 写字符
}
void Display1( uchar dd ) {
uchar i;
for (i=0;i<8;i++) {
DispOneChar(i,0,dd);
dd &= 0xff;
}
}
void init_lcd(void)//初始化
{
enrw();
P0=0x32;
write_cmd( P0);
delay(5);
enrw();
P0=0x32;
write_cmd( P0);
//功能设定
delay(5);
//打开显示开关
enrw();
P0=0x0c;
write_cmd( P0);
delay(5);
enrw();
P0=0x01;//清屏幕
enrw();
write_cmd( P0);
delay(5);
enrw();
P0=0x38;//数据长度为8位,双行显示,5*7字符。
write_cmd( P0);
delay(5);
enrw();
P0=0x06;//地址计数递增,显示屏不移动
write_cmd( P0);
}
position(uchar row,uchar colum)//写位置
{uchar p;
if(row==1)
p=0x80+colum-1;
else
p=0xc0+colum-1;
write_cmd(p);
}
display(uchar *s)//写字符串,简单的指针应用
{
for(;*s!='\0';s++)
write_data(*s);
}
void main(void)
{
uchar temp= 255;
init_lcd(); while(1){
if((aa&0xff)==0){
while(1)
{if((aa&0xff)==0){
position(1,1);
display("XXXXXXXXXXXXXXXX");
delay1(5);}
if((aa&0xff)==0){
position(1,1);
display("ABCDEFGHJHIJKLMN");
delay1(5);}
if((aa&0xff)==0){
position(1,1);
display("****************");
delay1(5); }
}}
else
{
position(1,1);
display("XXXXXXXXXXXXXXX");
delay1(5);
position(1,1);
display("ABCDEFGHJHIJKLMN");
delay1(5);
position(1,1);
display("****************");
delay1(5);}
}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -