1. 用定时器中断写时钟加调节
    1)关闭蜂鸣器、继电器等无关外设;
    2)设备初始化时钟为 23 时 59 分 50 秒,闹钟提醒时间 0 时 0 分 0 秒。
    A.时间显示格式
    2 3 - 5 9 - 5 0
    23 时 间隔 59 分 间隔 50 秒

B.按键功能
1) 按键 S7 定义为“时钟设置”按键,通过该按键可切换选择待调整的时、分、 秒,
当前选择的显示单元以 1 秒为间隔亮灭,时、分、秒的调整需注意数据边界
属性。

2) 按键 S6 定义为“闹钟设置”按键,通过该按键可进入闹钟时间设置功能,数码
管显示当前设定的闹钟时间。

3) 按键 S5 定义为“加”按键,在“时钟设置”或“闹钟设置”状态下,每次按下该按 键
当前选择的单元(时、分或秒)增加 1 个单位。 4) 按键 S4 定义为“减”按键,在“时钟设置”或“闹钟设置”状态下,每次按下该按
键当前选择的单元(时、分或秒)减少 1 个单位。

#include <stc15f2k60s2.h>
#include <intrins.h>
unsigned char code abile[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//¹²Ñô¼«Êý×é
unsigned char display[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
unsigned char code nao[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned char miao=50,fen=59,shi=23,m,n,p,a,nmiao=0,nfen=0,nshi=0;
void Delay1ms();
void duanxuan();
void weixuan();
void Timer0Init();
void Timer1Init();
void naolin();
void shizhongshezhi();
void naozhongshezhi();
void Timer1Init();void jia();
void jian();
sbit S7=P3^0;
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;
int qq;
void main()
{P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF;while(1)
{Timer0Init();//ʱÖÓTimer1Init();weixuan();duanxuan();shizhongshezhi();naolin();//ÄÖÁånaozhongshezhi();jia();jian();
}}
void naolin()
{if(miao==nmiao&&fen==nfen&&shi==nshi)//Èç¹ûʱÖÓʱ¼äºÍÄÖÁåʱ¼äÒ»Ñù£¬·äÃùÆ÷¹¤×÷
{P2=0XA0;P0=0Xff;P2=0X1F;//                     ¿ª·äÃùÆ÷
}
else
{P2=0XA0;P0=0X00;P2=0X1F;//                         ¹Ø·äÃùÆ÷
}
}
void duanxuan()
{display[2]=0xbf;//                                ʱ·ÖÃëÖмäµÄºáÏßdisplay[5]=0xbf;if(p==0){if((qq>1000)&&(m==1))//                          ¿ØÖÆʱÖÓµÄʱ·ÖÃë{ display[7]=0xff;display[6]=0xff;}else{display[7]=abile[miao%10];display[6]=abile[miao/10];}if(qq>1000&&m==2){display[4]=0xff;display[3]=0xff;}else{display[4]=abile[fen%10];display[3]=abile[fen/10];}if(qq>1000&&m==3){display[1]=0xff;display[0]=0xff;}else{display[1]=abile[shi%10];display[0]=abile[shi/10];}}if(p==1)//                                       ¿ØÖÆÄÖÖÓµÄʱ·ÖÃë                              {if((qq>1000)&&(a==1)){   display[7]=0xff;display[6]=0xff;}else{display[7]=abile[nmiao%10];display[6]=abile[nmiao/10];}if((qq>1000)&&(a==2)){display[4]=0xff;display[3]=0xff;}else{display[4]=abile[nfen%10];display[3]=abile[nfen/10];}if((qq>1000)&&(a==3)){display[1]=0xff;display[0]=0xff;}else{display[1]=abile[nshi%10];display[0]=abile[nshi/10];}}
}
void weixuan()//                                      ÊýÂë¹Üλѡ£¨8¸öÈ«Ñ¡£©
{unsigned char i;   P2=(P2&0x1f)|0xc0;P0=(1<<i);P2=0x1f;P2=(P2&0x1f)|0xe0;P0=display[i];i++;
Delay1ms();
if(i==8) i=0;
}
void shumaguan() interrupt 1//           µ±°´¼üS7û°´Ê±m=0£¬´Ëʱ ÿÃë¼ÓÒ»¡£Èç¹û°´¼ü°´Ï£¬Ôò²»¼Ó{unsigned int i;if(m==0)i++;if(i==1000){i=0;miao++;}if(miao==60) {miao=0;fen++;}
if (fen==60)
{   fen=0;shi++;
}if(shi==24){shi=0;}}
void Timer0Init()       //1ºÁÃë??@11.0592MHz
{AUXR |= 0x80; TMOD &= 0xF0;      TL0 = 0xCD;    TH0 = 0xD4;        TF0 = 0;       TR0 = 1;       EA=1;ET0=1;
}void Delay1ms()        //@11.0592MHz
{unsigned char i, j;_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);
}void shizhongshezhi()//                  m¿ØÖÆÑ¡Ôñʱ·ÖÃ룬°´Ò»´ÎS7£¬m¼ÓÒ»£¬µ±¼Óµ½4ʱ
{if(S7==0)
{Delay1ms();
if(S7==0)
{p=0;m++;if(m==4)m=0;while(!S7);
}
}
}void naozhongshezhi()//               ±äÁ¿a¿ØÖÆÄÖÖÓʱ·ÖÃ룬±äÁ¿pÖ»ÓÐ0ºÍ1£¬µ±ÎªÒ»
{if(S6==0)
{Delay1ms();
if(S6==0)
{a++;if(a==4)a=0;p=1;
while(!S6);
}
}}void jia(){if(S5==0){Delay1ms();if(S5==0)
{if(m==1)miao+=1;if(miao>59)miao=0;
if(m==2)fen+=1;if(fen>59)fen=0;
if(m==3)shi+=1;if(shi>23)shi=0;if(a==1)nmiao+=1;if(nmiao>59)nmiao=0;
if(a==2)nfen+=1;if(nfen>59)nfen=0;
if(a==3)nshi+=1;if(nshi>23)nshi=0;
while(!S5);
}} }void jian(){if(S4==0){Delay1ms();if(S4==0)
{if(m==1)miao--;if(miao>99)miao=59;
if(m==2)fen--;if(fen>99)fen=59;
if(m==3)shi--;if(shi>99)shi=23;if(a==1)nmiao--;if(nmiao>99)nmiao=59;
if(a==2)nfen--;if(nfen>99)nfen=59;
if(a==3)nshi--;if(nshi>99)nshi=23;
while(!S4);
}}}void Timer1Init(void)        //1??@11.0592MHz
{AUXR |= 0x40;     //?????1T??TMOD &= 0x0F;       //???????TL1 = 0xCD;       //??????TH1 = 0xD4;        //??????TF1 = 0;       //??TF1??TR1 = 1;ET1=1;EA=1;
} void shan() interrupt 3
{qq++;if(qq==2000)qq=0;
}

基于stc15f2k60s2芯片单片机编程(闹铃)相关推荐

  1. 基于stc15f2k60s2芯片单片机编程(时钟DS1302)

    **stc15f2k60s2芯片编程(时钟DS1302)** main.c函数 #include <STC15F2K60S2.H> #include <intrins.h> # ...

  2. 基于stc15f2k60s2芯片单片机编程(数码管)

    **蓝桥杯stc15f2k60s2芯片编程(数码管)** ** ** (1)数码管显示01234567 ** ** #include <stc15f2k60s2.h>unsigned ch ...

  3. 基于stc15f2k60s2芯片单片机编程(串口+超声波)

    通过单片机发送当前超声波测量的距离给串口1显示 (感谢广东某大神的帮助) #include <stc15f2k60s2.h> #include <intrins.h>void ...

  4. 基于stc15f2k60s2芯片单片机编程(秒表)

    用定时器做一个秒表,精确到0.1,S7按下,开始计时,S6按下清零 #include <stc15f2k60s2.h> #include <intrins.h> void Ti ...

  5. 基于stc15f2k60s2芯片单片机编程(EEPROM24C02实验)

    主函数 #include <stc15f2k60s2.h> #include <intrins.h> #include <12.h> void shumaguan( ...

  6. 基于stm32单片机多功能可调时钟闹钟万年历计时器闹铃提醒Proteus仿真(源码+仿真+原理图+PCB)

     资料编号:148 视频讲解: 148-基于stm32单片机多功能可调时钟闹钟万年历计时器闹铃提醒Proteus仿真(源码+仿真+原理图+PCB) 本设计采用stm32单片机作为主控,LCD1602显 ...

  7. 时钟加闹钟c语言程序,求单片机数码时钟带闹铃的C程序?

    数码时钟的程序,应该说很简单,就是通过编程先建立一个时基源,继而获得1秒的时基信号,并累加获得分信号.时信号,至于显示控制,则根据电路原理进行控制即可:当时编写这段程序时,并未加入闹铃功能,原以为闹铃 ...

  8. 51单片机c语言电子钟(已加入调时 '整点报时功能1),51单片机c语言电子钟(已加入调时、闹铃、整点报时功能1)万年历2...

    51单片机c语言电子钟(已加入调时.闹铃.整点报时功能1)万年历2 51单片机c语言电子钟(已加入调时.闹铃.整点报时功能1)万年历1 ·一个固定数组 ·时钟,秒表,日历,闹钟 */ #include ...

  9. 时钟加闹钟c语言程序,51单片机c语言电子钟(已加入调时、闹铃、整点报时功能)...

    <51单片机c语言电子钟(已加入调时.闹铃.整点报时功能)>由会员分享,可在线阅读,更多相关<51单片机c语言电子钟(已加入调时.闹铃.整点报时功能)(13页珍藏版)>请在技术 ...

最新文章

  1. 线程池是怎样工作的?
  2. linux 不同ip 相同mac arp,linux – nmap和arp-scan不一致的IP-MAC结果
  3. python生成树状图_python 生成 树状结构
  4. 机器学习实际应用_机器学习的实际好处是什么?
  5. java 调用jira_java中通过JIRA REST Java Client 使用jira
  6. php整形数组求里面的质数,PHP实现的分解质因数操作示例
  7. 第十六课:libcurl库访问人工智能平台之图像识别
  8. Fgui Glist 实现无限滑动 虚拟列表
  9. java jdom解析html_Javaweb中使用Jdom解析xml的方法
  10. Dll入口函数参数详解...
  11. 台式计算机操作系统的安装方法,台式电脑显卡散热器的更换及安装方法教程[多图]...
  12. CPI通常用于衡量计算机性能,2021考研408计算机组成原理习题:计算机的性能指标...
  13. 社交网络中影响力传播模型
  14. 软件可靠性测试概念与应用
  15. 如何区别聚合支付“一清二清”?
  16. android开发流程
  17. C++ boost库中的sp_counted_base实现解析
  18. 【win】WINDOWS10系统自带桌面整理工具
  19. Rect电影项目 及 豆瓣Api最新接口
  20. 邓凡平:技术探讨之请教方舟编译器的十个问题

热门文章

  1. 百度网站抓取诊断自动提交工具
  2. java堆栈、gc、dump文件在线分析
  3. 代公众号发起网页授权 48001 api unauthorized 问题
  4. 基于Echarts数据可视化地图模块(地图下钻+地图迁徙线)
  5. 树莓派4B安装OpenCV教程
  6. ov5640帧率配置_坚果R2性能测试:四款热门游戏,帧率表现如何?
  7. 囚徒困境困境_设计工具困境
  8. 在线直线度测量方法的研发方向
  9. 2017校招题目 混合颜料
  10. 嵌入和降维投影 数据集--fashion minst