ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:971.50KB ,
资源ID:8097706      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8097706.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(音乐报时电子时钟.doc)为本站会员(hwpkd79526)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

音乐报时电子时钟.doc

1、四川师范大学成都学院电子工程系课程设计报告前言本文的电子钟系统是以单片机(AT89C52)为核心,时钟芯片 DS1302、数码管显示驱动芯片 MAX7219等元器件组成。具体介绍应用 Proteus的 ISIS软件进行单片机系统的电子钟设计与仿真的实现方法。该方法既能准确验证所设计的系统是否满足技术要求,又能提高系统设计的效率和质量,降低开发成本,具有推广价值。随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从 4位、8 位、16 位到 32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方

2、案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。时钟自从被发明出来以后,就被人们信任及使用,成为人们生活中不可缺少的部分。时钟也在不断的完善提高,越来越精准越来越多样化。随着社会的发展,科学技术的创新,时钟也在一代又一代的改进。各种各样的时钟出现在我们的社会中。因为石英技术有精度高,稳定性好,使用方便等特点,所以大多都使用了石英晶体振荡器。音乐报时时钟在我们的生活中越来越重要,是我们生活正常工作的基础。时钟电路在计算机系统中也起到非常重要的作用。时钟电路是保证计算机系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一

3、是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203 等都可以满足高精度的要求。四川师范大学成都学院电子工程系课程设计报告21.总体设计方案1.1电路原理框图1.1.1 电子时钟电路组成框图利用单片机 AT89C52作为本系统的中控模块。单片机可

4、把时钟芯片 DS1302、数码管显示驱动芯片 MAX7219读出来的数据利用软件来进行处理,从而把数据传输到显示模块,把单片机传来的数据显示出来,并且可以实现音乐报时的功能。设计总体框图如图 1所示:复位电路时钟电路STC89C52控制电路显示电路蜂鸣器电路键盘电路图 1 总体框图1.1.2 各部分的作用及要求键盘电路:按键电路键盘是人与单片机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,这个电路的工作原理是采用程序扫描的方式检测某个按键状态在这里

5、采用软件延时的方法来避开抖动,延时时间为10ms 。复位电路:使单片机程序计数器清零。蜂鸣器:发声。时钟电路:为单片机提供时钟。显示电路:显示时间。单片机:控制整个电路。1.2 电子时钟的电路原理图四川师范大学成都学院电子工程系课程设计报告3该系统的语音模块电路原理图是语音采用简单的单片录放音电路,录放周期 8分钟。其音频信号输送到单片机电路的音频信号输入口径放大耦合到扬声器。电路原理图如图 2所示:图 2 电路原理图数字时钟一般由走时、显示和调整时间 3项基本功能组成,这些功能在单片机时钟里主要由软件设计体现出来,其中,走时部分利用单片机的定时器/计数器产生的中断。本设计设置定时器 T0工作

6、在模式 1状态下,设置每隔 50ms中断一次,中断 20次正好是 1s。中断服务程序里记载这中断的次数,中断 20次为 1s,60s 为 1分,60 分为 1小时,24 小时为 1天。用单片机定时器 T1按时输出高低电平,因为单片机演奏一个音符,是通过引脚周期性的输出一个特定频率的方波。这就需要单片机在半个周期内输出低电平、另外半个周期输出高电平,周而复始。周期是频率的倒数,可以通过音符的频率计算出周期,演奏时,要根据音符的不同,把对应的半个周期的定时时间初始值,送入定时器 T1,再由定时器按时输出高低电平。另外,音乐的节拍是由延时实现的。在用单片机音乐演奏程序中,包括了两个数据表,其中存放了

7、事先算好的各种音符频率所对应的半周期的定时时间初始值。有了这些数据,单片机就可以演奏低音、中音、高音,三个八度共 21个音符。演奏乐曲时,就根据音符的不同数值,从表中找到定时时间初始值,送入定时器即可控制音调。通过调用延迟来实现节拍数。时钟的显示是使用 2个四位一体 LED数码管来显示时、分、秒,其软件设计原理四川师范大学成都学院电子工程系课程设计报告4是:由中断产生的秒、分、小时数据,经过转换子程序转换成适应 LED数码管显示的数据,并通过单片机的输出功能输入到数码管显示器,在通过显示器扫描程序,显示出时钟的走时时间。调整时钟时间是利用了单片机的输入功能,把按键开关作为单片机的输入信号,通过

8、检测被按下的按键,从而执行赋予该开关调整时间功能。单片机的最小系统电路包括时钟电路和复位电路,所设计系统中,时钟电路采用内 部振荡方式,所得的时钟信号比较稳定,复位电路作用是使单片机 的片内电路初始化,使单片机从一种确定的状态开始运行。复位电路采用 2种基本形式:上 电复位、开关复位。2单元模块设计2.1 MCS51单片机控制电路本数字电子钟设计采用STC89C52单片机芯片作为中央控制器,实现信号的输出、LED的显示及相关的控制功能。如图3所示:图3 单片机最小系统STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针, 2

9、个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作四川师范大学成都学院电子工程系课程设计报告5停止,直到下一个中断或硬件复位为止。引脚结构:VCC:电源;GND:地。P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口时,每1位最多可以驱动8个TTL的输入端口。当向P0端口的每1位写“1”时,则P0口可作为输入端口。当访问外部程序和数据存

10、储器时,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个位电平被内部上拉电阻拉高

11、,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用 16位地址读取外部数据存储器时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送 1。在使用 8位地址访问外部数据存储器时,P2 口输出 P2锁存器的内容。在 Flash编程和校验时,P2 口也接收高 8位地址字节和一些控制信号整时钟时间是利用了单片机的输入功能,把按键开关作为单片机的输入信号,通过检测被按下的按键,从而执行赋予该开关调整时间功能。表1 P3口的所有功能脚引脚号 第二功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2

12、 INT0( 外部中断 0)P3.3 INT1( 外部中断 1)P3.4 T0(定时器 0 外部输入)P3.5 T1(定时器 1 外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD( 外部数据存储器写选通)四川师范大学成都学院电子工程系课程设计报告6P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,作为输出口时,每1位最多可以驱动4个TTL的输入端口。当向P2端口的每1位写“1”时,P1口的8个位电平被内部上拉电阻拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为STC89C52特殊功能(第二功能)使用

13、,如表1所示。在flash编程和校验时,P3口也接收一些控制信号。如表1所示。RST: 复位输入。晶振工作时,RST 脚持续 2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址8EH)上的 DISRTO 位可以使此功能无效。DISRTO 默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在Flash编程时,此引脚(PROG )也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在

14、每次访问外部数据存储器时,ALE脉冲将会跳过如果需要,通过将地址为8EH的SFR的第0 位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个 ALE 使能标志位(地址为8EH 的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号( PSEN)是外部程序存储器选通信号。当 STC89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN 将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程

15、序存储器读取指令,EA必须接GND。为了执行内部程序指令, EA应该接VCC。在flash编程期间,EA 也接收12伏VPP 电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.2 电源电路系统的芯片需要+5V 的工作电压,所需输出的电流比较大,而电脑 USB可以提供额定功率为 5V/500mA的稳定电源供 USB设备使用。采用普通的 USB线连接微型计算机作为系统电源,虽然功率上稍大于系统需要,但不需要更换电源,并且比直流稳压电源更轻便,可随时使用、调试系统。电源电路如图 4所示:四川师范大学成都学院电子工程系课程设计报告7图 4 电源电路

16、2.3 按键电路键盘是人与单片机打交道的主要设备,按键的读取容易引起误动作。单片机组成的小系统中,有的需要人机交互功能,按键是最常见的输入方式。最常见的按键电路大致有,一对一的直接连接和动态扫描的矩阵式连接两种。一对一的直接连接就是一个按键直接对应一个 CPU的输入口左右两个电路作用一样,区别是左边 CPU的输入端常态为高电位,按下按键时为低电位;右边的常态为低电位,按下按键是高电位。这样的电路简单直接,一个按键独占一个端口,在按键数量较少端口数量富裕时可以直接使用。但很多场合需要的按键数比较多,要尽量少地占用端口就必须使用矩阵式的按键链接可采用软件去抖动的方法处理,软件的触点在闭合和断开的时

17、候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间为10ms 。当按下复位按键时,RST 端产生高电平,使单片机复位。复位后,其片内各寄存器状态改变,片内 RAM内容不变。由于单片机内部的各个功能部件均受特殊功能寄存器控制,程序运行直接受程序计数器 PC指挥。各寄存器复位时的状态决定了单片机内有关功能部件的初始状态。图 5 按键电路本设计采用独立式键盘,独立式按键是直接用I/O口线构成的单个按键电路,如图5所示,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。但当所需按

18、键数量多,会占用过多的I/O口线。四川师范大学成都学院电子工程系课程设计报告8键盘接到单片机的 P1口上,当键按下时,在其相应的口线上产生低电平信号,键松开时仍为高电平信号。如图 5所示。2.4 时钟电路时钟的显示是使用 2个四位一体 LED数码管来显示时、分、秒,其软件设计原理是:由中断产生的秒、分、小时数据,经过转换子程序转换成适应 LED数码管显示的数据,并通过单片机的输出功能输入到数码管显示器,在通过显示器扫描程序,显示出时钟的走时时间。STC系列单片机的时钟具有丰富的时钟源,内部从 0M到 80M的时钟源,可以通过编程熔丝位来选择,外接晶振电路如图 6所示,由于单片机内部有一个高增益

19、反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。本设计采用的是内部振荡方式,为了获得精确的计时,晶体振荡器选用 11.0592MHz的型号,两个 30pf的 C1,C2 电容起到辅助振荡作用。时钟电路一般由晶体震荡器、晶震控制芯片和电容组成,采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通 32.768kHz晶振。 本设计中定时方式为工作方式 1,即最小定时时间为 1us,最大定时时间约为 65.5ms。如图 6所示:图 6 单片机时钟电路2.5 复位电路复位是单片机的硬件初始化操作。经复位操作后,单片机系统才能开始正常工作。当 STC系列

20、单片机的复位引脚 RST(全称 RESET)出现大于最小脉冲的低电平时,单片机就执行复位操作。如果 RST持续为低电平,单片机就处于循环复位状态。在电路中,使用电阻给电容充电,使电容的电压缓慢上升一直到 VCC,在还没有到 VCC时,芯片复位脚近似低电平,但是芯片复位,接近 VCC时,芯片复位脚近高电平,导致芯片停止复位,此时复位完成,整个电路循环运行.这个电路就叫做复位电路。它主要为了能保证微型机系统得到稳定可靠的工作。四川师范大学成都学院电子工程系课程设计报告9根据应用的要求,复位操作通常有两种基本形式:上电复位和开关复位。上电复位要求接通电源后,自动实现复位操作。复位电路如图 7所示。电

21、阻 R1、R2 和 C1构成复位电路,按下复位键可实现手动复位。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器 PC0000H,这表明程序从 0000H地址单元开始执行。单片机冷启动后,片内 RAM为随机值,运行中的复位操作不改变片内 RAM区中的内容,32 个通用寄存器复位后的状态为确定值。如图 7所示:图 7 复位电路2.6 数码管显示电路数码管显示电路是本设计最核心的部分。四位一体数码管的内部结构,四位一体数码管用于动态扫描,即把数码管显示数据的段控码分时送到其对应的段控端。当一个段控码被送到段控端时,显示此段控码数据的数码管,它的位控端置有效电平,数码管点亮;而其他数码管

22、的位控端送无效电平,数码管不亮。持续点亮一段时间,再送其它的段控码,依次把显示段控码的数码管,使其位控端为有效电平,其他数码管的位控端为无效电平,就这样数码管依次被点亮。利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短, 发光的亮度等因素.通过实验发现, 当扫描刷新频率(发光二极管的停闪频率) 为 50Hz, 发光二极管导通时间1m s 时, 显示亮度较好, 无闪烁感。 四位一体数码管共十二个引脚,从数码管的正面看,它以第一脚为起点,逆时针排列的。断电存储数据的功能:当时钟在运行时,它会实时将当前时间存入一个 AT24C02存储器中,在每次启动时它会

23、首先从该存储器中读取数据,晶采用显示容量为 2行 16个字的 1602液晶,1602 采用标准的 16脚接口,内部的字符发 生存储器(CGROM)已经存储了 160个不同的点阵字符图形,每一个字符都有一个固定的这样将保证时钟在四川师范大学成都学院电子工程系课程设计报告10断电后数据不会丢失。再接通电源时,数据就不会丢失。显示电路由两个 5461BS四位一体共阳数码管和 S9012 PNP三极管组成。如图 8所示:图 8 数码管显示电路2.7 蜂鸣器电路采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出低电平,蜂鸣器响铃。采用蜂鸣器闹铃结构简单,只需要单路信号控制,发出的闹铃声音可以根据响和不响

24、的不同的软件延时时间来控制,当然也能发出音乐声音。蜂鸣器电路由一个 1k限流电阻、一个 PNP三极管 S9012组成。STC89C52 单片机内有 2个 16位定时器/计数器T0、T1,它们的工作方式、定时时间、启动方式等均可以通过程序来设置和改变。当定时器/计数器设置为定时工作方式时,计数器对内部机器周期计数,计数脉冲输入信号由内部时钟提供,每过一个机器周期,计数器增 1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,单片机的一个机器周期由 12个振荡脉冲组成,因此,计数器的计数频率为振荡器频率的 1/12。其定时时间由计数初值和所选择的计数器的长度来确定由 89C52的 P3.7

25、口控制蜂鸣器电路,定时时间到, P3.7输出一定频率脉冲时,蜂鸣器将发出响声;一分钟后停止。电路如图 9所示:四川师范大学成都学院电子工程系课程设计报告11图 9 蜂鸣器电路3软件设计3.1 主程序流程框图在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、BCD转换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。单片机的软件软件设计通常要考虑以下几点:

26、(1)根据软件功能要求,将软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁、流程合理;(2)培养良好的编程风格,考虑结构化程序设计、实行模块化、子程序化。这样不仅便于调试、链接,又易于移植和修改;(3)建立正确的数学模型,并通过仿真提高性能,以选取合适的参数;(4)绘制程序流程图;(5)为程序加入注视,提高可读性;(6)注意软件的抗干扰设计,提高体统可靠性。本系统软件采用模块化结构,由主程序显示子程序、延时子程序按键扫描子程序按键处理子程序、定时器 T0中断服务程序构成进入正常走时。主程序流程框图如图 10所示:四川师范大学成都学院电子工程系课程设计报告12YN开始初

27、始化部分中断初始化开启定时器 0调按键处理子程序按键扫描是否有键按下?调显示子程序图 10 主程序流程框图3.2 中断服务程序流程框图中断服务程序流程图如图 11所示:四川师范大学成都学院电子工程系课程设计报告13Y YN N是否满 24h?显示缓冲单元清 0返回NY YNYN N是否满 60m?小时加 1分值加 1N计数器重新加载循环次数加 1是否满 1s?是否满 60s?秒值加 1N开始图 11 中断服务程序流程图四川师范大学成都学院电子工程系课程设计报告143.3 显示子程序流程图显示子程序流程图如下图图 12所示:开始读数据,分离高位和低位置段码偏移量和位选码查表并送出显示延时 1ms

28、,并指向下一个偏移量8 个数码管显示完?YES NO图 12 显示子程序流程图3.4 按键扫描子程序流程图按键扫描子程序流程图如图 13所示:开始延迟 10ms闭合状态?结束调按键处理子程序序有按键按下?NONOYESYES图 13 键扫子程序流程图四川师范大学成都学院电子工程系课程设计报告153.5 按键处理子程序流程图按键处理程序流程图如图 14 所示:开始开关 1 按下?模式值加 1开关 4 按下?开关 3 按下?开关 2 按下?模式3模式2指示灯开关闹铃开关模式4模式1小时加1分钟加1秒钟加1闹铃时加1闹铃分加1小时减1分钟减1秒钟减1模式3模式2模式4模式1闹铃时减1闹铃分减1模式5

29、模式5结束图 14 按键处理程序流程图4.系统功能(1)用四个电位按键来实现对电子时钟的调试工作,当按第一下总控键时进入调时状态,时位闪烁,可以用加一键和减一键对时进行调整,在调整时秒正常运行;当按第二下总控键时时钟进入调分设置,分位闪烁,可以用加一键和减一键对分进行调整,另外有一个时钟控键来实现闹钟是否开启;当按第三下总控键时时钟进入秒设置,秒位闪烁,以用加一键和减一键对秒进行调整;当按第四下总控键时,时钟进入闹钟调整模式,闹钟时位闪烁,可对其进行加减;当按第五下总控键时,闹钟分位闪烁,可对其进行加减;当按第六下总控键时,时钟退出调整模式,进入正常走时。四川师范大学成都学院电子工程系课程设计

30、报告16(2)用两个四位数码管来实现设计的显示部分,其演示模式是: 时时-分分-秒秒。该数码管组合的功能管脚是八个位选择连接芯片的 P2引脚,八个显示管位并联再接入到芯片 P0引脚。从而在功能上区分开,实现数码管的显示功能。(3)用一个 LED灯和电阻组成的简易电路结合设计来实现闹钟状态的指示功能,闹钟开时,LED 灯亮,而闹钟关时,LED 灯灭。(4)用一个蜂鸣器和三极管等配件组成一个闹钟电路,再与芯片的 P3.7引脚连接。当时钟到设定的报时点时便会发出音乐来实现闹钟功能。(5)用一个按键和其他部件组成的复位电路与芯片连接来实现整个程序及硬件的重新复位功能。5.设计总结程设计是培养学生综合运

31、用所学知识发现提出分析和解决实际问题锻炼实践能力的重要环节是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异。 经过两个星期的课程设计,让我真正的懂得了要设计一个成功的电路,必须要有专业知识的了解,同时要有坚持不懈的努力。在遇到问题时要学会思考和寻求解决的办法,我们设计的产品除了在老师的要求上完成,我们还特别加了一些东西,这些功能是我们对实际生活观察得出的。通过这次课程设计,加强了我动手、思考和解决问题的能力.现在设计已经做好了,但是控制器控制信号灯不是很好。虽然花了很多的时间,但学到了很多东西。做课程设计的时候,自己把整个书本都看了几遍,增强了自己对知识的理解,很多以前不是

32、很懂的问题现在都已经一一解决了。在课程设计的过程中,我想了很多种方案,对同一个问题(像计数器的接法)都想了很多种不同的接法,运用不同的芯片进行了比较,最后还是采取了上面的方法进行连接,通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大二那年的学习成果。6参考文献1 孙慧琴.单片机项目设计教程M.北京: 电子工业出版社,2009.6.23-1432 李萍.AT89S51 单片机原理开发与应用M.上海:中国电力出版社,2008.7.34-673 江志红.51 单片机技术与应用系统开发案例精选M.北京:清华大学出版社,2008.12.123-四川师范大学

33、成都学院电子工程系课程设计报告171564 曾峰.印刷电路板(PCB)设计与制作M.北京:电子工业出版社,2005.8.234-2565 姜尚坤.单片机综合应用M.上海:上海科技出版社,2007.7.123-1536 崔华.单片机实用技术M.北京:清华大学出版社,2006.7.112-1427 高吉祥.全国大学生电子设计竞赛培训系列教程M.北京:电子工业出版社,2007.5.252-287四川师范大学成都学院电子工程系课程设计报告18附录附录 1 所需元件列表表 2 所需元件列表名称 型号 数量备注单片机 STC89S521块 含插座,双列直插式三极管 S9012 9个电阻 470 8个电阻

34、1k 4个电阻 10k 1个上拉排阻 10K 1片数码管 5461BS 2块 含两个插座电容 30pF 2个电解电容 22F 1个发光二极管 2个带锁按钮 1个蜂鸣器 1个插针 38个晶振 12MHz 1个不带锁按钮 5个电解电容 10uF 1个附录 2 PCB图四川师范大学成都学院电子工程系课程设计报告19图 15 pcb 图附录 3 程序清单/*课程设计题目: 基于单片机的音乐报时电子时钟设计 设计日期: 2012.12*/#include #define uchar unsigned char#define uint unsigned intuchar code segcode12=0x

35、c0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff;/0,1,2,3,4,5,6,7,8,9,-,熄灭uchar code dispbit8=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;/数码管位选位uchar buffer8=0,0,0,0,0,0,0,0; /时钟缓存uint hour,min,sec;uint ringhour,ringmin; uint hidhour,hidmin,hidsec,hidringhour,hidringmin; /闪烁显示uint status=0;/模式

36、值sbit music=P36;/闹铃sbit ringled=P37;/闹钟指示灯bit ringoff=1;/闹铃停止uint count=0;/定时器计数uchar keyinput;uchar buf=0xff;/用来存放按键值四川师范大学成都学院电子工程系课程设计报告20bit keyrelease=1;uint shansuo=0;uchar timer1h,timer1l,time;/time 为节拍(延迟时间) ,timer1l、timer1h 为计数器 1 初值uchar code freqh=0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC, /低音 1

37、7 第一个八度0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,/中音 17 第二个八度0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF;/高音 17 第三个八度uchar code freql = 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B, /低音 12345670x8F,0xEE,0x44,0x6B,0xB4,0xF4,0x2D, /中音 12345670x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16; /高音 1234567uchar code song=5,3,2,3,3,1,4,3,1,5,3,2

38、,3,3,1,4,3,1,5,3,1,5,2,1,6,2,1,7,2,1,1,3,1,2,3,1,3,3,1,4,3,1,3,3,2,1,3,1,2,3,1,3,3,2,3,2,1,4,2,1,5,2,1,6,2,1,5,2,1,4,2,1,5,2,1,3,2,1,4,2,1,5,2,1,4,2,2,6,2,1,5,2,1,4,2,2,3,2,1,2,2,1,3,2,1,2,2,1,1,2,1,2,2,1,3,2,1,4,2,1,5,2,1,6,2,1,4,2,2,6,2,1,5,2,1,6,2,2,7,2,1,1,3,1,5,2,1,6,2,1,7,2,1,1,3,1,2,3,1,3,3,1

39、,4,3,1,5,3,1,3,3,2,1,3,1,2,3,1,3,3,2,2,3,1,1,3,1,2,3,1,7,2,1,1,3,1,2,3,1,3,3,1,2,3,1,1,3,1,7,2,1,1,3,2,6,2,1,7,2,1,1,3,2,1,2,1,2,2,1,3,2,1,4,2,1,3,2,1,2,2,1,3,2,1,1,3,1,7,2,1,1,3,1,6,2,2,1,3,2,7,2,1,6,2,2,5,2,1,4,2,1,5,2,1,4,2,1,3,2,1,4,2,1,5,2,1,6,2,1,7,2,1,1,2,1,6,2,2,1,3,1,7,2,1,1,3,2,7,2,1,6,2,1

40、,7,2,1,1,3,1,2,3,1,1,3,1,7,2,1,1,3,1,6,2,1,7,2,1,0,0,0;/一个音符有三个数字。前为音节、中为第几个八度、后为时长(以半拍为单位) 。/*延时函数*/void delayMS(uint t) uint i;while(t-)for(i=0;i=6) status = 0; shansuo=0; break;case 0xd0:switch(status) /按下加 1 键,5 种模式下加 1case 0x01:if(hour0) hour-; /时减 1else hour=23; break;case 0x02:if(min0) min-;

41、/分减 1else min=59; break;case 0x03:if(sec0) sec-; /秒减 1else sec=59; break;case 0x04:if(ringhour0) ringhour-; /闹钟时减 1else ringhour=23; break; case 0x05:if(ringmin0) ringmin-; / 闹钟分减 1else ringmin=59; break;四川师范大学成都学院电子工程系课程设计报告22break;case 0x70: ringoff=ringoff; /闹钟的开和关ringled=ringled; /闹钟指示灯开关break;d

42、efault:break;/*数码管显示函数*/void display() uchar i,j;if (status=4|status=5) /闹钟调时、调分状态if(hidringhour=20) / 定时 1S 到,以下为时钟的正常走钟逻辑 count=0;sec+;if(sec= 60) sec=0; min+;if(min= 60) 四川师范大学成都学院电子工程系课程设计报告26min=0; hour+;if(hour= 24) hour=0; /*定时器 T1 中断。用来产生不同频率方波*/void t1() interrupt 3 TR1=0; /先关中断music=music;

43、 /产生方波TH1=timer1h;TL1=timer1l; /重新装入初值TR1=1; /在开始计数/*延迟半节拍数*/void delay(uchar t) uchar t1;unsigned long t2;for(t1=0;t110*t;t1+)display(); /防止响音乐时数码管无显示press();for(t2=0;t2200;t2+) ;TR1=0; /一个音符发送完后关计数四川师范大学成都学院电子工程系课程设计报告27/*产生音乐程序*/void send() TH1=timer1h;TL1=timer1l;TR1=1;delay(time); /根据节拍数调用延迟/*主

44、函数*/void main() uint h=0;uint i,k;music=1;TMOD=0x11;TH0=(65536-46080)/256; / 定时器 0 设置初始值 50ms 中断初始值TL0=(65536-46080)%256; TR0=1; /启用定时器 T0 开始计时IE=0x82; /开定时器 0 中断 EA=1;ET0=1;/开中断ET1=1;while(1)press(); /判断是否有键按下并处理if(ringoff=0time=1;while(!ringoff)四川师范大学成都学院电子工程系课程设计报告28 music=0; k=songi+7*songi+1-8;/找到相应音符的计数初值timer1h=freqhk;timer1l=freqlk; /装入计数初值time=songi+2;i=i+3;if(time!=0) send(); /播放音符else i=0; /循环播放if(min!=ringmin)break; elsemusic=1;四川师范大学成都学院电子工程系课程设计报告29

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报