《2022年基于51单片机设计的音乐跑马灯课程设计.docx》由会员分享,可在线阅读,更多相关《2022年基于51单片机设计的音乐跑马灯课程设计.docx(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源学号:0121118700107课 程 设 计题目基于 AT89C52 单片机地音乐跑马同 组 者指导老师袁兵2021年12月28日灯学院物流工程学院专业物流工程班级物流 zy1101 班姓名申聚鹏欢迎下载精品学习资源课程设计任务书同学姓名:申 聚 鹏专业班级: 物流 zy1101 班指导老师:袁 兵工作单位: 物流工程学院题 目:基于 AT89C52 单片机地音乐跑马灯初始条件:1. Protues 7 professional地 ISIS 7 professional和 ARES 7 professional软件2. Keil uvision4软件3. 单片机地相关资料指导书要
2、求完成地主要任务 : (包括课程设计工作量及其技术要求,以及说明书撰写等详细要求)基于 AT89C52 单片机地音乐跑马灯地设计要求如下:a.有 16 个发光二极管做跑马灯,其中跑马灯有16 种灯亮模式 .b.有特地地按键用以切换跑马灯地模式,并且对于任何一种跑马灯模式都可以对灯亮速度进行掌握.c.每一种跑马灯模式用 LED 数码管进行显示 0E.d.当跑马灯处于E 模式时,音乐响起,音乐可以进行切换 .时间支配:十八周到十九周设计,十九周答辩指导老师签名:年 月 日系主任(或责任老师)签名:年月 日欢迎下载精品学习资源本科生课程设计成果评定表姓名申聚鹏性 别男专业、班级物流 zy1101 班
3、课程设计题目:基于 AT89C52 单片机地音乐跑马灯课程设计答辩或质疑记录:成果评定依据:1. 选题合理、目地明确2. 设计方案正确,具有可行性、创新性1分020分3. 设计结果4. 态度仔细、学习刻苦、遵守纪律分205. 设计报告地规范化、参考文献充分(不少于15分5 篇)10分6. 答辩分25最终评定成果(以优、良、中、及格、不及格评定)指导老师签字:年月 日欢迎下载精品学习资源摘 要单片机技术是一门不行或缺地技术,对我们将来地工作以及生活和学习都有很亲密地联系.近年来,随着电子技术和微机运算机地快速进展,单片机地档次不断提高,其应用领域也在不断地扩大,已在工业掌握、尖端科学、智能仪器外
4、表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛地应用,成为现代电子系统中最重要地智能化地核心部件 .本设计使用 AT89C52 芯片,利用 P0 地 8 个端口连接 8 个发光二极管, P1 地 8 个端口连接 8 个发光二极管,通过 P0.0 到 P0.7 地值和 P1.0 到 P1.7 地值掌握 “跑马灯 ”地亮灭 ,以达到显示成效 .设计地中断程序要对多个按键动作进行响应,灯光变换地花样有15 种,用模式按钮切换 .按下模式按钮键,程序将按十五种模式切换,每按一次模式按钮键,切换一次跑马灯模式,而加速按钮和减速按钮可以转变闪耀速度;最终一种模式为音乐模式,
5、 加速按钮可切换音乐 .在单片机运行时,可以在不同状态下让跑马灯显示不同地组合,作为单片机系统正常地指示 .当单片机系统显现故障时,可以利用跑马灯显示当前地故障码,对故障做出诊断.此外,跑马灯在单片机地调试过程中也特别有用,可以在不同时候将需要地寄存器或关键变量地值显示在跑马灯上,供应需要地调试信息 .关键词:音乐跑马灯; AT89C52 单片机; 74LS245 驱动芯片; LED 发光二极管欢迎下载精品学习资源1 设计概述 .0.1.1 设计目地 .0.1.2 设计作用 .0.1.3 设计要求 .0.1.4 系统设计框图 .0.2 元器件介绍 .1.2.1AT89C52 单片机.1.2.2
6、 驱动芯片 74LS245 .2.2.3 其他元件及功能 .3.3 硬件电路设计 .4.3.1 单片机最小系统 .4.3.2LED 显示部分 .6.3.3 按钮掌握部分 .6.3.4 数码管显示电路 .7.3.5 蜂鸣器部分 .7.3.6 系统总电路图 .8.4 软件设计 .9.4.1 程序流程图 .9.4.2 程序设计 .9.5 终止语 .3.1.参考文献 .3.2.欢迎下载精品学习资源1 设计概述1.1 设计目地利用所学单片机地理论学问进行软硬件整体设计,培育同学分析、解决问题地才能, 锤炼同学理论联系实际、综合应用地才能.通过实践动手制作硬件和软件,综合应用本学期所学地单片机学问,达到加
7、深学习该专业学问地目地.1.2 设计作用跑马灯是一种能像马儿一样跑地灯 ,就是利用单片机掌握 LED 灯地闪耀方式使其就像马儿奔跑时马蹄地起落 .音乐跑马灯,就是在一般跑马灯地基础上加入了音乐,并通过喇叭将其在适当地时刻播放出来 .单片机地音乐跑马灯由 16 个 LED 发光二极管组成,在单片机系统中一般用来指示和 显示单片机地运行状态 .通过程序掌握使得单片机不同状态下地16 个 LED 发光二级管显示不同地组合,以此显示单片机地工作状态,也可检查单片机是否发生故障.当然,在实际生活中音乐跑马灯仍有很多用处,其可以应用于各种建筑物、大楼、酒吧、KTV 和夜总会等消遣场所,可以制作出各种各样地
8、炫目多彩地霓虹灯,为夜晚带来不一样地光荣.1.3 设计要求有 16 个发光二极管做跑马灯,其中跑马灯有16 种灯亮模式 .有特地地键盘用以切换跑马灯地模式,并且对于任何一种跑马灯模式都可以对亮灯速度进行掌握 .每一种跑马灯模式用LED 数码管进行显示 .当跑马灯处于一种模式时,相伴地音乐响起,音乐有3 首,并可以对其进行切换 .1.4 系统设计框图基于 AT89C52 单片机地多模式带音乐地跑马灯掌握系统由电路电源、单片机主控电路、模式切换以及调速按键掌握电路、LED 数码管显示电路和十六个发光二极管地跑马地电路几部分组成,系统框图如图1.1 所示.欢迎下载精品学习资源图 1.1 系统设计框图
9、电源电路LED数码管显示电路复位电路AT89S52单片机16个发光二极管做跑马灯晶振电路模式切换按键以及速度调剂按键2 元器件介绍2.1 AT89C52单片机AT89C52 是 51 系列单片机地一个型号,它是ATMEL 公司生产地 .欢迎下载精品学习资源AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 地可反复擦写地Flash只读程序储备器和 256 bytes地随机存取数据储备器( RAM ),器件采纳 ATMEL 公司地高密度、非易失性储备技术生产,兼容标准MCS-51 指令系统,片内置通用8 位中心处理器和 Flash储备单元,功能强大地 AT89
10、C52 单片机可为您供应很多较复杂系统掌握应用场合.AT89C52 有 40 个引脚, 32 个外部双向输入 /输出( I/O)端口,同时内含 2 个外中断口, 3 个 16 位可编程定时计数器 ,2 个全双工串行通信口, 2 个读写口线, AT89C52 可以依据常规方法进行编程,也可以在线编程 .其将通用地微处理器和Flash储备器结合在一起, 特殊是可反复擦写地 Flash储备器可有效地降低开发成本 .AT89C52 单片机如图 2.1 所示.欢迎下载精品学习资源图 2.1 AT89C52单片机2.2 驱动芯片74LS245欢迎下载精品学习资源74LS245 是我们常用地芯片,用来驱动
11、LED 或者其他地设备,它是 8 路同相三态双向总线收发器,可双向传输数据 .74LS245 仍具有双向三态功能,既可以输出,也可以输入数据.当 AT89C52 单片机地 P0 口总线负载达到或超过 P0最大负载才能时,必需接入74LS245 等总线驱动器 .当片选端 CE 低电平有效时, BA =“0”,信号由 B 向 A 传输; AB=“1”,信号由 A 向 B传输;(发送)当 CE 为高电平常, A、B 均为高阻态 .欢迎下载精品学习资源由于 P2 口始终输出地址地高 8 位,接口时 74LS245 地三态掌握端 1G 和 2G 接地, P2口与驱动器输入线对应相连 .P0 口与 74L
12、S245 输入端相连 , CE 端接地,保证数据线畅通.8051 地 RD 和 PSEN 相与后接 AB/ BA ,使得 RD 和 PSEN有效时, 74LS245 输入( P0.1D1),其它时间处于输出( P0.1D1) .74LS245 驱动芯片如图 2.2 所示.欢迎下载精品学习资源2.3 其他元件及功能图 2.2 74LS245 驱动芯片欢迎下载精品学习资源 LED 发光二极管:指示和显单片机状态 . 扬声器:播放歌曲 . 按钮:模式按钮用于切换单片机工作模式,加速按钮用于加快LED 灯地闪耀频率,减速按钮用于减缓 LED 灯地闪耀频率,复位按钮用于人工复位 . 数码管:用于显示单片
13、机当前处于何种模式. 晶体振荡器:用于构成单片机地复位电路. 电容:用于构成单片机地复位电路 . 电阻:限流分压作用,是电路正常工作并爱护电路.元件清单如表 2.1 所示.表 2.1 元件清单元 件数 量元 件数 量AT89C521电容 20F1欢迎下载精品学习资源74LS2453电阻47016LED 发光二极管16电阻1007扬声器1电阻4801按钮4电源+5V8数码管1晶体振荡器1电容 30pF23 硬件电路设计3.1 单片机最小系统单片机最小系统或者称为最小应用系统,素养用最少地元件组成地单片机可以工作地系统,对 51 系列单片机来说,最小系统一般应当包括:单片机、复位电路、晶振电路.复
14、位电路:该复位电路采纳手动复位和按键复位,所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态,使RST 获得高电平,该方法可实现比较快速地复位.当然,如不按下按钮,需等待电容充完电后使得RST 获得高电平复位,复位电路如图3.1欢迎下载精品学习资源所示.图 3.1 复位电路晶振电路:8051 单片机地时钟信号通常用两种电路形式电路得到:内部震荡方式和外部中断方式.在引脚XTAL1 和 XTAL2外部接晶振电路器(简称晶振)或陶瓷晶振器,就构成了内部晶振方式 .由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲.内部振荡方式地外部电路如下图所示 .其
15、电容值一般在 530pF,晶振频率地典型值为12MHz,采纳 6MHz 地情形也比较多 .内部振荡方式所得地时钟信号比较稳固,有用电路使用较多.晶振电路图如图 3.2 所示.欢迎下载精品学习资源欢迎下载精品学习资源3.2 LED 显示部分图 3.2 晶振电路欢迎下载精品学习资源显示部分,用十六个发光二极管通过总线和74LS245 驱动芯片分别接到了 AT89C52 单片机地 P0 和 P1 口.通过程序掌握 P0 和 P1 地十六个端口按肯定方式一次为低电平点亮 端口 LED. 如把 P0 口当作了通用地 I/O 口,就需要加上拉电阻,可是我们所采纳地是使用总线方式输出因此不需要上拉电阻 .本
16、设计采纳地是发光二极管阳极接电源,因此要求P0 口 P1 口输出低电平常,二极管才会发光 .LED 显示部分如图 3.3 所示.欢迎下载精品学习资源3.3 按钮掌握部分图 3.3 LED 显示部分欢迎下载精品学习资源用一个按钮进行模式地切换,即用该按钮掌握多种不同地亮灯模式,分别有16 种模式,从模式 “0至”模式 “F,”开启模式 “F是”有音乐放出 .用一个按钮(加速按钮)进行发光二极管亮灯加速地调剂,在第 “F”模式时该按钮就可进行歌曲地切换 .用一个按钮(减速按钮)进行发光二极管亮灯减速地调剂,在第9 模式时该按钮就可进行歌曲地切换 .按钮掌握部分如图 3.4 所示.欢迎下载精品学习资
17、源图3.4按钮掌握部分3.4 数码管显示电路数码管上分别显示 0F 十六个数字,分别代表十六种模式 .采纳共阳极连接,即数码管地 af 端要输入低电平常内部二极管才导通 .在数码管每个端口与74LS24 5 驱动芯片与数码管之间连上 100地电阻 .数码管显示电路地详细硬件设计如图3.5 所示.欢迎下载精品学习资源3.5 蜂鸣器部分图 3.5 数码管显示电路欢迎下载精品学习资源蜂鸣器是一种将电信号转换成声音信号地电声元件.准确地说,蜂鸣器工作实际上是 把肯定范畴内地音频电功率讯号通过换能方式转变失真小并且有足够声压级地可听声音. 本课程设计直接将蜂鸣器街道单片机地P2.6端口,蜂鸣器详细电路如
18、图 3.6 所示.欢迎下载精品学习资源欢迎下载精品学习资源3.6 系统总电路图图 3.6 蜂鸣器电路欢迎下载精品学习资源音乐跑马灯地总电路图如 3.7 所示.图 3.7 音乐跑马灯总电路3.7 操作说明在仿真软件中,按下屏幕左下角开头按键时,数码管显示为“0,”发光二极管以肯定方式开头闪耀,此时按下模式按钮使得数码管显示为“1时”,发光二极管以一另种方式开头闪耀 .此时,如按加速按钮,就加快了发光二极管地闪耀速度,有4 种不同地速度 .当加速到最大速度时,再按加速按钮就无法连续加速,此时可以按减速按钮进行减速.以此类推,模式 “1到”模式 “E”,每种模式都给有一种闪耀方式 .当连续按模式按钮
19、使地模式转换 为模式“F时”,蜂鸣器开头放歌,发光二极管依据音乐音调变动闪耀.此时地加速按钮可以进行歌曲地切换,按一次按钮换一首歌 .欢迎下载精品学习资源4 软件设计4.1 程序流程图该程序采纳两个程序编写:第一个位单片机主程序,作用是使单片机完成相应上电功能;其次个是音乐产生程序,在第一个程序中包含其次个程序地头文件即可.程序流程图如图 4.1 及 4.2 所示.图 4.1 主程序图 4.2 音乐程序流程图开头设定跑马灯初值I/O 初始化检查按键开关模式键被按下NYY加速键被按下?模式加 1,等于9Y削减时间,使跑马灯加速NN送 LED和跑马灯播放音乐Y减速键被按下?增加时间,使跑马灯减速N
20、终止LE跑D马灯4.2 程序设计#include /包括一个 52 标准地内核头文件/#include unsigned char RunMode;void Delay1msunsigned int Count/延时子程序unsigned int i,j;欢迎下载精品学习资源fori=0 ;iCount;i+ forj=0 ;j1200;j+ ;unsigned char code LEDDisplayCode= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff;/LED
21、数码管void Displayunsigned char Value欢迎下载精品学习资源P3=LEDDisplayCode Value;/数/void LEDFlashunsigned char Count值输出至 LED欢迎下载精品学习资源unsigned char ;i bit Flag;fori=0 ;i8&0x00ff ;void InitialCPUvoidRunMode=0x00;Timer0Count=0;SystemSpeedIndex=4; P1=0x00;P0=0x00;P2=0xff;P3=0x00;Delay1ms500;P1=0xff;P0=0xff;P2=0xff;
22、P3=0xff;SetSpeedSystemSpeedInde;x DisplayRunMode;unsigned int LEDIndex=0;bit LEDDirection=1,LEDFlag=1 ;void Mode_0voidLEDShow0x0001LEDIndex ;欢迎下载精品学习资源LEDIndex=LEDIndex+1%16 ;void Mode_2voidifLEDDirection LEDShow0x0001LEDIndex ;ifLEDIndex=15 LEDDirection=.LEDDirection ;LEDIndex=LEDIndex+1%16 ;void M
23、ode_3voidifLEDDirection LEDShow0x0001LEDIndex ;ifLEDIndex=15 LEDDirection=.LEDDirection ;LEDIndex=LEDIndex+1%16 ;void Mode_4voidifLEDDirectionifLEDFlag LEDShow0xfffeLEDIndex ;elseifLEDFlag LEDShow0x7fffLEDIndex ;elseLEDShow0xfffeLEDIndex ;ifLEDIndex=15LEDDirection=.LEDDirection ;ifLEDDirection LEDFl
24、ag=.LEDFlag ;LEDIndex=LEDIndex+1%16 ;void Mode_5voidifLEDDirection LEDShow0x000fLEDIndex ;ifLEDIndex=15 LEDDirection=.LEDDirection ;LEDIndex=LEDIndex+1%16 ;void Mode_6void欢迎下载精品学习资源ifLEDDirection LEDShow0x000fLEDIndex ;ifLEDIndex=15 LEDDirection=.LEDDirection ;LEDIndex=LEDIndex+1%16 ;void Mode_7void
25、ifLEDDirection LEDShow0x003fLEDIndex ;ifLEDIndex=9 LEDDirection=.LEDDirection ;LEDIndex=LEDIndex+1%10 ;void Mode_8voidLEDShow+LEDIndex ;void Mode_9voidLEDShow0x0003LEDIndex ;LEDIndex=LEDIndex+1%16 ;void Mode_bvoidifLEDDirection LEDShow0x0003LEDIndex ;ifLEDIndex=15 LEDDirection=.LEDDirection ;LEDInde
26、x=LEDIndex+1%16 ;void Mode_CvoidifLEDDirection LEDShow0x8080LEDIndex ;elseLEDShow0x0101LEDIndex ;ifLEDIndex=7 LEDDirection=.LEDDirection ;LEDIndex=LEDIndex+1%8 ;void Mode_dvoidifLEDDirection LEDShow0x1111LEDIndex ;欢迎下载精品学习资源ifLEDIndex=3 LEDDirection=.LEDDirection ;LEDIndex=LEDIndex+1%4 ;void Mode_Ev
27、oidifLEDDirection LEDShow0x5555LEDIndex;ifLEDIndex=3 LEDDirection=.LEDDirection ;LEDIndex=LEDIndex+1%4 ;void timer0eventrunvoid/模式挑选ifRunMode=0x00 Mode_0 ; else ifRunMode=0x01 Mode_1 ;else ifRunMode=0x02 Mode_2 ;else ifRunMode=0x03 Mode_3; else ifRunMode=0x04 Mode_4; else ifRunMode=0x05 Mode_5;else
28、ifRunMode=0x06 Mode_6; else ifRunMode=0x07 Mode_7;else ifRunMode=0x08 Mode_8;else ifRunMode=0x09 Mode_9; else ifRunMode=0x0a Mode_A ;else ifRunMode=0x0b Mode_b;else ifRunMode=0x0c Mode_C;欢迎下载精品学习资源void Timer2void interrupt 5 using 3else ifRunMode=0x0d Mode_d; else ifRunMode=0x0e Mode_E;欢迎下载精品学习资源TF2
29、=0;if+Timer0Count=SystemSpeedTimer0Count=0;timer0eventrun;unsigned char MusicIndex=0;int MUSICNUMBER=3 ;void KeyDisposeunsigned char KeyifKey&0x01LEDDirection=1 ;LEDIndex=0;LEDFlag=1;RunMode=RunMode+1%16;DisplayRunMode;ifRunMode=0x0fTR2=0;elseTR2=1;ifKey&0x02欢迎下载精品学习资源ifRunMode=0x0fMusicIndex=MusicIndex+MUSICNUMBER-1%MUSICNUMBER; elseifSystemSpeedIndex0-SystemSpeedInde;x SetSpeedSystemSpeedInde;xelseLEDFlash6;ifKey&0x04ifRunMode=0x0fMusicIndex=MUSICNUMBER+1%MUSICNUMBER;elseifSystemS