缘由
这一题刚设计好要去回复就看到结帖了,好似看到我设计完成就盗窃去了,如此下面类似题目很容易也懒得回复了。
cpp
#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问答