#include <reg51.h>
#define uchar unsigned char
uchar i=0;
uchar k=0;
void InitTimer0(void);
void control_sec(void);
void control_min(void);
void control_hor(void);
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void control_sec(void)
{
//second
if((P0 & 0x0f)==0x09)//秒最后一位是9
{
if((P0&0xf0)!=0x05)//秒第二位不是5
{
P0=P0+0x10;
(P0&0x0f)=0x00;
}
else//59秒
{
P0=0x00;
control_min();
}
}
else
{
P0++;
}
}
void control_min(void)
{
//minute
if((P1 & 0x0f)==0x09)//分最后一位是9
{
if((P1&0xf0)!=0x05)//分第二位不是5
{
P1=P1+0x10;
(P1&0x0f)=0x00;
}
else//59秒
{
P1=0x00;
control_hor();
}
}
else
{
P0++;
}
}
void control_hor(void)
{
//hour
if(P2=0x23)
{
P2=0x00;
}
else
{
if((P2 & 0x0f)==0x09)//时最后一位是9
{
P2=P2+0x10;
(P1&0x0f)=0x00;
}
else
{
P2++;
}
}
}
void main(void)
{
P1=0x00;//minute
P0=0x00;//second
P2=0x00;//hour
InitTimer0();
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x3C;
TL0 = 0x0B0;
i++;
if(i==20)
{
i==0;
control_sec();
}
}
电路图基本是这样,排阻还得加个vcc
正经搞肯定不像我这么整,得用1302能方便点,引脚也尽量用595省点io,led更不可能用这个肯定是
这种,我这个就是你要交报告来不及了糊弄糊弄老师的
追问亲。plc16F877A的程序。
追答亲你没说啊
追问实训作业哦!写不出程序要死了。
追答我记得PIc好像是portd之类的吧,io口先定义一下思路跟这个差不多就醒了,led用6个的
追问学渣不会。亲你会不会?