整个电路由一台单片机和一些外围电路组成。它的计时采用单片机内部的定时器,其晶振频率为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语言时钟程序整点报时,单片机开发的(带整点报时、音乐闹钟)电子时钟(一)...相关推荐

  1. 单片机学c语言还是python好_单片机开发用哪种语言最好?

    在过去的几十年中,单片机的规格变化不大,但是语言和支持软件的扩展为应用程序开发开辟了许多途径.多年来,对单片机进行编程涉及到两种语言的选择:C语言和汇编语言.但是随着现在可用于微处理器的新语言,用户在 ...

  2. 瑞萨单片机c语言程序,瑞萨单片机开发环境系统用户手册.pdf

    RCC10J0005-0100 M16C R8C FOUSB/UART软件 用户手册 瑞萨单片机开发环境系统 Rev.1.00 发行:2006年10月27日 Keep safety first in ...

  3. c51中断优先级c语言,基于proteus的51单片机开发实例(14)中断嵌套和中断优先级...

    1. 基于proteus的51单片机开发实例(14)中断嵌套和中断优先级 1.1. 实验目的 在前面实例中我们已经学习了51单片机的定时器/计数器中断,外部中断,通过这些实例,知道了中断电路的设计,中 ...

  4. html css 圆圈数字,html5 css3带日期的圆形数字电子时钟代码

    特效描述:html5 css3 带日期 圆形数字 电子时钟代码.HTML5+CSS3圆形数字电子时钟. 代码结构 1. 引入JS 2. HTML代码 6 5 4 3 2 1 12 11 10 9 8 ...

  5. 蓝桥杯51单片机之数码管从点亮到动态时钟的实现【单片机开发初学者必掌握】

    文章目录 一.点亮数码管 二.八位数码管同时从0到F 三.显示学号(指定数字) 四.中断机制的引入 五.利用中断实现动态时钟 一.点亮数码管 首先看一下案例源码: #include <reg52 ...

  6. c51单片机时钟程序汇编语言,51单片机汇编语言--延时程序的延时时间

    请高手帮我分析以下延时程序所占的时钟周期. 求解释: DELAY:  MOV  R6, #13 DELAY1: MOV  R5, #250 DELAY2: NOP DJNZ  R5, DELAY2 D ...

  7. C语言频率计程序,我的单片机课程设计频率计,含C语言程序、仿真图和原理图等...

    #include #include #define uint unsigned int #define uchar unsigned char uchar m=0; uchar u; uint i; ...

  8. 51单片机学习2——DS1302制作简易数码管电子时钟

    目录 一.硬件电路 二.DS1302 1.DS1302概述 2.ds1302控制寄存器 3.DS1302时序图 (1)读字节程序: (2)写字节程序 (3)初始化程序 (4)转换时间程序 三.数码管 ...

  9. 51单片机开发入门(3)-IO口应用

    前言 根据前面对51单片机的了解和基础理论知识的掌握,接下来就正式进入单片机开发--实践.引用最近几天追的电视剧<觉醒年代>里新文化领袖陈独秀.李大钊等革命前辈们一直在说的和在践行的马克思 ...

最新文章

  1. 框架、文档、视图类之间的调用关系
  2. could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
  3. PLSQL DEVELOPER 使用技巧
  4. vs2013编译apr时遇到的疑难杂症
  5. webpack-dev-server 和webpack-hot-middleware
  6. cmd命令大全 DOS窗口命令
  7. C#——银行ATM程序DEMO
  8. 这里有 40 本 Python 书等你来领取!(任选)
  9. linux文件描述符有什么用,linux上的文件描述符3有什么特别之处?
  10. ios Class类型使用
  11. 使用UTL_SMTP包发送邮件
  12. 显控触摸屏与STC51单片机modbus通讯程序,包含触摸屏程序与c51代码
  13. 【机器视觉运动控制一体机小课堂】三分钟对图像进行ROI创建
  14. Gazebo + cartographer2D + velodyne多线雷达建图仿真
  15. PPT中图表不同粘贴方式的区别
  16. 【转】区块链是什么,如何简单易懂地介绍区块链?
  17. 拉勾网数据分析师职位分析
  18. 计算机应用基础华工平时作业,计算机应用基础华工平时作业答案
  19. (简单)华为畅享8e DRA-AL00的Usb调试模式在哪里打开的步骤
  20. 杭电Matlab与仿真-MATLAB基本语法(二)-数据文件的读/写操作

热门文章

  1. php合同在线签约功能_在线签合同,如何使用电子印章进行签约?
  2. 干货 | 弱监督学习框架 Snorkel 在大规模文本数据集自动标注任务中的实践
  3. 什么叫做API?看完你就理解了 老夏博客
  4. 【Android View】写一个蛛网评分控件
  5. 00_linux 设备驱动模型 2.6以后通用模型
  6. 车载诊断数据库ODX——Vehicle information
  7. 异常检测之指数平滑(利用elasticsearch来实现)
  8. 测回角值计算用计算机,用测回法观测水平角,若半测回角值计算时右目标读数小于左目标读数,则应()。...
  9. Excel常用函数公式10例
  10. 计算机控制技术课程教学设计(10个)