📄 主函数.c
字号:
#include"160128_driver.h"
#include"at89x51.h"
#include"key.h"
//全局变量定义
sbit Speaker=P3^1;
bit F=0;//读时间标志
unsigned int Time=0;//时间记录寄存器
unsigned char Count=0,Counts=0; //计数标志寄存器
//延时10ms子程序
void Delay_10ms()
{
unsigned char a,b,c;
for(a=0;a<10;a++)
for(b=0;b<3;b++)
for(c=0;c<220;c++);
}
//初始化显示
void Init_disply()
{
LCD_Init(0x00,0x00,0x14,0x40,0x01,0x14,0xa1,0x81,0x9c);
/*CGRAM偏置地址设置函数*/
Write_CGORM();
Han_Zi(0,0,0x84);
Han_Zi(0,18,0x88);
Han_Zi(1,7,0x98);
Han_Zi(1,9,0x9C);
Han_Zi(1,11,0xA0);
Han_Zi(6,3,0xC0);
Han_Zi(6,5,0xC4);
Han_Zi(6,7,0xC8);
Han_Zi(6,9,0xCC);
Han_Zi(6,11,0xD0);
Han_Zi(6,13,0xD4);
Han_Zi(6,15,0xD8);
Han_Zi(8,3,0xDC);
Han_Zi(8,5,0xE0);
Han_Zi(8,7,0xE4);
Han_Zi(8,9,0xE8);
Han_Zi(8,11,0xD0);
Han_Zi(8,13,0xEC);
Han_Zi(8,15,0xF0);
Han_Zi(11,4,0xAC);
Han_Zi(11,7,0xB0);
Han_Zi(11,10,0xB4);
Han_Zi(11,13,0xB8);
Han_Zi(13,9,0x94);
Han_Zi(14,0,0x8C);
Han_Zi(14,18,0x90);
Set_xy(4,4);
Write_8_Data(0x4c,0xc4);//l
Set_xy(4,5);
Write_8_Data(0x49,0xc4);//i
Set_xy(4,6);
Write_8_Data(0x41,0xc4);//a
Set_xy(4,7);
Write_8_Data(0x4f,0xc4);//o
Set_xy(4,9);
Write_8_Data(0x47,0xc4);//g
Set_xy(4,10);
Write_8_Data(0x55,0xc4);//u
Set_xy(4,11);
Write_8_Data(0x4f,0xc4);//o
Set_xy(4,13);
Write_8_Data(0x42,0xc4);//b
Set_xy(4,14);
Write_8_Data(0x41,0xc4);//a
Set_xy(4,15);
Write_8_Data(0x4f,0xc4);//o
Circle(63,79,60,1);
}
void main()
{
EA=ET0=ET1=1;
TMOD=0x11;
TH0=64800/256;
TL0=64800%256;
TH1=0x3c;
TL1=0xb0;
Init_disply();
while(1)
{
if(!P1_4)
{
Delay_10ms();
if(!P1_4)
while(!P1_4);break;
}
}
TR0=TR1=1;
Circle(63,79,60,0);
Clear_LCD();
Dispaly();
Han_Zi(2,18,0xf4);
Han_Zi(14,18,0xf8);
New_Custom();
Han_Zi(8,18,0xbc);
New_Step();
while(1)
{
if(!P1_3)
{
Delay_10ms();
if(!P1_3)
{
while(!P1_3);
TR0=1;
Down_Push();
}
}
if(!P1_1)
{
Delay_10ms();
if(!P1_1)
{
while(!P1_1);
TR0=1;
Left_Push();
}
}
if(!P1_2)
{
Delay_10ms();
if(!P1_2)
{
while(!P1_2);
TR0=1;
Right_Push();
}
}
if(!P1_0)
{
Delay_10ms();
if(!P1_0)
{
while(!P1_0);
TR0=1;
On_Push();
}
}
if(!P3_0)
{
Delay_10ms();
if(!P3_0)
{
while(!P3_0);
TR0=1;
Choice_Customs();
}
}
if(F)
{
F=0;
Set_xy(13,17);
Write_8_Data(0x10+Time/100,0xc4);//l
Set_xy(13,18);
Write_8_Data(0x10+Time%100/10,0xc4);//l
Set_xy(13,19);
Write_8_Data(0x10+Time%10,0xc4);//l*/
}
}
}
//定时器0中断发声程序
void Time_0_Int() interrupt 1 using 0
{
TH0=64800/256;
TL0=64800%256;
Count++;
if(Count==150)TR0=Count=0;//发声100ms
Speaker=~Speaker;
}
//定时器1中断计时程序
void Time_1_Int() interrupt 3 using 1
{
TH1=0x3c;
TL1=0xb0;
Counts++;
if(Counts==40)
{
Counts=0;
Time++;
F=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -