题目要求:用定时器与中断制作秒表,并且限定时间,到达时间,P13灯亮。
#include <STC12C5A60S2.H>
unsigned char num[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E};
unsigned char buff[3]={0XFF,0XFF,0XFF};
unsigned int cnt=0;
void main(){ unsigned long sec=0;
int i=0;
P11=0;
TMOD=0X01;
TH0=0XF5;
TL0=0X96;
TR0=1;
EA=1;
ET0=1;
IT0=0;
while(1)
{ if (TF0==1)
TF0=0;
TH0=0XF5;
TL0=0X96;
cnt++;
if(cnt>=1000)
{cnt=0;
sec++;
buff[0]=num[sec%10];
buff[1]=num[sec/10%10];
buff[2]=num[sec/100%10];}
switch(i)
{case 0:P22=1;P21=0;P20=1;i++;P0=buff[0];break;
case 1:P22=1;P21=0;P20=0;i++;P0=buff[1];break;
case2:P22=0;P21=1;P20=1;i=0;P0=buff[2];break;
default:break;}}}}
void it()interrupt 1
{TH0=0XF5;
TL0=0X96;
cnt++;
if (cnt>=1000) {cnt=0; P13=0; }}这是我做的,看看哪里不对,能编译执行,但实现不了功能
此帖出自
小平头技术问答
一周热门 更多>