51单片机之闹钟制作
#include<reg51.h>
sbit Key0=P2^0; // 控制开关
sbit Key1=P2^1; // 控制调节的变量
sbit Key2=P2^2; // 增加
sbit Key3=P2^3; // 减少
unsigned char code Dx[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char code Wx[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char playdata[8]={0};
char min=0;
char ms=0;
char h=0;
void main()
{
unsigned int i;
unsigned char xuanzhe=0;
unsigned char j;
EA=1;
TMOD=0x10;
TH1=0xB8;
TL1=0x00;
ET1=1;
TR1=1;
while(1)
{
if(!Key0)
{
for(i=1000;i>0;i--);
if(!Key0)
{
EA=~EA;
while(!Key0);
}
}
if(!Key1)
{
for(i=1000;i>0;i--);
if(!Key1)
{
xuanzhe++;
while(!Key1);
}
if(xuanzhe>3)
xuanzhe=0;
}
if(!Key2)
{
for(i=1000;i>0;i--);
if(!Key2)
{
switch(xuanzhe)
{
case 1:
{
ms++;
if(ms>=60)
{
ms=0;
min++;
if(min>=60)
{
min=0;
h++;
if(h>=24)
h=0;
}
}
break;
}
case 2:
{
min++;
if(min>=60)
{
min=0;h++;
if(h>=24)
h=0;
}
break;
}
case 3:
{
h++;
if(h>=24)
h=0;
break;
}
}
while(!Key2);
}
}
if(!Key3)
{
for(i=1000;i>0;i--);
if(!Key3)
{
switch(xuanzhe)
{
case 1:
{
ms--;
if(ms<=0)
{
ms=59;
min--;
if(min<=0)
{
min=59;
h--;
if(h<=0)
{
h=23;
}
}
}
break;
}
case 2:
{
min--;
if(min<0)
{
h--;
if(h<0)
h=23;
}
break;
}
case 3:
{
h--;
if(h<0)
h=23;
break;
}
}
while(!Key3);
}
}
playdata[0]=Dx[h/10];
playdata[1]=Dx[h%10];
playdata[2]=0x80;
playdata[3]=Dx[min/10];
playdata[4]=Dx[min%10];
playdata[5]=0x80;
playdata[6]=Dx[ms/10];
playdata[7]=Dx[ms%10];
for(i=0;i<8;i++)
{
P0=0x00;
P0=playdata[i];
P1=Wx[i];
j=200;
while(j--);
}
}
}
void Timer1() interrupt 3
{
static unsigned char cnt=0;
TH1=0xB8;
TL1=0x00;
cnt++;
if(cnt>=50)
{
cnt=0;
ms++;
if(ms>=60)
{
ms=0;
min++;
if(min>=60)
{
min=0;
h++;
if(h>=24)
h=0;
}
}
}
}
51单片机之闹钟制作相关推荐
- 如何在51单片机实现闹钟功能
如何在51单片机实现闹钟功能 51单片机制作万年历过程中的闹钟部分,主要说明设计算法,软件特性可以在proteus上仿真.闹钟是人机交互的一部分,因此闹钟的实现与具体的人机交互方式息息相关,本系统采用 ...
- 51单片机流水灯制作
文章目录 51单片机流水灯制作 初试与复试 初试 复试 制作 分工 制作之硬件 制作之软件 总结 51单片机流水灯制作 我不得不承认自己的毅力实在是太差了,原先准备一星期写一篇博客的目标一致没有实现, ...
- 【51单片机】DAC0832制作信号发生器(方波,三角波,锯齿波)
[51单片机]DAC0832制作信号发生器(方波,三角波,锯齿波) 1 A/D与D/A 2 电路与元器件 3 源代码 3.1 程序开始 3.2 监视按钮操作 3.3 按钮控制显示波形 3.4 方波产生 ...
- 基于51单片机的无线遥控器制作
基于51单片机的无线遥控器制作 资源链接:https://download.csdn.net/download/qq_41676952/10965512 目前单片机渗透到我们生活的各个领域,几乎很难找 ...
- 51单片机 74HC154译码器制作流水灯+Proteus仿真
51单片机 74HC154译码器制作流水灯+Proteus仿真 Proteus仿真 实例代码 #include <reg52.h> #define uint unsigned int #d ...
- 51单片机最小系统制作笔记
原文地址:51单片机最小系统制作笔记作者:忘忧角落 上面所示是51系列单片机最小系统全家福照片,组装完成后的照片如下: 本电路各输入.输出脚全部用插针引出,可以连接外围电路进行单片机电路的实验,芯片可 ...
- 51单片机最小系统制作完整流程
目录 一.51单片机最小系统原理图 电源电路 晶振电路 按键复位电路 二.51单片机最小系统制作元器件表 三.51单片机最小系统实物展示 一.51单片机最小系统原理图 51单片机最小系统是51单片机能 ...
- 95、基于51单片机智能闹钟万年历 农历阳历温度电子时钟闹钟定时语音播报系统
毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.pcb图 六.Protues仿真 七.程序 八.资料包括 摘要 本文介绍了基于STC8 ...
- 51单片机基于 Proteus 制作 10 以内加减的计算器
近来,看到好几个要求用 51 单片机和数码管来设计计算器的题目: http://zhidao.baidu.com/question/2075214728949956868.html http://zh ...
最新文章
- 求表达式1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n的值
- 信息系统项目管理师-组织级项目管理与大型项目管理知识点
- 06-Java 本地文件操作
- myeclipse怎么运行c语言,windows下MyEclipse安装配置C/C++开发环境
- php javascript对象,JavaScript 对象
- Java对象类型转换
- List of Javascript Library / Ajax Framework / Web Application Framework
- Laravel 5.8 正式发布(文档翻译已启动)
- 微软 Small Basic
- redhat升级linux内核,用rpm方式升级RHEL6.1内核
- “编程能力差,90% 输在了数学上!”CTO:多数程序员都是瞎努力!
- Cesium:点击实体后在实体上方添加div,并随地球转动不断更新位置
- java wsimport 调用_webService----wsimport调用方式
- 【网络安全必看】如何提升自身WEB渗透能力?
- 解析力 (1 )MTF SFR
- 银行与银行之间的现金是如何流转的:央行支付清算系统
- 深度揭秘Java GC底层,这次让你彻底弄懂她
- how2heap(5):tcache_poisoning 2.31
- 论先后,知为先;论轻重,行为重
- android自定义插值器_自定义缓动插值器,可在Android中实现有意义的动作
热门文章
- 蜂窝状/六边形格子网格的定位/坐标转换
- 清理C盘的几种方法,帮你解决C盘爆红的烦恼
- spring alibaba seata 分布式事务实践
- 判断两个平面向量之间夹角是顺时针还是逆时针
- Linux系统基础操作管理
- PIE-engine 教程 ——使用阈值法加载指定区域的大蒜种植区域并统计其面积
- 【视频学习笔记】计算机视觉与深度学习_北京邮电大学_鲁鹏(⭐⭐⭐⭐⭐)
- 考生合格证书打印的部分代码和生成证书方法
- 3D成像方法 汇总(原理解析)— 双目视觉、激光三角、结构光、ToF、光场、全息...
- TikTok企业号的功能