⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12.c

📁 我是刚学的串口调试程序控制时间显示
💻 C
字号:
/*#include<reg52.h>
unsigned char flag,a;
void main()
{

	TMOD=0x20;//设置定时器1为工作方式2
	TH1=0xfd;
	TL1=0xfd;
	TR1=1;
	REN=1;
	SM0=0;
	SM1=1;
	EA=1;
	ES=1;
	while(1)
		{
		/*	if(RI==1)
			{
			RI=0;
			P1=SBUF;
			}*/
		/*	if(flag==1)
				{
					ES=0;
					flag=0;
					SBUF=a;//28;	
					while(!TI);	
					TI=0;
					SBUF='2';//28;	
					while(!TI);	
					TI=0;
					SBUF='3';//28;	
					while(!TI);	
					TI=0;
					ES=1;
				}
		}
}

void ser() interrupt 4
{
	RI=0;
	P1=SBUF;
	a=SBUF;
	flag=1;
}*/

#include<AT89X51.h>
#define uint unsigned int 
#define uchar unsigned char
unsigned char code dispcode[]={0x7e ,0x48 ,0x3d,0x6d,0x4b,0x67,0x77,
0x4c,0x7f,0x6f,0x5f,0x73,0x36,0x79,0x37,0x17,0x00
};  
 uchar  dispbitcode[]={0xbf,0xdf,0xf7,0xfb,0xfd,0xfe},
 dispbuf[6]={0,0,0,0,0,0},dispbitcnt,
 second, minite,hour={12},mstcnt,i,j, Dt1,second1, minite1,hour1={6},flag,a,b;                                      //4cH,7fH,6fH,5fH,73H,36H,79H,37H,17H
uint tcnt;
void delay(uint z)
{
uint t1,y;
for(t1=z;t1>0;t1--)
for(y=100;y>0;y--);}
	

	

    





void main()
{	P1=0;
ET0=1;
TR0=1;
TH0=(65536-1976)/256;//定时时间为3000 个周期
TL0=(65536-1974)%256;
TMOD=0x21;

EA=1;
	
Dt1=1;

TH1=0xfd;
	TL1=0xfd;
	TR1=1;
REN=1;
	SM0=0;
	SM1=1;
	EA=1;
	ES=1;
	REN=1;
PS=1;
	SBUF=0;
flag=0;
minite=0;
while(1)
{
if(flag==1)
				{
					ES=0;
					flag=0;


					SBUF=a;//28;
               
                 while(!TI);
                    TI=0;	
					minite=b;
 b=SBUF;
                     
					ES=1;
                    
				}
if(P3_3==0)
{
delay(10);
if(P3_3==0)
{
while(P3_3==0);
minite++;
if(minite==60)
{
minite=0;
}

second=0;

}
}
if(P3_2==0)
{
delay(10);

if(P3_2==0)
{
while(P3_2==0);
hour++;
if(hour==24)
{
hour=0;
}

second=0;

}
}
}
}

void ser() interrupt 4
{
RI=0;
	P1=SBUF;
     a=SBUF;

	flag=1;

	
}


void t0() interrupt 1 
{TH0=(65536-1976)/256;
TL0=(65536-1974)%256;

P0=dispcode[dispbuf[dispbitcnt]];
if(Dt1==0)
{

if(dispbitcnt==1)
{
P0=P0|0X80;
}
if(dispbitcnt==3)
{
P0=P0|0X80;
}
}
P2=dispbitcode[dispbitcnt];

dispbitcnt++;
if(dispbitcnt==6)
{

dispbitcnt=0;

}


tcnt++;
if(tcnt==500)
{
Dt1=!Dt1;

tcnt=0;
second++;
if(second==60)
{
second=0;
minite++;
if(minite==60)
{
minite=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}

dispbuf[5]=second%10;
dispbuf[4]=second/10;

dispbuf[3]=minite%10;

dispbuf[2]=minite/10;
dispbuf[1]=hour%10;
dispbuf[0]=hour/10;
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -