音乐报时电子时钟.docx
- 文档编号:29979989
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:33
- 大小:423.28KB
音乐报时电子时钟.docx
《音乐报时电子时钟.docx》由会员分享,可在线阅读,更多相关《音乐报时电子时钟.docx(33页珍藏版)》请在冰豆网上搜索。
音乐报时电子时钟
前言
本文的电子钟系统是以单片机(AT89C52)为核心,时钟芯片DS1302、数码管显示驱动芯片MAX7219等元器件组成。
具体介绍应用Proteus的ISIS软件进行单片机系统的电子钟设计与仿真的实现方法。
该方法既能准确验证所设计的系统是否满足技术要求,又能提高系统设计的效率和质量,降低开发成本,具有推广价值。
随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。
单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。
时钟自从被发明出来以后,就被人们信任及使用,成为人们生活中不可缺少的部分。
时钟也在不断的完善提高,越来越精准越来越多样化。
随着社会的发展,科学技术的创新,时钟也在一代又一代的改进。
各种各样的时钟出现在我们的社会中。
因为石英技术有精度高,稳定性好,使用方便等特点,所以大多都使用了石英晶体振荡器。
音乐报时时钟在我们的生活中越来越重要,是我们生活正常工作的基础。
时钟电路在计算机系统中也起到非常重要的作用。
时钟电路是保证计算机系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:
一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:
DS1302,DS12887,X1203等都可以满足高精度的要求。
1.总体设计方案
1.1电路原理框图
1.1.1电子时钟电路组成框图
利用单片机AT89C52作为本系统的中控模块。
单片机可把时钟芯片DS1302、数码管显示驱动芯片MAX7219读出来的数据利用软件来进行处理,从而把数据传输到显示模块,把单片机传来的数据显示出来,并且可以实现音乐报时的功能。
设计总体框图如图1所示:
图1总体框图
1.1.2各部分的作用及要求
键盘电路:
按键电路键盘是人与单片机打交道的主要设备,按键的读取容易引起误动作。
可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,这个电路的工作原理是采用程序扫描的方式检测某个按键状态在这里采用软件延时的方法来避开抖动,延时时间为10ms。
复位电路:
使单片机程序计数器清零。
蜂鸣器:
发声。
时钟电路:
为单片机提供时钟。
显示电路:
显示时间。
单片机:
控制整个电路。
1.2电子时钟的电路原理图
该系统的语音模块电路原理图是语音采用简单的单片录放音电路,录放周期8分钟。
其音频信号输送到单片机电路的音频信号输入口径放大耦合到扬声器。
电路原理图如图2所示:
图2电路原理图
数字时钟一般由走时、显示和调整时间3项基本功能组成,这些功能在单片机时钟里主要由软件设计体现出来,其中,走时部分利用单片机的定时器/计数器产生的中断。
本设计设置定时器T0工作在模式1状态下,设置每隔50ms中断一次,中断20次正好是1s。
中断服务程序里记载这中断的次数,中断20次为1s,60s为1分,60分为1小时,24小时为1天。
用单片机定时器T1按时输出高低电平,因为单片机演奏一个音符,是通过引脚周期性的输出一个特定频率的方波。
这就需要单片机在半个周期内输出低电平、另外半个周期输出高电平,周而复始。
周期是频率的倒数,可以通过音符的频率计算出周期,演奏时,要根据音符的不同,把对应的半个周期的定时时间初始值,送入定时器T1,再由定时器按时输出高低电平。
另外,音乐的节拍是由延时实现的。
在用单片机音乐演奏程序中,包括了两个数据表,其中存放了事先算好的各种音符频率所对应的半周期的定时时间初始值。
有了这些数据,单片机就可以演奏低音、中音、高音,三个八度共21个音符。
演奏乐曲时,就根据音符的不同数值,从表中找到定时时间初始值,送入定时器即可控制音调。
通过调用延迟来实现节拍数。
时钟的显示是使用2个四位一体LED数码管来显示时、分、秒,其软件设计原理是:
由中断产生的秒、分、小时数据,经过转换子程序转换成适应LED数码管显示的数据,并通过单片机的输出功能输入到数码管显示器,在通过显示器扫描程序,显示出时钟的走时时间。
调整时钟时间是利用了单片机的输入功能,把按键开关作为单片机的输入信号,通过检测被按下的按键,从而执行赋予该开关调整时间功能。
单片机的最小系统电路包括时钟电路和复位电路,所设计系统中,时钟电路采用内部振荡方式,所得的时钟信号比较稳定,复位电路作用是使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。
复位电路采用2种基本形式:
上电复位、开关复位。
2.单元模块设计
2.1MCS51单片机控制电路
本数字电子钟设计采用STC89C52单片机芯片作为中央控制器,实现信号的输出、LED的显示及相关的控制功能。
如图3所示:
图3单片机最小系统
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,2个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
引脚结构:
VCC:
电源;GND:
地。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口时,每1位最多可以驱动8个TTL的输入端口。
当向P0端口的每1位写“1”时,则P0口可作为输入端口。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,作为输出口时,每1位最多可以驱动4个TTL的输入端口。
当向P1端口的每1位写“1”时,P1口的8个位电平被内部上拉电阻拉高,此时可以作为输入口使用。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,作为输出口时,每1位最多可以驱动4个TTL的输入端口。
当向P2端口的每1位写“1”时,P1口的8个位电平被内部上拉电阻拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。
在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号整时钟时间是利用了单片机的输入功能,把按键开关作为单片机的输入信号,通过检测被按下的按键,从而执行赋予该开关调整时间功能。
表1P3口的所有功能脚
引脚号
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器写选通)
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,作为输出口时,每1位最多可以驱动4个TTL的输入端口。
当向P2端口的每1位写“1”时,P1口的8个位电平被内部上拉电阻拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为STC89C52特殊功能(第二功能)使用,如表1所示。
在flash编程和校验时,P3口也接收一些控制信号。
如表1所示。
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当STC89C52
从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
2.2电源电路
系统的芯片需要+5V的工作电压,所需输出的电流比较大,而电脑USB可以提供额定功率为5V/500mA的稳定电源供USB设备使用。
采用普通的USB线连接微型计算机作为系统电源,虽然功率上稍大于系统需要,但不需要更换电源,并且比直流稳压电源更轻便,可随时使用、调试系统。
电源电路如图4所示:
图4电源电路
2.3按键电路
键盘是人与单片机打交道的主要设备,按键的读取容易引起误动作。
单片机组成的小系统中,有的需要人机交互功能,按键是最常见的输入方式。
最常见的按键电路大致有,一对一的直接连接和动态扫描的矩阵式连接两种。
一对一的直接连接就是一个按键直接对应一个CPU的输入口左右两个电路作用一样,区别是左边CPU的输入端常态为高电位,按下按键时为低电位;右边的常态为低电位,按下按键是高电位。
这样的电路简单直接,一个按键独占一个端口,在按键数量较少端口数量富裕时可以直接使用。
但很多场合需要的按键数比较多,要尽量少地占用端口就必须使用矩阵式的按键链接可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间为10ms。
当按下复位按键时,RST端产生高电平,使单片机复位。
复位后,其片内各寄存器状态改变,片内RAM内容不变。
由于单片机内部的各个功能部件均受特殊功能寄存器控制,程序运行直接受程序计数器PC指挥。
各寄存器复位时的状态决定了单片机内有关功能部件的初始状态。
图5按键电路
本设计采用独立式键盘,独立式按键是直接用I/O口线构成的单个按键电路,如图5所示,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。
但当所需按键数量多,会占用过多的I/O口线。
键盘接到单片机的P1口上,当键按下时,在其相应的口线上产生低电平信号,键松开时仍为高电平信号。
如图5所示。
2.4时钟电路
时钟的显示是使用2个四位一体LED数码管来显示时、分、秒,其软件设计原理是:
由中断产生的秒、分、小时数据,经过转换子程序转换成适应LED数码管显示的数据,并通过单片机的输出功能输入到数码管显示器,在通过显示器扫描程序,显示出时钟的走时时间。
STC系列单片机的时钟具有丰富的时钟源,内部从0M到80M的时钟源,可以通过编程熔丝位来选择,外接晶振电路如图6所示,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
本设计采用的是内部振荡方式,为了获得精确的计时,晶体振荡器选用11.0592MHz的型号,两个30pf的C1,C2电容起到辅助振荡作用。
时钟电路一般由晶体震荡器、晶震控制芯片和电容组成,采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
采用普通32.768kHz晶振。
本设计中定时方式为工作方式1,即最小定时时间为1us,最大定时时间约为65.5ms。
如图6所示:
图6单片机时钟电路
2.5复位电路
复位是单片机的硬件初始化操作。
经复位操作后,单片机系统才能开始正常工作。
当STC系列单片机的复位引脚RST(全称RESET)出现大于最小脉冲的低电平时,单片机就执行复位操作。
如果RST持续为低电平,单片机就处于循环复位状态。
在电路中,使用电阻给电容充电,使电容的电压缓慢上升一直到VCC,在还没有到VCC时,芯片复位脚近似低电平,但是芯片复位,接近VCC时,芯片复位脚近高电平,导致芯片停止复位,此时复位完成,整个电路循环运行.这个电路就叫做复位电路。
它主要为了能保证微型机系统得到稳定可靠的工作。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和开关复位。
上电复位要求接通电源后,自动实现复位操作。
复位电路如图7所示。
电阻R1、R2和C1构成复位电路,按下复位键可实现手动复位。
单片机的复位操作使单片机进入初始化状态,
其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。
单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,32个通用寄存器复位后的状态为确定值。
如图7所示:
图7复位电路
2.6数码管显示电路
数码管显示电路是本设计最核心的部分。
四位一体数码管的内部结构,四位一体数码管用于动态扫描,即把数码管显示数据的段控码分时送到其对应的段控端。
当一个段控码被送到段控端时,显示此段控码数据的数码管,它的位控端置有效电平,数码管点亮;而其他数码管的位控端送无效电平,数码管不亮。
持续点亮一段时间,再送其它的段控码,依次把显示段控码的数码管,使其位控端为有效电平,其他数码管的位控端为无效电平,就这样数码管依次被点亮。
利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素.通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时,显示亮度较好,无闪烁感。
四位一体数码管共十二个引脚,从数码管的正面看,它以第一脚为起点,逆时针排列的。
断电存储数据的功能:
当时钟在运行时,它会实时将当前时间存入一个AT24C02存储器中,在每次启动时它会首先从该存储器中读取数据,晶采用显示容量为2行16个字的1602液晶,1602采用标准的16脚接口,内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,每一个字符都有一个固定的这样将保证时钟在断电后数据不会丢失。
再接通电源时,数据就不会丢失。
显示电路由两个5461BS四位一体共阳数码管和S9012PNP三极管组成。
如图8所示:
图8数码管显示电路
2.7蜂鸣器电路
采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出低电平,蜂鸣器响铃。
采用蜂鸣器闹铃结构简单,只需要单路信号控制,发出的闹铃声音可以根据响和不响的不同的软件延时时间来控制,当然也能发出音乐声音。
蜂鸣器电路由一个1k限流电阻、一个PNP三极管S9012组成。
STC89C52单片机内有2个16位定时器/计数器T0、T1,它们的工作方式、定时时间、启动方式等均可以通过程序来设置和改变。
当定时器/计数器设置为定时工作方式时,计数器对内部机器周期计数,计数脉冲输入信号由内部时钟提供,每过一个机器周期,计数器增1,直至计满溢出。
定时器的定时时间与系统的振荡频率紧密相关,单片机的一个机器周期由12个振荡脉冲组成,因此,计数器的计数频率为振荡器频率的1/12。
其定时时间由计数初值和所选择的计数器的长度来确定由89C52的P3.7口控制蜂鸣器电路,定时时间到,P3.7输出一定频率脉冲时,蜂鸣器将发出响声;一分钟后停止。
电路如图9所示:
图9蜂鸣器电路
3.软件设计
3.1主程序流程框图
在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。
因此,软件设计在微机控制系统设计中占重要地位。
对于本系统,软件更为重要。
在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。
数据处理包括:
数据的采集、BCD转换等。
过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。
单片机的软件软件设计通常要考虑以下几点:
(1)根据软件功能要求,将软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁、流程合理;
(2)培养良好的编程风格,考虑结构化程序设计、实行模块化、子程序化。
这样不仅便于调试、链接,又易于移植和修改;
(3)建立正确的数学模型,并通过仿真提高性能,以选取合适的参数;
(4)绘制程序流程图;
(5)为程序加入注视,提高可读性;
(6)注意软件的抗干扰设计,提高体统可靠性。
本系统软件采用模块化结构,由主程序﹑显示子程序、延时子程序﹑按键扫描子程序﹑按键处理子程序、定时器T0中断服务程序构成进入正常走时。
主程序流程框图如图10所示:
图10主程序流程框图
3.2中断服务程序流程框图
中断服务程序流程图如图11所示:
图11中断服务程序流程图
3.3显示子程序流程图
显示子程序流程图如下图图12所示:
图12显示子程序流程图
3.4按键扫描子程序流程图
按键扫描子程序流程图如图13所示:
图13键扫子程序流程图
3.5按键处理子程序流程图
按键处理程序流程图如图14所示:
图14按键处理程序流程图
4.系统功能
(1)用四个电位按键来实现对电子时钟的调试工作,当按第一下总控键时进入调时状态,时位闪烁,可以用加一键和减一键对时进行调整,在调整时秒正常运行;当按第二下总控键时时钟进入调分设置,分位闪烁,可以用加一键和减一键对分进行调整,另外有一个时钟控键来实现闹钟是否开启;当按第三下总控键时时钟进入秒设置,秒位闪烁,以用加一键和减一键对秒进行调整;当按第四下总控键时,时钟进入闹钟调整模式,闹钟时位闪烁,可对其进行加减;当按第五下总控键时,闹钟分位闪烁,可对其进
行加减;当按第六下总控键时,时钟退出调整模式,进入正常走时。
(2)用两个四位数码管来实现设计的显示部分,其演示模式是:
时时-分分-秒秒。
该数码管组合的功能管脚是八个位选择连接芯片的P2引脚,八个显示管位并联再接入到芯片P0引脚。
从而在功能上区分开,实现数码管的显示功能。
(3)用一个LED灯和电阻组成的简易电路结合设计来实现闹钟状态的指示功能,闹钟开时,LED灯亮,而闹钟关时,LED灯灭。
(4)用一个蜂鸣器和三极管等配件组成一个闹钟电路,再与芯片的P3.7引脚连接。
当时钟到设定的报时点时便会发出音乐来实现闹钟功能。
(5)用一个按键和其他部件组成的复位电路与芯片连接来实现整个程序及硬件的重新复位功能。
5.设计总结
程设计是培养学生综合运用所学知识发现提出分析和解决实际问题锻炼实践能力的重要环节是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异。
经过两个星期的课程设计,让我真正的懂得了要设计一个成功的电路,必须要有专业知识的了解,同时要有坚持不懈的努力。
在遇到问题时要学会思考和寻求解决的办法,我们设计的产品除了在老师的要求上完成,我们还特别加了一些东西,这些功能是我们对实际生活观察得出的。
通过这次课程设计,加强了我动手、思考和解决问题的能力.现在设计已经做好了,但是控制器控制信号灯不是很好。
虽然花了很多的时间,但学到了很多东西。
做课程设计的时候,自己把整个书本都看了几遍,增强了自己对知识的理解,很多以前不是很懂的问题现在都已经一一解决了。
在课程设计的过程中,我想了很多种方案,对同一个问题(像计数器的接法)都想了很多种不同的接法,运用不同的芯片进行了比较,最后还是采取了上面的方法进行连接,通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大二那年的学习成果。
6.参考文献
[1]孙慧琴.单片机项目设计教程[M].北京:
电子工业出版社,2009.6.23-143
[2]李萍.AT89S51单片机原理开发与应用[M].上海:
中国电力出版社,2008.7.34-67
[3]江志红.51单片机技术与应用系统开发案例精选[M].北京:
清华大学出版社,2008.12.123-156
[4]曾峰.印刷电路板(PCB)设计与制作[M].北京:
电子工业出版社,2005.8.234-256
[5]姜尚坤.单片机综合应用[M].上海:
上海科技出版社,2007.7.123-153
[6]崔华.单片机实用技术[M].北京:
清华大学出版社,2006.7.112-142
[7]高吉祥.全国大学生电子设计竞赛培训系列教程[M].北京:
电子工业出版社,2007.5.252-287
附录
附录1所需元件列表
表2所需元件列表
名称
型号
数量
备注
单片机
STC89S52
1块
含插座,双列直插式
三极管
S9012
9个
电阻
470Ω
8个
电阻
1k
4个
电阻
10k
1个
上拉排阻
10K
1片
数码管
5461BS
2块
含两个插座
电容
30pF
2个
电解电容
22μF
1个
发光二极管
2个
带锁按钮
1个
蜂鸣器
1个
插针
38个
晶振
12MHz
1个
不带锁按钮
5个
电解电容
10uF
1个
附录2PCB图
图15pcb图
附录3程序清单
/**************************************************************************
课程设计题目:
基于单片机的音乐报时电子时钟设计
设计日期:
2012.12
**************************************************************************/
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodesegcode[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0xbf,0xff};//0,1,2,3,4,5,6,7,8,9,-,熄灭
ucharcodedispbit[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐 报时 电子 时钟
![提示](https://static.bdocx.com/images/bang_tan.gif)