📄 电脑向51发什么,回什么.c
字号:
#include <AT89X51.H>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
/*延时程序 晶振11.0592M的i为115;12M的i为125;
由Delay 参数确定延迟时间
*/
void mdelay(unsigned int Delay)
{ unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0;i<115;i++);
}
}
unsigned int sz;
unsigned int bz;
unsigned char shi;
unsigned char fen;
unsigned char miao;
unsigned int geshu;
unsigned char gewei;
unsigned char shiwei;
unsigned char baiwei;
unsigned char qianwei;
unsigned char wei;
void INt_0(void) interrupt 0 using 0
{
TMOD=0x01;
TH0=(65536-9216)/256;
TL0=(65536-9216)%256;
TR0=1;
ET0=1;
EA=1;
mdelay(12);
geshu++;
if(geshu==100)
geshu=0;
mdelay(200);
qianwei=geshu/1000;
geshu=geshu%1000;
baiwei=geshu/100;
geshu=geshu%100;
shiwei=geshu/10;
gewei=geshu%10;
geshu++;
qianwei=geshu/1000;
bz=geshu%1000;
baiwei=bz/100;
sz=bz%100;
shiwei=sz/10;
gewei=sz%10;
}
void jianpan(void)
{
if(P1_7==0)
{
shi++;
if(shi==24)
shi=0;
while(P1_7==0);
}
if(P1_6==0)
{
shi--;
if(shi==255)
shi=23;
while(P1_6==0);
}
if(P1_5==0)
{
fen++;
if(fen==60)
fen=0;
while(P1_5==0);
}
if(P1_4==0)
{
fen--;
if(fen==255)
fen=59;
while(P1_4==0);
}
}
void jianpan1(void)
{
if(P1_7==0)
{
shi++;
if(shi==24)
shi=0;
mdelay(200);
}
if(P1_6==0)
{
shi--;
if(shi==255)
shi=23;
mdelay(200);
}
if(P1_5==0)
{
fen++;
if(fen==60)
fen=0;
mdelay(200);
}
if(P1_4==0)
{
fen--;
if(fen==255)
fen=59;
mdelay(200);
}
}
void xianshi(void)
{
P0=dispcode[shi/10];
P1=0xfe;
mdelay(3);
P0=dispcode[shi%10];
P0_7=1;
P1=0xfd;
mdelay(2);
P0=dispcode[fen/10];
P1=0xfb;
mdelay(3);
P0=dispcode[fen%10];
P1=0xf7;
mdelay(2);
}
void xianshi1(void)
{
P0=dispcode[qianwei];
P1=0xfe;
mdelay(3);
P0=dispcode[baiwei];
P1=0xfd;
mdelay(2);
P0=dispcode[shiwei];
P1=0xfb;
mdelay(3);
P0=dispcode[gewei];
P1=0xf7;
mdelay(2);
}
void xianshi2(void)
{
P0=dispcode[miao/10];
P2=0xfd;
mdelay(2);
P0=dispcode[miao%10];
P2=0xfe;
mdelay(2);
P0=dispcode[fen/10];
P2=0xf7;
mdelay(2);
P0=dispcode[fen%10];
P0_7=1;
P2=0xfb;
mdelay(2);
P0=dispcode[shi/10];
P2=0xdf;
mdelay(2);
P0=dispcode[shi%10];
P0_7=1;
P2=0xef;
mdelay(2);
}
void t0(void) interrupt 1 using 0
{ TH0=(65536-9210)/256;
TL0=(65536-9210)%256;
wei++;
if(wei==100)
{ miao++;
wei=0;
if(miao==60)
{ fen++;
miao=0;
if(fen==60)
{
fen=0;
shi++;
if (shi==24)
{ shi=0;}
}
}
}
}
void INt0(void) interrupt 4 using 1
{
if(RI)
{
RI=0;
sz=SBUF;
TI=0;
SBUF=sz;
while(TI==0);
}
TI=0;
}
unsigned char idata trdata[10]={'M','C','S','-','5','1',0x0d,0x0a,0x00};
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0xd8;
PCON=0x00;
TR1=1;
while(1)
{
while(RI==0);
RI=0;
miao=SBUF;
SBUF=miao;
while(TI==0);
TI=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -