使用99分钟倒计时器.c(2)

醉花荫下 分享 2021-04-05 下载文档

基于51系列单片机的c程序

minute++;
//即时把显示数据处理,如果去掉下面2句处理信息,实际上看不到渐变效果,而是看到跳变效果
//用户可以自行屏蔽测试
Display_Data_Operation();
DelayMs(50);//用于调节长按循环操作的速度
}
}
}
key_press_num=0;//防止累加造成错误识别
if(minute<99) //加操作
minute++;
}
}

if(!KEY_DEC) //如果检测到低电平,说明按键按下
{
DelayMs(10); //延时去抖,一般10-20ms
if(!KEY_DEC) //再次确认按键是否按下,没有按下则退出
{
while(!KEY_DEC)
{
key_press_num++;
DelayMs(10);
if(key_press_num==200) //大约2s
{
key_press_num=0;
while(!KEY_DEC)
{
if(minute>0) //减操作
minute--;
Display_Data_Operation();
DelayMs(50);//用于调节长按循环操作的速度
}
}
}
key_press_num=0;//防止累加造成错误识别
if(minute>0) //减操作
minute--;

}
}

if(UpdateTimeFlag==1)
{
UpdateTimeFlag=0;

Display_Data_Operation();

if((minute==0)&&(second==0))//条件满足蜂鸣器闪响
{
Beep_ON();
}
else
Beep_OFF(); //不满足时关掉
}
}
}
/*------------------------------------------------
uS延时函数,含有输入参数 unsigned char t,无返回值
unsigned char 是定义无符号字符变量,其值的范围是
0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
长度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{
while(--t);
}
/*------------------------------------------------
mS延时函数,含有输入参数 unsigned char t,无返回值
unsigned char 是定义无符号字符变量,其值的范围是
0~255 这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)
{

while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
显示函数,用于动态扫描数码管
输入参数 FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示
如输入0表示从第一个显示。
Num表示需要显示的位数,如需要显示99两位数值则该值输入2
------------------------------------------------*/
void Display(unsigned char FirstBit,unsigned char Num)
{
static unsigned char i=0;


DataPort=0; //清空数据,防止有交替重影
LATC
H1=1; //段锁存
LATCH1=0;

DataPort=dofly_WeiMa[i+FirstBit]; //取位码
LATCH2=1; //位锁存
LATCH2=0;

DataPort=TempData[i]; //取显示数据,段码
LATC


使用99分钟倒计时器.c(2).doc 将本文的Word文档下载到电脑

下一篇:2015—2016学年度第一学期(2015下半年)校历

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7 元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx