📄 1602+计数器倒计时30s.c
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
sbit P36=P3^6;
uchar n,k,h,l,m;
uchar d[14]={'z','h','o','u',' ','r','i',' ','b','i','n',' ','O','N'}, //第一行要输入的字符
b[16]={' ',' ', ' ','I',' ','L','O','V','E',' ','M','C','S','-','5','1'}; //第二行要输入的字符
void delay(uint z) //延时 z ms
{
uint i;
uchar j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void zhiling(uchar a) //写命令
{
E=0;RS=0;RW=0;
E=1;
P0=a;
delay(5); //延时 5ms
E=0;
delay(5); //延时 5ms
}
void shuju(uchar b) //写数据
{
E=0;RS=1;RW=0;
E=1;
P0=b;
delay(5); //延时 5ms
E=0;
delay(5); //延时 5ms
}
void init() //初始化
{
zhiling(0x01); //清屏
zhiling(0x38); //功能设置
zhiling(0x0e); //开/关显示设置
zhiling(0x06); //输入方式设置
}
void main()
{
uchar i;
m=31;
TMOD=0x01;
TH0=0xD8;
TL0=0xf0;
EA=1;
ET0=1;
TR0=1;
init();
zhiling(0x80); //第一行
for(i=0;i<14;i++)
shuju(d[i]);
zhiling(0x80+0x40); //第二行
for(i=0;i<16;i++)
shuju(b[i]);
while(1)
{
zhiling(0x80+0x0e);
shuju(h+'0');
shuju(l+'0');
}
}
void time0_int(void) interrupt 1 //中断服务程序
{
TH0=0xD8;
TL0=0xF0;
n++;
if(n==100)
{
n=0;
m--;
h=m/10;l=m%10;
if(h==0&&l==0)
{
P36=0;
h=0;l=0;
m=31;
}
else
P36=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -