《51单片机编写的闹钟程序》由会员分享,可在线阅读,更多相关《51单片机编写的闹钟程序(8页珍藏版)》请在人人文库网上搜索。

1、include#define uchar unsigned char#define uint unsigned intsbit w1=P00;sbit w2=P01;sbit w3=P02;sbit w4=P03;sbit k1=P04; /定义按键sbit k2=P05;sbit k3=P06;sbit k4=P07;sbit fm=P34;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /0-9十六进制数共阴void timetune(); /时间校正函数 void delayms(uint); /延迟。

2、函数void keyscan(); /闹钟设置函数void keyscan1(); /闹钟检测函数 void display(uint anum,uint anum1,uint anum2,uint anum3); /显示函数uint num0,num,num1,num2,num3,anum,anum1,anum2,anum3,temp,temp0,temp1,temp2,temp3,temp4,s,s1,s2,s3,s4;void main()TMOD=0x01; /设置定时器0为工作方式1(0000 0001)TH0=(65536-45872)/256; /装初值50毫秒中断一次TL0=(。

3、65536-45872)/256;EA=1; /开总中断ET0=1; /开定时器0终中断TR0=1; / 开定时器 while(1) /中断后进入死循环时间永不停止计时 timetune(); / 调用时间设置函数keyscan(); /调用闹钟设置函数if(num0=20) num0=0;num+;if(num=10)num1+;num=0;if(num1=6)num2+;num1=0;if(num2=10) /和下面if必须分开,否则时间到24小时后不会清0继续走下去num3+;num2=0;if(num3=2&num2=4) /当时间走到24小时后自动清0num3=0;num2=0;nu。

4、m=0;num1=0; if(temp0=1) /为了防止闹钟时间显示和正常时间显示同时显示出现数码管显示不清晰,所以display(s1,s2,s3,s4); /写两个对立的if条件判断语句(temp=1和temp!=1)来作为限制条件.if(temp0!=1)display(num,num1,num2,num3); /keyscan1();void display(uint anum,uint anum1,uint anum2,uint anum3) /时间显示函数P2=tableanum3; w1=1;delayms(1);w1=0;P2=tableanum2;w2=1;delayms(。

5、1);w2=0;P2=tableanum1;w3=1;delayms(1);w3=0;P2=tableanum;w4=1;delayms(1);w4=0;void timetune() /时间校正程序if(k4=0) /当每按下第四个键后会出现temp不同的值,然后用delayms(10); /不同的值作为不同的条件给四个数码管加减值来校正时间if(k4=0)temp+; while(!k4);if(temp=1)if(k2=0) delayms(10); /按键时由于会产生机械振动,为了准确检测到按键if(k2=0) /按下所以要延时num+;if(num=10)num=0;while(!k。

6、2);if(temp=2)if(k2=0)delayms(10);if(k2=0)num1+;if(num1=6)num1=0;while(!k2);if(temp=3) if(k2=0)delayms(10);if(k2=0)num2+;if(num2=10)num2=0;while(!k2);if(temp=4)if(k2=0)delayms(10);if(k2=0)num3+;if(num3=3)num3=0;while(!k2);if(num3=2&num2=4) /前面由于num2可以加到十,但是num2最多只能是4,所以 /当num3加到2时,num2只能最大为4,大于4后要清0n。

7、um2=0;if(temp=5)temp=0; /为了让时间能够反复校正,temp要清0void keyscan1() /闹钟判断程序if(s1=num&s2=num1&s3=num2&s4=num3&temp0=2) /闹钟判断条件temp0=0; /当闹钟判断条件成立后,第一次闹钟响了后,为了能够进行第二次闹钟的设置,所以temp0要清0fm=0; /蜂鸣器void keyscan() /闹钟调整程序 if(k3=0)delayms(10);if(k3=0)temp0+; while(!k3); /按键释放if(k1=0)delayms(10);if(k1=0)s+; while(!k1)。

8、;if(s=1)if(k2=0)delayms(10);if(k2=0)s1+;if(s1=10)s1=0;while(!k2);if(s=2)if(k2=0)delayms(10);if(k2=0)s2+;if(s2=6)s2=0;while(!k2);if(s=3)if(k2=0)delayms(10);if(k2=0)s3+;if(s3=10)s3=0;while(!k2);if(s=4)if(k2=0)delayms(10);if(k2=0)s4+;if(s4=3)s4=0;while(!k2);if(s4=3&s3=5) /同时间调整程序一样s3=0;if(s=5)s=0;void delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);void T0_time() interrupt 1 /中断服务程序 EA=0;TH0=(65536-45872)/256;TL0=(65536-45872)/256;num0+;EA=1;。

51单片机带闹钟c语言程序,51单片机编写的闹钟程序相关推荐

  1. 如何用c语言对51单片机进行编程,C语言在51单片机编程中的应用技巧

    随着单片机硬件性能的提高,编写应用程序更着重于程序本身的效率. Franklin或KEII.C51交叉编译器是专为51系列单片机设计的一种高效的C语言编译器,用其开发的应用程序易于维护,可移植性好,是 ...

  2. 单片机红外通信c语言,用51单片机实现红外通讯源码

    /************************************************************************************** *            ...

  3. 51单片机 驱动步进电机 C语言 lcd,51单片机红外遥控控制步进电机的LCD显示源程序...

    /******************************************************************************* * 实验名              ...

  4. 单片机cant通讯 c语言,基于C8051F040单片机的CAN总线通信

    硬件部分 硬件部分电路结构如下: CAN收发模块原本采用的是ATA6660高速CAN收发芯片,电路连接如下: 设计电路为:当单片机发送数据时,D18闪烁,并将数据传送给ATA6660芯片:当ATA66 ...

  5. 单片机技术与c语言编程教学大纲,单片机应用技术(C语言)教学大纲.doc

    单片机应用技术(C语言)教学大纲 一.说明 1.课程的性质和内容 本课程是高级技校应用电子专业的专业课.主要内容包括:认识单片机,点亮彩灯,简易数字钟,简易计算器,键控彩灯,简易频率计,单片机双机通信 ...

  6. 51单片机io位与 c语言,【51单片机】普通I/O口模拟SPI口C语言程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...

  7. 51单片机 | 数字电路与C语言基础 | 51单片机最小系统

    文章目录 一.数字电路基础 1.电平特性 2.二进制与十六进制 2.1 二进制 2.2 十六进制 3.二进制的逻辑运算 二.C语言基础语法 三.51单片机最小系统 1. 51 单片机最小系统构成 1. ...

  8. 基于51单片机的霓虹灯c语言,基于51单片机霓虹灯.pdf

    实训报告 基于单片机的霓虹灯设计 姓名: xxx 学号: xxxxxxxxxxxxxxx 2018/5/31 1. 模块功能简介 1.1 STC89C52 单片机及其引脚说明 89C52是一种高性能低 ...

  9. 基于单片机的血压计c语言,基于51单片机的电子血压计的设计.doc

    摘 要 针对采用传统单片机的电子血压计成本高.测量精度低等缺点,以AT89S51单片机为控制核心,采用气体压力传感器US9111.串行A/D转换芯片ADC0832.LCD驱动芯片和外围模拟电路设计了新 ...

  10. 单片机while用法c语言例子,51单片机-C语言之while(!x)的理解

    while(x) 当x = true 时,while执行循环,如while(1)为死循环:而while(!x)则是利用while(1)为死循环的特点,在单片机中用于判断键盘检测. #include # ...

最新文章

  1. VAE--就是AutoEncoder的编码输出服从正态分布
  2. 关于Java中try-catch-finally-return的执行顺序
  3. 国睿驰120gb固态硬盘测试软件,系统盘首选 国睿驰120GB固态硬盘测试
  4. MySQL 复制夯住排查以及原理探讨
  5. Python装饰器学习笔记 1
  6. 【DP】数的划分(ybtoj DP-1-3)
  7. 通过示例休眠–第2部分(DetachedCriteria)
  8. rocketmq 初探(一)
  9. djano 字段不重复_Java 14 发布了,不使用quot;classquot;也能定义类了?还顺手要干掉Lombok!...
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上零食销售系统
  11. MQ(消息队列)常见的应用场景解析
  12. Jedis之ShardedJedis虚拟节点一致性哈希分析
  13. 计算机领域男的多大年龄退休,2022年后男性几岁退休 2022退休时间表
  14. 团队二阶段冲刺个人工作总结7
  15. Linux acpi off学习的必要
  16. 新浪股票数据接口获取
  17. python课程的中期报告范文_毕业论文中期报告范文(毕业论文中期检查范文8篇)...
  18. MySQL 索引原理
  19. 我知道你在淘宝买过很多东西,但是你买过一所大学吗
  20. Spring AOP中Introduction的使用

热门文章

  1. 国内外已知SAR卫星相关信息整理(持续更新-2022.9.6)
  2. 狂奔五年后,拼多多需要静静
  3. 学而思的python课怎么样_学而思老师怎么样?上课效果好吗?
  4. java web play_玩转 Java Web 应用开发:Play 框架
  5. 工人物语5战役攻略_工人物语5_工人物语5专区_工人物语5下载_逗游网
  6. 太空中的特斯拉 一个大广告?
  7. 王小云计算机,王小云,密码专家——神一样的存在( 开讲了 49′55″)
  8. uniapp 静态图片不显示
  9. 计算机辅助电话访问优势,电话访问的优点缺点、优势不足、局限性
  10. 云片网实现短信验证码