第一范文网 - 专业文章范例文档资料分享平台

51单片机+ds1302+DS18b20温度时钟(电路图+C语言程序)

来源:用户分享 时间:2025/5/16 0:14:56 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

case 14://修改闹钟使能状态下按S2 clock_hour=zancun1; clock_minute=zancun2; clock_en=zancun3; flag1=0; break; case 3:

flag1=15;

zancun1=countdown_hour; zancun2=countdown_minute; zancun3=countdown_second; break; case 15: case 16: case 17: case 18: case 19: case 20:

countdown_hour=zancun1; countdown_minute=zancun2; countdown_second=zancun3; flag1=21;

countdown_flag=0; break; case 22:

flag1=21; break; case 21:

flag1=22; break; case 4:

flag1=23;//秒表暂停 msecond_minute=0; msecond_second=0; msecond_msecond=0; break; case 23:

flag1=24; break; case 24:

flag1=23; break; case 5:

flag1=25;//进入计数器模式

zancun1=0; zancun2=0; zancun3=0; break; default: break; }

while(s2_bit==0) {

judge_dis(); }//等待按键释放 } } }

//************************************************** //S3按键处理函数 void judge_s3() {

s3_bit=1;//置IO为1,准备读入收据 if(s3_bit==0)//判断是否有按键按下 {

delay_50us(1);// 延时,去除机械抖动 if(s3_bit==0) {

switch (flag1) {

case 6://修改时间小时的十位数 zancun1+=10;

if(zancun1>=24)zancun1=zancun1; break;

case 7://修改时间小时的个位数

zancun1=zancun1/10*10+(zancun1+1); if(zancun1>=24)zancun1=20; break;

case 8://修改时间分钟的十位数 zancun2+=10;

if(zancun2>=60)zancun2-=60; break;

case 9://修改时间分钟的个位数

zancun2=zancun2/10*10+(zancun2+1); break;

case 10://修改闹钟小时的十位数

zancun1+=10;

if(zancun1>=24)zancun1=zancun1; break;

case 11://修改闹钟小时的个位数

zancun1=zancun1/10*10+(zancun1+1); if(zancun1>=24)zancun1=20; break;

case 12://修改闹钟分钟的十位数 zancun2+=10;

if(zancun2>=60)zancun2-=60; break;

case 13://修改闹钟分钟的个位数

zancun2=zancun2/10*10+(zancun2+1); break; case 14:

zancun3^=1; break;

case 15://修改倒计时小时的十位数 zancun1+=10;

if(zancun1>=100)zancun1-=100; break;

case 16: //修改倒计时小时的个位数

zancun1=zancun1/10*10+(zancun1+1); break;

case 17://修改倒计时分钟的十位数 zancun2+=10;

if(zancun2>=60)zancun2-=60; break;

case 18: //修改倒计时分钟的个位数

zancun2=zancun2/10*10+(zancun2+1); break;

case 19://修改倒计时秒的十位数 zancun3+=10;

if(zancun3>=60)zancun3-=60; break;

case 20: //修改倒计时秒的个位数

zancun3=zancun3/10*10+(zancun3+1); break; case 21: case 22://

countdown_hour=zancun1; countdown_minute=zancun2; countdown_second=zancun3; flag1=21;

break; case 23:

case 24://秒表复位 flag1=24;

msecond_minute=0; msecond_second=0; msecond_msecond=0; break; case 25:

zancun1++;

if(zancun1==100) {

zancun1=0; zancun2++;

if(zancun2==100) {

zancun2=0; zancun3++; } }

break; default: break; }

while(s3_bit==0) {

judge_dis(); }//等待按键释放 } } }

//**************************************** //显示处理函数 void judge_clock() {

zancun4=hour_count&0xf0; zancun4>>=4;

zancun6=hour_count&0x0f; zancun4*=10;

zancun4+=zancun6;

zancun5=minute_count&0xf0; zancun5>>=4;

zancun6=minute_count&0x0f;

51单片机+ds1302+DS18b20温度时钟(电路图+C语言程序).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1t2h625ixe4bptb10lzu_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top