c语言时钟程序整点报时,单片机开发的(带整点报时、音乐闹钟)电子时钟(一)...
整个电路由一台单片机和一些外围电路组成。它的计时采用单片机内部的定时器,其晶振频率为11.0592MHz。其主要功能都是通过C语言编程来实现的。其显示部分用四位数码管来显示,能同时显示小时和分钟。它主要有以下几个功能:(1)时间显示及调整:在正常状态下显示当前时间,并随时可以通过控制按键进行调整。(2)日期显示及调整:在日期显示状态下可以显示当前日期,进入日期调整状态后还可以调整日期。(3)闹铃功能:在进入闹铃调整状态后可以设定闹铃时间,当时间到达设定好的时间时蜂鸣器就会播放音乐。(5)整点报时功能:当时间到达整点时蜂鸣器会报警,以提示到达整点。(6)断电存储数据的功能:当时钟在运行时,它会实时将当前时间存入一个AT24C02存储器中,在每次启动时它会首先从该存储器中读取数据,这样将保证时钟在断电后数据不会丢失,再次接通电源后将接着上次的时间运
功能说明:
1.功能键说明:
(1) 模式键:按下该键时钟将在正常状态、日期调整状态和闹铃调整状态之间循环切换。如果在日期调整状态或闹铃调整下进行了操作,则按下该键将直接返回正常状态。
(2) 调整选择键:按下该键将在小时调整状态、分钟调整状态、秒钟调整状态之间切换。
(3) 调整+键:在正常状态下按住该键不放将显示当前日期。在任何调整状态下按下该键对应的项目将加1。
(4) 调整-键:在正常状态下按住该键不放将显示当前闹铃。在任何调整状态下按下该键对应的项目将减1。
2:日期功能:
在正常状态下按住调整+键不放将进入日期显示状态,此时六位LED数码管上显示当前日期。在正常状态下按一下模式键将进入日期调整状态,此时日期状态指示灯亮起。按下调整+键或调整-键可以调整日期。按一下调整选择键将切换到月份调整状态,同时小时调整指示灯亮起,按下调整+键或调整-键可以调整月份。调整完后按一下模式键可以直接返回到正常状态。
4:闹铃功能:
在正常状态下按住调整-键不放将进入闹铃显示状态,此时六位LED数码管上显示当前闹铃时间。在正常状态下按二下模式键将进入闹铃调整状态,此时闹铃状态指示灯亮起。按下调整+键或调整-键可以调整当前闹铃分钟。按一下调整选择键将切换到闹铃小时调整状态,同时小时调整指示灯亮起,按下调整+键或调整-键可以调整闹铃小时。调整完后按一下模式键可以直接返回到正常状态。当时间到达闹铃时间时,蜂鸣器会播放音乐,按一下调整-键将停止响铃。
5:整点报时功能:
当时间到达整点时蜂鸣器会报警,以提示到达整点。
6:存储数据的功能:
当时钟在运行时,它会实时将当前时间存入一个AT24C02存储器中,在每次启动时它会首先从该存储器中读取数据,这样将保证时钟在断电后数据不会丢失,再次接通电源后将接着上次的时间运行。
以下是C语言程序代码:
#include
#include
#define uchar unsigned char
#define FREQ
11059200
sbit SDA = P2^0;//SDA数据总线
sbit SCL = P2^1;//SCL时钟总线
sbit dula = P2^6;//段选
sbit wela = P2^7;//位选
sbit beep = P2^3;//蜂蜜器
sbit s2 = P3^4;//独立按键1
sbit s3 = P3^5;//独立按键2
sbit s4 = P3^6;//独立按键3
sbit s5 = P3^7;//独立按键4
sbit led1 = P1^0;//秒钟指示灯
sbit led2 = P1^1;//小时调整指示灯
sbit led3 = P1^2;//分钟状态指示灯
sbit led4 = P1^3;//秒钟调整指示灯
sbit led6 = P1^5;//日期状态指示灯
sbit led7 = P1^6;//闹钟状态指示灯
//共阴极段码表
uchar code table[] = {
0x3f, 0x06, 0x5b, 0x4f,
0x66, 0x6d, 0x7d, 0x07,
0x7f, 0x6f, 0x77, 0x7c,
0x39, 0x5e, 0x79, 0x71};
uchar count, sec, cent, hour, flag, mode,
adjust, sec_flag;
uchar day, month, year, date_display,
ZD_time;
uchar bell_sec, bell_cent, bell_hour,
bell_display;
uchar temp_TH1;
uchar temp_TL1;
uchar code music_tab[]=
{
//两只老虎,高4位为音乐节拍,低4位为音符
0x31,0x32,0x33,0x31,0x31,0x32,0x33,0x31,0x33,0x34,0x45,0x33,0x34,0x45,
0x25,0x16,0x25,0x14,0x33,0x31,0x25,0x16,0x25,0x14,0x33,0x31,
0x31,0x35,0x41,0x31,0x35,0x41,0
};
uchar code
music_l_tab[8]={0,1,2,3,4,6,8,16};//节拍延时单位
uchar code
music_freq_tab[16]=
{
0xff,0xea, //0 休止符
255-FREQ/24/1049/256, //1 do 高字节
//255-FREQ/24/x/256
255-FREQ/24/1049%6, //1 do 低字节
//256-FREQ/24/x%6
255-FREQ/24/1178/256,256-FREQ/24/1178%6, //2
re
255-FREQ/24/1322/256,256-FREQ/24/1322%6, //3
mi
255-FREQ/24/1400/256,256-FREQ/24/1400%6, //4
fa
255-FREQ/24/1572/256,256-FREQ/24/1572%6, //5
suo
255-FREQ/24/1665/256,256-FREQ/24/1665%6, //6
la
255-FREQ/24/1869/256,256-FREQ/24/1869%6, //7 xi
};
void delayus()
{
;
;
}
void delayms(uchar times)
{
uchar x, y;
for(x=times; x>0;
x--)
for(y=110; y>0;
y--);
}
void music_delay(unsigned char
n)
{
unsigned char i=125,j;
do
{
do
{
for (j=0;
j<230; j++)
_nop_();
}while(--i);
}while(--n);
}
未完待续
c语言时钟程序整点报时,单片机开发的(带整点报时、音乐闹钟)电子时钟(一)...相关推荐
- 单片机学c语言还是python好_单片机开发用哪种语言最好?
在过去的几十年中,单片机的规格变化不大,但是语言和支持软件的扩展为应用程序开发开辟了许多途径.多年来,对单片机进行编程涉及到两种语言的选择:C语言和汇编语言.但是随着现在可用于微处理器的新语言,用户在 ...
- 瑞萨单片机c语言程序,瑞萨单片机开发环境系统用户手册.pdf
RCC10J0005-0100 M16C R8C FOUSB/UART软件 用户手册 瑞萨单片机开发环境系统 Rev.1.00 发行:2006年10月27日 Keep safety first in ...
- c51中断优先级c语言,基于proteus的51单片机开发实例(14)中断嵌套和中断优先级...
1. 基于proteus的51单片机开发实例(14)中断嵌套和中断优先级 1.1. 实验目的 在前面实例中我们已经学习了51单片机的定时器/计数器中断,外部中断,通过这些实例,知道了中断电路的设计,中 ...
- html css 圆圈数字,html5 css3带日期的圆形数字电子时钟代码
特效描述:html5 css3 带日期 圆形数字 电子时钟代码.HTML5+CSS3圆形数字电子时钟. 代码结构 1. 引入JS 2. HTML代码 6 5 4 3 2 1 12 11 10 9 8 ...
- 蓝桥杯51单片机之数码管从点亮到动态时钟的实现【单片机开发初学者必掌握】
文章目录 一.点亮数码管 二.八位数码管同时从0到F 三.显示学号(指定数字) 四.中断机制的引入 五.利用中断实现动态时钟 一.点亮数码管 首先看一下案例源码: #include <reg52 ...
- c51单片机时钟程序汇编语言,51单片机汇编语言--延时程序的延时时间
请高手帮我分析以下延时程序所占的时钟周期. 求解释: DELAY: MOV R6, #13 DELAY1: MOV R5, #250 DELAY2: NOP DJNZ R5, DELAY2 D ...
- C语言频率计程序,我的单片机课程设计频率计,含C语言程序、仿真图和原理图等...
#include #include #define uint unsigned int #define uchar unsigned char uchar m=0; uchar u; uint i; ...
- 51单片机学习2——DS1302制作简易数码管电子时钟
目录 一.硬件电路 二.DS1302 1.DS1302概述 2.ds1302控制寄存器 3.DS1302时序图 (1)读字节程序: (2)写字节程序 (3)初始化程序 (4)转换时间程序 三.数码管 ...
- 51单片机开发入门(3)-IO口应用
前言 根据前面对51单片机的了解和基础理论知识的掌握,接下来就正式进入单片机开发--实践.引用最近几天追的电视剧<觉醒年代>里新文化领袖陈独秀.李大钊等革命前辈们一直在说的和在践行的马克思 ...
最新文章
- 框架、文档、视图类之间的调用关系
- could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
- PLSQL DEVELOPER 使用技巧
- vs2013编译apr时遇到的疑难杂症
- webpack-dev-server 和webpack-hot-middleware
- cmd命令大全 DOS窗口命令
- C#——银行ATM程序DEMO
- 这里有 40 本 Python 书等你来领取!(任选)
- linux文件描述符有什么用,linux上的文件描述符3有什么特别之处?
- ios Class类型使用
- 使用UTL_SMTP包发送邮件
- 显控触摸屏与STC51单片机modbus通讯程序,包含触摸屏程序与c51代码
- 【机器视觉运动控制一体机小课堂】三分钟对图像进行ROI创建
- Gazebo + cartographer2D + velodyne多线雷达建图仿真
- PPT中图表不同粘贴方式的区别
- 【转】区块链是什么,如何简单易懂地介绍区块链?
- 拉勾网数据分析师职位分析
- 计算机应用基础华工平时作业,计算机应用基础华工平时作业答案
- (简单)华为畅享8e DRA-AL00的Usb调试模式在哪里打开的步骤
- 杭电Matlab与仿真-MATLAB基本语法(二)-数据文件的读/写操作
热门文章
- php合同在线签约功能_在线签合同,如何使用电子印章进行签约?
- 干货 | 弱监督学习框架 Snorkel 在大规模文本数据集自动标注任务中的实践
- 什么叫做API?看完你就理解了 老夏博客
- 【Android View】写一个蛛网评分控件
- 00_linux 设备驱动模型 2.6以后通用模型
- 车载诊断数据库ODX——Vehicle information
- 异常检测之指数平滑(利用elasticsearch来实现)
- 测回角值计算用计算机,用测回法观测水平角,若半测回角值计算时右目标读数小于左目标读数,则应()。...
- Excel常用函数公式10例
- 计算机控制技术课程教学设计(10个)