音乐倒数计数器.pdf

上传人:hg158****2095 文档编号:82103099 上传时间:2023-03-24 格式:PDF 页数:21 大小:742.38KB
返回 下载 相关 举报
音乐倒数计数器.pdf_第1页
第1页 / 共21页
音乐倒数计数器.pdf_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《音乐倒数计数器.pdf》由会员分享,可在线阅读,更多相关《音乐倒数计数器.pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、目录 音乐倒数计数器.1 引言.1 1 项目概述和要求.1 1.1 设计要求.2 1.2 设计方案.2 2 系统硬件电路设计.3 21 主控制器AT89S51 单片机.3 22 显示电路LCD 数码管.3 3 系统设计.4 3.1 电路原理图.4 3.2 元件清单.4 4 系统软件程序设计.8 5 系统的仿真与调试.11 5.1 硬件调试.12 5.2 软件调试.12 5.3 软硬件调试.12 5 总结.12 附件.13 音乐倒数计数器 引言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它给人带来的方便也是不可置否的,人们对它的要求越来越高,要为现代人工作、科研、生活、提供

2、更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计利用 AT89C51 单片机结合字符型 LCD 显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为 0 时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。1 项目概述和要求 1.1 设计要求 利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED数码管上显示相应的时间。其功能和性能指标如下:字符型 LCD(162)显示器,显示格式为“TIME 分分:秒秒”。用 4 个按键操作来设置当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为 0

3、时,发出一阵音乐声。程序执行后工作指示灯 LCD 闪动,表示程序开始执行,按下操作键 K1K4 动作如下:K1-可调整倒计数的时间 160 分钟。K2-设置倒计数的时间为 5 分钟,显示“0500”。K3-设置倒计数的时间为 10 分钟,显示“1000”。K4-设置倒计数的时间为 20 分钟,显示“2000”复位后 LCD 的画面应能显示倒计时的分钟和秒数,此时按 K1 键,则在 LCD 上显示出设置画面。此时,若:按 K2 键-增加倒计数的时间 1 分钟。按 K2 键-减少倒计数的时间 1 分钟。按 K4 键-设置完成。1.2 设计方案 音乐倒数计数器所倒数的时间由数字显示,控制器使用单片机

4、 AT89C51。本设计基于单片机技术原理,以单片机芯片 AT89C51 作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在 LCD1602 显示器上。当倒计数为 0 时,蜂鸣器就发出音乐声响等等。该计数器系统主要由计数器模块、LCD 显示器模块、蜂鸣器模块、键盘模块、复位模块等部分组成。总体设计方框图如图 1-1 所示。图 1-1 总体设计方框图 复位电路 键盘 AT89C51 LCD1602 蜂鸣器 2 系统硬件电路设计 21主控制器AT89S51单片机 AT89C51 是一种带 4K 字节闪烁可编程可擦除只

5、读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了

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

7、原理图 电路原理图如图 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 次。该器件采用 ATMEL 高密度非易失存储器制造

8、技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:与 MCS-51 兼容;4K 字节可编程闪烁存储器;寿命:1000 写/擦循环;数据保留时间:10 年;全静态工作:0Hz-24MHz;三级程序存储器锁定;1288 位内部 RAM;32 可编程 I/O线;两个 16 位定时器/计数器;5 个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟

9、电路。3.2.2 字符型 LCD1602 字符型 LCD1602 如下图 3-3 所示。图 3-3 字符型 LCD1602 1602 字符型 LCD 通常有 14 条引脚线或 16 条引脚线的 LCD,多出来的 2 条线是背光电源线。VCC(15 脚)和地线 GND(16 脚),其控制原理与 14 脚的 LCD 完全一样,各引脚符号及其功能表如下表 3-1 所示。引脚 符号 功能说明 1 VSS 一般接地 2 VDD 接电源(+5V)3 V0 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度)。4 R

10、S RS 为寄存器选择,高电平1 时选择数据寄存器、低电平 0 时选择指令寄存器。5 R/W R/W 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6 E E(或 EN)端为使能(enable)端,下降沿使能。7 DB0 底 4 位三态、双向数据总线 0 位(最低位)8 DB1 底 4 位三态、双向数据总线 1 位 9 DB2 底 4 位三态、双向数据总线 2 位 10 DB3 底 4 位三态、双向数据总线 3 位 11 DB4 高 4 位三态、双向数据总线 4 位 12 DB5 高 4 位三态、双向数据总线 5 位 13 DB6 高 4 位三态、双向数据总线 6 位 14

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

12、块图 3.2.4 其它元件 其它元件图如下图 3-5 所示。图 3-5 其它元件图 4 系统软件程序设计 4.1 程序流程图 主程序开始初始化,然后扫描键盘、复位电路和计数器。当键盘按键有按下时,调整计数器值,LCD 显示新值。当复位键有按下时,计数器复位为初值,重新倒计数。当计数器值倒计为 0 时,蜂鸣器发出声音,计数器停止倒计,程序结束。主程序流程图、LCD 显示流程图和按键流程图分别如下图 4-1、图 4-2 和图 4-3 所示。蜂鸣器发声初始化调整计数器值扫描键盘扫描计数器按键是否有按下?计数值是否为 0?开始结束LCD显示计数值计数器停止倒计数是是否否扫描复位电路复位?是否 图 4-

13、1 主程序流程图 开始 是 LCD 倒数的计时 是否有键按下 LCD 显示相应画面 是 退出 否 否 是否有程序执行 LCD 闪动 是 是否有键按下 是 LCD 相应时间 否 否 图 4-3 按键流程图 5 系统的仿真与调试 开始 初始化 按键扫描 按键处理,确定模式 时间显示模式 有键按下 根据按键状态显示相应时间段 时间修改模式 根据按键状态修改时间 否 否 是 是 5.1 硬件调试 硬件调试分为静态调试和动态调试,对于硬件调试而言,只要认真焊接,硬件一般不会出现什么问题的。静态调试一般采用的工具是万用表,它是在用户系统未工作时的一种硬件检测。动态调试是在用户系统工作的情况下发现和排查错误

14、的一种硬件检测。调试步骤是:首先把电路分为若干模块,调试过程中与该模块无关的元件可以不加考虑,这样可把故障限定在一定的范围内;故障清除后,把各个模块合在一起进行联调,即可完成整个硬件调试工作。5.2 软件调试 软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。5.3 软硬件调试 软硬件联调是指把调试无误的软件程序烧制进单片机芯片内部,通上电源后,检查硬件工作是否有预期的效果,如果没有则需要检测软件是否在实现功能上有欠缺。若有错误,通过改写软件来调试,直至达到预期效果,则设计圆满成功。本课程设计调试结果如下图 5-1 所示。图 5-1 课程设计调试结

15、果 5 总结 经过这次的的课程设计,简单带有 LCD 显示的音乐倒数计数器基本完成,系统基本功能基本实现,测试运行也基本正常。该系统基本上完成了日期的显示与计数的功能。当然这个系统还存在许多有待完善的地方:功能相对较少,有待于添加,比方说时钟与闹钟功能;界面设计得不够精致完美;这次课程设计的时间虽然不算很长,但使我对很多东西有了更深刻的认识。总结如下:查阅资料和阅读相关文献的重要性。向同学请教的重要性,团结协作的重要性。勤动手的重要性,自己动手,丰衣足食!在一次次调试代码的过程中,我才明白“代码不是写出来的,是调出来的”的道理。对待任何事情都要有耐心和恒心,遇到问题要冷静地思考,积极找出症结所

16、在,逐个解决。通过本次课程设计,我更深刻的认识到了教学实践在大学课程中的重要性,同时也发觉到了自己在学习方面存在的许多不足之处,在以后的学习中我会努力改进这些不足,不断提高自己的动手实践能力。附件 源程序#include#include#define time 100#define uint unsigned int#define uchar unsigned char uint t,flag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;uchar num,j,i,k=0;uchar code table=TIME 00:00;ui

17、nt 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,uint date);/延时函数/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/延时 1S

18、/void delay1(void)uchar a,b,c;for(c=13;c0;c-)for(b=247;b0;b-)for(a=142;a0;a-);_nop_;/1602 写命令函数/void write_忽略(uchar 忽略)RS=0;P3=忽略;delay(5);E=1;delay(10);E=0;/1602 写数据函数/void write_date(uchar date)RS=1;P3=date;delay(5);E=1;delay(10);E=0;/按键 1 处理函数/void KEY1()while(flag1)if(key2=0)delay(time);if(key2=

19、0)if(minute0)minute=minute-1;write_time(7,minute);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 处理函数/void KEY3()minute=10;write_time(7,minute);while(flag3)if

20、(key5=0)delay(time);if(key5=0)flag3=0;flag=1;TR0=1;/按键 4 处理函数/void KEY4()minute=20;write_time(7,minute);while(flag4)if(key5=0)delay(150);if(key5=0)flag4=0;flag=1;TR0=1;void write_time(uint addr,uint date)uint ge,shi;ge=date%10;shi=date/10;write_忽略(0 x80+addr);write_date(0 x30+shi);write_date(0 x30+g

21、e);if(addr=7&date=0)j=1;if(j=1&addr=10&date=0)flag0=1;TR0=0;TR1=1;flag5=1;/初始化函数/void init()P1=0 xff;RW=0;write_忽略(0 x38);write_忽略(0 x0c);write_忽略(0 x06);write_忽略(0 x80);TMOD=0 x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=0 xfc;TL1=0 x44;ET1=1;ET0=1;/TR1=1;/TR0=1;EA=1;flag0=1;for(num=0;num0)m

22、inute=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 TH0=(65536-50000)/256;TL0=(65536-50000)%256;t+;void initer1()interrupt 3 TH1=table1i/256;TL1=table1i%256;P1_5=P1_5;if(key5=0)delay(100);if(key5=0)TR1=0;flag5=0;k=0;j=0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁