缘由
这一题刚设计好要去回复就看到结帖了,好似看到我设计完成就盗窃去了,如此下面类似题目很容易也懒得回复了。
#include "reg52.h"
sbit k0=P3^0;
sbit k1=P3^1;
unsigned char code SmZiFu[]={63,6,91,79,102,109,125,7,127,111};//0-9
unsigned char Js=0,miao=0,hm=0;//中断计时 秒 毫秒
void smxs(unsigned char mz,unsigned char w,unsigned char d)
{unsigned char Xd=0;P0=255;P0=255-((d==1?SmZiFu[mz]:(SmZiFu[mz]|0x80)));//小数点闪烁段数据显示P2=~w;//位选while(++Xd);//数码管延时
}
void ZhongDuanSheZhi()
{TH0+=(65536-9216)/256;/*定时器赋初值,定时10ms触发中断,自动补偿方式*/TL0+=(65536-9216)%256; TMOD=0X01;//模式设置TR0=0; //开定时器ET0=1; //启定时器EA=1; //全局中断开关
}
void jishi()//计时
{if(Js==10)//100毫秒{if(++hm==10){hm=0;++miao;}else;if(miao==10)miao=hm=0;else;Js=0;}else;
}
void main()
{unsigned char JZhi=0;ZhongDuanSheZhi();while(1){smxs(miao,2,0);smxs(hm,1,1);//数码管驱动if(hm==9&&miao==9)TR0=0;else;//计数满停止定时器jishi();if(!k0&&!++JZhi){TR0=1;while(!k0);}//按键消抖等待释放处理启动定时器if(!k1&&!++JZhi){Js=miao=hm=0;while(!k1);}//清零停止定时器}
}
void ZhongDuan() interrupt 1
{++Js;TH0+=(65536-9216)/256;/*定时器赋初值,定时10ms触发中断,自动补偿方式*/TL0+=(65536-9216)%256;
}
单片机定时器模拟信号灯-嵌入式-CSDN问答
关于#单片机#的问题:求在P1.0引脚接有虚拟示波器,观察P1.0引脚输出的矩形脉冲波形-嵌入式-CSDN问答
单片机外部中断实验(写程序)-嵌入式-CSDN问答