✅ 操作成功!

单片机程序

发布时间:2023-06-13 作者:admin 来源:文学

单片机程序

单片机程序

lowry-21天习惯

2023年3月19日发(作者:博努奇)

--

可修编-

#include

#include

sbitP32=P3^2;

sbitP23=P2^3;

sbitP22=P2^2;

sbitP21=P2^1;

sbitP20=P2^0;

unsignedcharx;

unsignedcharDisBuf[8]={0,0,0,0,0,0,0,0};

unsignedcharDisBuf1[8]={0,0,0,0,0,0,0,0};

codeunsignedcharTab[10]={0x81,0xed,0x43,0x49,0x2d,0x19,0x11,0xcd,0x01,0x09};

unsignedchartimer0_count1=0,t1=0;

//unsignedchartimer0_count3=0,t3=0;

unsignedchartimer0_count2=0;

unsignedcharSecond=0,Minute=0;

unsignedintYear=17;

unsignedintMonth=01;

unsignedintDay=02;

unsignedintHour=14;

unsignedchara1=0;

unsignedintmond=1;//显示模式

unsignedinta=9;//倒计时初试时间

unsignedintb=60;

voidmDelay(unsignedintdelay)

{

unsignedchari;

for(;delay>0;delay--)

{

for(i=0;i<124;i++)

{

_nop_();

_nop_();

_nop_();

}

}

}

voidtimer0(void)interrupt1

{

TH0=0xfc;TL0=0x66;

timer0_count2++;

if(timer0_count2>1000)

{

P32=!P32;

--

可修编-

timer0_count2=0;

if(mond==4)

{

b--;

if(b<1)

{

b=60;

a--;

}

if(a==0&b==0)

{

mond=5;

}

}

Second++;

if(Second>59)

{

Second=0;

Minute++;

if(Minute>59)

{

Minute=0;

Hour++;

if(Hour>24)

{

Hour=0;

Day++;

if(Day>30)

{

Day=0;

Month++;

if(Month>12)

{

Month=0;

Year++;

}

}

}

}

}

DisBuf[0]=Minute/10;

DisBuf[1]=Minute%10;

DisBuf[2]=Second/10;

DisBuf[3]=Second%10;

--

可修编-

DisBuf[4]=Day/10;

DisBuf[5]=Day%10;

DisBuf[6]=Hour/10;

DisBuf[7]=Hour%10;

DisBuf1[0]=Year/10;

DisBuf1[1]=Year%10;

DisBuf1[2]=Month/10;

DisBuf1[3]=Month%10;

DisBuf1[4]=a/10;

DisBuf1[5]=a%10;

DisBuf1[6]=b/10;

DisBuf1[7]=b%10;

}

if(mond==1)//分秒显示

{

timer0_count1++;

if(timer0_count1>5)

{

timer0_count1=0;

t1++;

if(t1>3)t1=0;

switch(t1)

{

case0:P0=Tab[DisBuf[0]];

P2=P2|0x80;P2=P2&0x8f;

break;

case1:P0=Tab[DisBuf[1]];

P2=P2|0x40;P2=P2&0x4f;

break;

case2:P0=Tab[DisBuf[2]];

P2=P2|0x20;P2=P2&0x2f;

break;

case3:P0=Tab[DisBuf[3]];

P2=P2|0x10;P2=P2&0x1f;

break;

default:break;

}

}

}

else

{

if(mond==2)//天时显示

--

可修编-

{

timer0_count1++;

if(timer0_count1>5)

{

timer0_count1=0;

t1++;

if(t1>3)t1=0;

switch(t1)

{

case0:P0=Tab[DisBuf[4]];

P2=P2|0x80;P2=P2&0x8f;

break;

case1:P0=Tab[DisBuf[5]];

P2=P2|0x40;P2=P2&0x4f;

break;

case2:P0=Tab[DisBuf[6]];

P2=P2|0x20;P2=P2&0x2f;

break;

case3:P0=Tab[DisBuf[7]];

P2=P2|0x10;P2=P2&0x1f;

break;

default:break;

}

}

}

else

{

if(mond==3)//年月显示

{

timer0_count1++;

if(timer0_count1>5)

{

timer0_count1=0;

t1++;

if(t1>3)t1=0;

switch(t1)

{

case0:P0=Tab[DisBuf1[0]];

P2=P2|0x80;P2=P2&0x8f;

break;

case1:P0=Tab[DisBuf1[1]];

P2=P2|0x40;P2=P2&0x4f;

break;

case2:P0=Tab[DisBuf1[2]];

--

可修编-

P2=P2|0x20;P2=P2&0x2f;

break;

case3:P0=Tab[DisBuf1[3]];

P2=P2|0x10;P2=P2&0x1f;

break;

default:break;

}

}

}

else

{

if(mond==4)//倒计时

{

timer0_count1++;

if(timer0_count1>5)

{

timer0_count1=0;

t1++;

if(t1>3)t1=0;

switch(t1)

{

case0:P0=Tab[DisBuf1[4]];

P2=P2|0x80;P2=P2&0x8f;

break;

case1:P0=Tab[DisBuf1[5]];

P2=P2|0x40;P2=P2&0x4f;

break;

case2:P0=Tab[DisBuf1[6]];

P2=P2|0x20;P2=P2&0x2f;

break;

case3:P0=Tab[DisBuf1[7]];

P2=P2|0x10;P2=P2&0x1f;

break;

default:break;

}

}

}

}

}

}

}

voidmain()

{

unsignedcharKeynumber=0,Keytemp=0;

--

可修编-

TMOD=0x01;

TH0=0xfc;TL0=0x66;

TR0=1;

IE=0x82;

while(1)

{

P1&=0x0f;

if((P2&0x0f)!=0x0f)//有键按下

{

mDelay(5);

if(!P23)

{

P1&=0x7f;P1|=0x70;

if(!P23)Keynumber=1;

else

{

P1&=0xbf;P1|=0xb0;

if(!P23)Keynumber=2;

else

{

P1&=0xdf;P1|=0xd0;

if(!P23)Keynumber=3;

else

{

P1&=0xef;P1|=0xe0;

if(!P23)Keynumber=4;

elseKeynumber=20;

}

}

}

}

elseif(!P22)

{

P1&=0x7f;P1|=0x70;

if(!P22)Keynumber=5;

else

{

P1&=0xbf;P1|=0xb0;

if(!P22)Keynumber=6;

--

可修编-

else

{

P1&=0xdf;P1|=0xd0;

if(!P22)Keynumber=7;

else

{

P1&=0xef;P1|=0xe0;

if(!P22)Keynumber=8;

elseKeynumber=20;

}

}

}

}

elseif(!P21)

{

P1&=0x7f;P1|=0x70;

if(!P21)Keynumber=9;

else

{

P1&=0xbf;P1|=0xb0;

if(!P21)Keynumber=10;

else

{

P1&=0xdf;P1|=0xd0;

if(!P21)Keynumber=11;

else

{

P1&=0xef;P1|=0xe0;

if(!P21)Keynumber=12;

elseKeynumber=20;

}

}

}

}

elseif(!P20)

{

P1&=0x7f;P1|=0x70;

if(!P20)Keynumber=13;

else

{

--

可修编-

P1&=0xbf;P1|=0xb0;

if(!P20)Keynumber=14;

else

{

P1&=0xdf;P1|=0xd0;

if(!P20)Keynumber=15;

else

{

P1&=0xef;P1|=0xe0;

if(!P20)Keynumber=16;

elseKeynumber=0;

}

}

}

}

elseKeynumber=0;

}

else{Keynumber=Keytemp;}//无键按下

if(Keynumber!=Keytemp)

{

Keytemp=Keynumber;

switch(Keynumber)

{

}

}

}

}

👁️ 阅读量:0