多模式带音乐跑马灯单片机课程设计说明Word格式文档下载.docx
《多模式带音乐跑马灯单片机课程设计说明Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《多模式带音乐跑马灯单片机课程设计说明Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。
5、撰写设计说明书(包括参考资料目录,字数不少于5000字)
时间安排:
(两周)
序号
内容
所用时间(天)
1
查阅资料,学习相关芯片知识
2
系统及扩展电路硬件设计
3
初始化程序和应用程序设计
4
相关硬件电路和程序调试
5
课程设计答辩
合计
12
指导教师签名:
2013年12月27日
系主任(或责任教师)签名:
年月日
1、系统功能及需求分析及设计意义3
1.1功能要求分析3
1.2设计意义3
2、总体方案设计4
3、系统硬件部分分析及设计5
3.1硬件总体设计5
3.2硬件各部分设计说明5
3.2.1主控芯片AT89C525
3.2.2跑马灯设计11
3.2.3模式显示设计11
3.2.4音乐播放设计12
3.2.5按键控制设计12
4、系统软件部分设计14
4.1软件总体设计思路14
4.2主程序说明14
4.3子程序说明17
4.4各个程序调用和被调用关系19
4.5编写程序时发现的问题19
5、总结与体会21
6、参考文献22
附录程序编写23
附录评分表39
1、功能需求分析及设计意义
1.1功能要求分析
多模式带音乐跑马灯系统要求采用MCS51作为主控芯片,驱动16个发光二极管做5种模式跑马灯灯亮方式,并带有音乐;
并且可实现速度控制,显示当前模式号,可手动或自动切换模式。
本设计的要求是设计一个有多种功能的跑马灯,有多种不同的显示方式,速度控制功能,这里的速度控制还有显示方式都是由单片机内部的程序控制,在这里我将16个光二极管接在P1和P2引脚上,通过程序控制这两个个端口的电平高低,将16个光二极管的负极接地,正极接P1和P2口,即发P1和P2口的相应端口为低电平时,发光二极管的两端都为低电平,所以发光二极管不亮,当发光二极管的相应端口为高电平时就能被点亮。
再通过程序循环的让各个端口以不同的方式点亮来达到走马的效果,并且当中要有一定的延时,延时时间大于人眼视觉暂留时间,否则人眼看上去每个灯都是亮的也就没有跑马效果。
单片机演奏一个音符,是通过引脚,周期性的输出一个特定频率的方波。
这就需要单片机,在半个周期内输出低电平、另外半个周期输出高电平,周而复始。
演奏时,要根据音符频率的不同,把对应的、半个周期的定时时间初始值,送入定时器,再由定时器按时输出高低电平。
1.2设计意义
跑马灯的应用十分广泛,主要以它的制作简便、价格低廉、信息醒目而得到人们的亲睐。
例如:
跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由多个LED发光二极管组成。
在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。
当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。
此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息,实际应用中也常通过“跑马灯”来监视是否死机。
证券业中常用“跑马灯”来显示不断变化的股票行情。
也可应用于各种建筑物,大楼,酒吧,KTV,夜总会等娱乐场所,拖尾灯,以及各种休闲娱乐场所用的动态灯光显示。
2、总体方案设计
本设计选择AT89C52作为主控芯片,16个发光二极管作为LED显示阵列,实现跑马灯的点亮功能;
7SEG-COM-AN-BLUE作为LED数码显示器,显示当前模式号;
SPEAKER作为音乐播放器,播放当前选择的音乐;
并设置了4个按键,利用中断来实现模式切换,音乐切换,加速,减速等功能。
系统方框图如下:
图2-1系统方框图
3、系统硬件部分分析及设计
3.1硬件总体设计
16个LED发光二极管的低电平------GROUND;
16个LED发光二极管的高电平------P1和P2;
LED数码管的共阴极------P3.0;
LED数码管的阳极-------P0.0~P0.6;
四个按键的低电平------GROUND;
自动按键高电平-------P3.2;
手动按键高电平-------P3.3;
减速按键高电平-------P3.4;
加速按键高电平-------P3.5;
SPEAKER高电平--------POWER;
SPEAKER低电平--------P3.7。
硬件总体设计图:
图3-1硬件总体设计图
3.2硬件各部分设计说明
3.2.1主控芯片AT89C52
a)AT89C52功能特性如下:
1、兼容标准MCS-51指令系统及80C51引脚结构
2、8kB可反复擦写(大于1000次)FlashROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器中断;
6、时钟频率0-24MHz;
7、2个串行中断,可编程UART串行通道;
8、2个外部中断源,共8个中断源;
9、2个读写中断口线,3级加密位;
10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;
11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。
b)AT89C52性能简介:
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2
个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的
Flash存储器可有效地降低开发成本。
c)AT89C52引脚图及引脚说明:
图3-2-1AT89C52引脚图
·
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端.这个反相放大器构成了片内振荡器
XTAL2:
振荡器反相放大器的输出端,与上述片内振荡器的反相放大器的输出端相接,作为单片机内部时钟电路的输入。
连接电路如图3-2-2。
图3-2-2振荡电路
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
电容既可以起到按键去除抖动的作用,还有一个更重要的作用就是上电复位,因为考虑到芯片刚刚上电时由于供电不稳定而做出错误的计算,所以增加一个上电复位以达到延时启动CPU的目的,使芯片能够正常工作。
虽然现在很多芯片自带了上电延时功能,但是我们一般还是会增加额外的上电复位电路,提高可靠性。
经计算复位时间约为6ms,远大于机器复位所需时间2us,充电电压约为2V。
图3-2-3复位电路
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节.一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
PSEN:
程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
本设计只需将该引脚接上POWER即可,表示先访问内部程序。
需注怠的是:
如果加密位LBI被编程,复位时内部会锁存EA端状态。
P0:
P0口是一组8位漏极开路型双向1/O口,也即地址/数据总线复用口。
作为输出口用时.每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FLASH由编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流IIL
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。
·
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电路。
对端口P2写“l"
,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIT)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2送出高8位地址数据。
在访问8位地址的外部数据存储器、如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
FLASH编程或校验时,P2亦接收高位地址和一些控制信号。
本设计考虑到P1和P2自带内部上拉电阻,因此不设计外部上拉电阻。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL).P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:
端口引脚
第二功能
P3.0
RXD(串行输入口〕
P3.1
TXD(串行输出口〕
P3.2
INTO(外中断0〕
P3.3
INTO(外中断l)
P3.4
TO(定时/计数器0)
P3.5
Tl(定时/计数器l)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
表3-1P3口第二功能
本设计用到P3.2和P3.3的第二功能。
3.2.2跑马灯设计
图3-2-4跑马灯设计电路
16个二极管按照一定顺序接在P1和P2各引脚上,达到一种美观的跑马灯效果。
当引脚输出高电平时,对应的二极管点亮。
由于二极管额定电压为2.2V,额定电流为10mA,因此串联一个470Ω的电阻,防止二极管被烧坏。
3.2.3模式显示设计
图3-2-5模式显示电路
选用7SEG-COM-AN-BLUE作为LED数码显示器,可以显示当前跑马灯的模式号,从P0输出段选信号,经过排阻降压,传递给LED数码管,高电平点亮对应LED中的发光二极管,即为共阴极LE