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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(音乐倒数计数器Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

音乐倒数计数器Word文档格式.docx

1、键盘 图1-1 总体设计方框图2 系统硬件电路设计21主控制器AT89S51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种

2、高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 22显示电路LCD数码管采用静态显示,静态显示是指LCD显示某一屏字符时,时钟保持当前字符的显示,不使用移屏显示。便于控制,同时能够满足正常的显示效果。由于在显示中存在播放时间的动态变化,

3、这样的话,即使是不产生整屏移动,也能给人动态感,也易于控制。3 系统设计3.1电路原理图 电路原理图如图3-1所示。 图3-1 电路原理图3.2元件清单3.2.1 AT89C51芯片AT89C51芯片图如下图3-2所示。 图3-2 AT89C51芯片简介:AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。主要特性

4、:与MCS-51 兼容;4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;1288位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。3.2.2 字符型LCD1602字符型LCD1602如下图3-3所示。 图3-3字符型LCD16021602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,各引脚符号及其功能表如下表3-1所示。引脚

5、符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数据总线 1位9DB2底4位三态、 双向数据总线 2位10DB3底4位三态、 双向数据总线 3位11DB4高4位

6、三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极表3-1 LCD各引脚及其功能表3.2.3 按键控制模块按键用于控制数码显示、LCD显示、扬声器等模块的工作。通过扫描按键是否按下,来设定各模块的工作情况,使各模块可以在按键的控制下,有序地进行工作。设计中使用单个按键实现单个功能,属于较为简单的控制方式。在多功能系统设计的试验中我们使用五个按键分别与单片机的p1.0、p1.1、p1.2、p1.3、p1.4相连。通

7、过按下相应的按键来处理相应的程序。如下图3-4所示。 图3-4 按键控制模块图3.2.4 其它元件其它元件图如下图3-5所示。 图3-5 其它元件图4 系统软件程序设计4.1 程序流程图主程序开始初始化,然后扫描键盘、复位电路和计数器。当键盘按键有按下时,调整计数器值,LCD显示新值。当复位键有按下时,计数器复位为初值,重新倒计数。当计数器值倒计为0时,蜂鸣器发出声音,计数器停止倒计,程序结束。主程序流程图、LCD显示流程图和按键流程图分别如下图4-1、图4-2和图4-3所示。 图4-1 主程序流程图 图4-3 按键流程图5 系统的仿真与调试5.1 硬件调试 硬件调试分为静态调试和动态调试,对

8、于硬件调试而言,只要认真焊接,硬件一般不会出现什么问题的。静态调试一般采用的工具是万用表,它是在用户系统未工作时的一种硬件检测。动态调试是在用户系统工作的情况下发现和排查错误的一种硬件检测。调试步骤是:首先把电路分为若干模块,调试过程中与该模块无关的元件可以不加考虑,这样可把故障限定在一定的范围内;故障清除后,把各个模块合在一起进行联调,即可完成整个硬件调试工作。5.2 软件调试 软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。5.3 软硬件调试软硬件联调是指把调试无误的软件程序烧制进单片机芯片内部,通上电源后,检查硬件工作是否有预期的效果,如果

9、没有则需要检测软件是否在实现功能上有欠缺。若有错误,通过改写软件来调试,直至达到预期效果,则设计圆满成功。本课程设计调试结果如下图5-1所示。图5-1课程设计调试结果5总结经过这次的的课程设计,简单带有LCD显示的音乐倒数计数器基本完成,系统基本功能基本实现,测试运行也基本正常。该系统基本上完成了日期的显示与计数的功能。当然这个系统还存在许多有待完善的地方: 功能相对较少,有待于添加,比方说时钟与闹钟功能; 界面设计得不够精致完美;这次课程设计的时间虽然不算很长,但使我对很多东西有了更深刻的认识。总结如下: 查阅资料和阅读相关文献的重要性。 向同学请教的重要性,团结协作的重要性。 勤动手的重要

10、性,自己动手,丰衣足食!在一次次调试代码的过程中,我才明白“代码不是写出来的,是调出来的”的道理。 对待任何事情都要有耐心和恒心,遇到问题要冷静地思考,积极找出症结所在,逐个解决。通过本次课程设计,我更深刻的认识到了教学实践在大学课程中的重要性,同时也发觉到了自己在学习方面存在的许多不足之处,在以后的学习中我会努力改进这些不足,不断提高自己的动手实践能力。附件源程序#includeintrins.h#define time 100#define uint unsigned int#define uchar unsigned charuint t,flag,flag0,flag1,flag2,f

11、lag3,flag4,flag5,minute,second=60;uchar num,j,i,k=0;uchar code table=TIME 00:00;uint code table1=64580,64684,64777,64820,64898,64968,65030;sbit key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit key5=P14;sbit P1_5=P15;sbit RS=P20;sbit RW=P21;sbit E=P22;sbit led_red=P23;void write_time(uint addr

12、,uint date);/延时函数/void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;yy-);/延时1S/void delay1(void) uchar a,b,c; for(c=13;cc-) for(b=247;bb-) for(a=142;aa-); _nop_;/1602写命令函数/void write_com(uchar com) RS=0; P3=com; delay(5); E=1; delay(10); E=0;/1602写数据函数/void write_date(uchar date) RS=1; P3=date;/

13、按键1处理函数/void KEY1() while(flag1) if(key2=0) delay(time); if(key2=0) if(minute0) minute=minute-1; if(key4=0|key5=0) delay(150); if(key4=0|key5=0) flag1=0; flag =1; TR0=1; /按键2处理函数/void KEY2() minute=5; write_time(7,minute); while(flag2) if(key5=0) delay(time); if(key5=0) flag2=0; flag =1; TR0=1; /按键3

14、处理函数/void KEY3() minute=10; while(flag3) flag3=0;/按键4处理函数/void KEY4() minute=20; while(flag4) delay(150); flag4=0;void write_time(uint addr,uint date) uint ge,shi; ge=date%10; shi=date/10; write_com(0x80+addr); write_date(0x30+shi); write_date(0x30+ge); if(addr=7&date=0) j=1; if(j=1&addr=10& flag0=1

15、; TR0=0; TR1=1; flag5=1;/初始化函数/void init() P1=0xff; RW=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x80); TMOD=0x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=0xfc; TL1=0x44; ET1=1; ET0=1;/ TR1=1;/ TR0=1; EA=1; flag0=1; for(num=0;num0) minute=minute-1; write_time(7,minute); if(second=0) k=1; second=60;int main() init(); while(1) while(flag0) start(); counter(); while(flag5) delay1(); i+; if(i7) i=0; return 0;void inter0() interrupt 1 t+;void initer1() interrupt 3 TH1=table1i/256; TL1=table1i%256; P1_5=P1_5; if(key5=0) delay(100); TR1=0; flag5=0; k=0; j=0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1