小型电子声光礼花器设计_第1页
小型电子声光礼花器设计_第2页
小型电子声光礼花器设计_第3页
小型电子声光礼花器设计_第4页
小型电子声光礼花器设计_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题 目 小型电子声光礼花器设计 学生姓名 李 特 学号 1213014074 所在学院 物理与电信工程学院 专业班级 电子信息工程专业12级3班 指导教师 帅春江 _ _完成地点 陕西理工学院 _ 2016年6月5日小型电子声光礼花器设计作者:李特(陕西理工学院 物理与电信工程学院 电子信息工程专业12级3班,陕西 汉中 723001)指导老师:帅春江摘要 小型电子声光礼花器是模拟礼花燃放装置,节日和庆典时燃放礼花,其绚丽缤纷的图案,热烈的爆炸声、欢乐的气氛,能给人们留下美好的印象。本次课题通过电子元器件完成控制、发声、发光、按键四个模块对传统礼花器效果进行实现,采用STC89C52RC单片机最小系统对电子礼花器各个部分进行实时控制,避免了传统礼花人为控制所存在的一定的烟尘污染和爆炸的安全隐患,采用蜂鸣器取代传统发声效果,并添加一定歌曲使音乐效果更加丰富,采用LED点阵取代传统花炮单一效果表现,展现更多种花型、字型很大程度弥补传统礼花的花型单调缺陷,采用按键开关对礼花器的进行进度实时控制,解决了传统礼花器的控制弊端。本课题设计可以模拟礼花燃放装置,达到声型兼备的效果,给人们在安全、环保的环境中带来轻松愉快的氛围。电路结构新颖元件不多、调试简单。可供小型企业工程技术人员开发设计参考。该装置可很大程度解决传统礼花器燃放带来的对空气污染问题,其可重复使用性更大程度上解决了人们重复使用的需求,并且电子礼花器的使用范围更加广泛,家庭聚会、联欢晚会、儿童玩具都可以使用。关键词 小型;礼花器;单片机 Design of Small Electronic Sound and Light FireworksAuthor:Te Li(Grade 12, Class 3, Major electronic1s and information engineering, School of Physics and Electronic Information Engineering, Shaanxi University of Technology, Hanzhong 723001, Shaanxi)Tutor: Chunjiang ShuaiAbstract: Small electronic sound and light fireworks are fireworks simulation device, when fireworks festival, a pattern of radiation, thermal explosion, festive atmosphere, giving a good impression. This paper is designed to simulate fireworks device to achieve the type of sound and effects by the electronic components ,some dust pollution and the risk of explosion hazard safety, environment, peoples environmental protection has brought a relaxed atmosphere. Use STC89C52RC smallest single-chip system for each part of the electronic fireworks, real time control.Use buzzer to replace the traditional sound effect .And add some songs make music richer effect.Use LED dot matrix instead of traditional fireworks show that can show more font and flower.The key switch to solve the drawbacks of tro=aditional fireworks device control.The The new circuit structure, element small, easy to debug, for homemade. It can also be used for small businesses open design engineering and technical personnel reference. The device can be used for family, friends, celebration, party, childrens toys and some interesting places Keywords: Small electronic acousto-optic ceremony Flower ;Festival fireworks ;Environmental protection 目 录1 引言11.1 课题研究的背景及意义11.2 课题研究的现状及发展趋势11.3 课题研究的内容12 总体方案设计22.1 设计要求22.2 方案选择22.2.1 单片机芯片的方案22.2.2 显示模块的方案22.2.3 发声模块的方案22.2.4 按键模块的方案23 系统硬件设计43.1 单片机控制模块43.1.1 STC89C52RC的简介43.1.2 STC89C52RC芯片的管脚、引线与功能43.1.3 单片机主控制模块电路63.2 显示模块73.2.1 8X8LED点阵简介73.2.2 8X8LED的引脚功能及结构73.2.3 8X8LED的工作原理83.2.4 16X16LED与单片机接口电路83.3 发声电路模块83.4 按键模块94 系统仿真104.1 仿真工具简介104.1.1 Proteus软件介绍104.1.2 Keil软件介绍104.2 主要程序设计流程114.3 部分源程序114.3.1 按键部分源程序114.3.2 声音播放部分源程序124.3.3 延时子函数源程序134.4 Proteus仿真135 系统硬件安装与调试175.1 硬件安装175.2 调试175.3 功能展示176 总结21致谢22参考文献23附录A 外文文献24附录B 中文译文32附录C 系统原理图37附录D 实物图38附录E 元器件清单39附录F C语言程序411 引言1.1 课题研究的背景及意义在工程上的目的和意义:每年世界各国节日和庆典时都会燃放礼花,其绚丽缤纷的图案,热烈的爆炸声所带来的欢乐的气氛,能给人们留下美好的印象,但是因为燃放烟花爆竹而破坏环境,烟花爆竹的不正确使用而发生各种危险的情况也时有发生。随着环境保护意识和自我保护意识的增强,我国各城市为了保护环境,预防一定的烟尘污染和爆炸危险隐患,相继出台了各项规定,节假日在市区范围内禁止燃放烟花爆竹。受到电子鞭炮的启发,本设计采用LED灯作为显示模块模拟礼花绽放时的形态,之所以用LED灯取代小型灯泡作为电子礼花器的显示器件,是因为LED灯具有节能,工作寿命长,亮度高,发光颜色多,响应快等优点。另外电子礼花器的发展与应用在节约能源、保护环境方面都具有重要的意义。在设计上的目的和意义:本课题研究的是小型电子声光礼花器主要通过单片机控制电路来驱动模拟礼花色彩的发光电路和模拟礼花爆炸声的发声电路,从而达到模拟礼花的燃放的装置,达到声型兼并的效果,电路结构新颖、元件不多、调试容易、适合自制,也可以供小型企业工程技术人员开放设计参考。1.2 课题研究的现状及发展趋势国外欧美发达国家极少生产烟花,其主要原因是生产,储存及运输过程中容易产生爆炸,非常危险。这些国家主要从发展中国家进口,中国作为火药发明国和火药生产的传统地,自然是最大的输出国。在国外也有一些发展中国家的专业厂家生产礼花器。这些企业对烟花生产的研究比较少,主要是对燃放效果进行研究,例如应用计算机来进行对燃放的时间和燃放的先后顺序的控制,以达到预期的燃放效果,给人们留下美好的视觉感受。我国是世界花炮市场中当之无愧的花炮的主要原产地,大约占世界花炮总产值的80%,年产值超过100亿元。湖南省的浏阳市是我国最大的烟花爆竹生产基地。礼花器是浏阳花炮中的主要出口产品,也是国内外举办各种庆典活动时必备的消费品,约占全市总产量的33%。现在,浏阳生产的礼花弹主要以黄板纸为材料,纸张等原辅材料的消耗高,边角废料的利用率低以及纸张价格的不断上涨,人们环保意识的不断增强已成为礼花弹发展的瓶颈。以年产礼花弹10万箱,创产值2000万元的企业为例,每年用来做礼花弹壳的黄板纸为150吨,按现行价格1900元/吨计算,需28.5万元。纸张的损耗高达35%,即每年有近6万元资金变成边角废料而白白流失。这种规模的企业每年各种纸张的边角废料高达30万吨,这不得不说是一笔非常惊人的浪费。然而仅限于目前的生产工艺,这种浪费是无可避免的1。电子礼花器的环保化是其发展的必然趋势,环保化可以使电子礼花器更加的市场化,并使电子礼花器进入更加广泛的应用领域,特别是在娱乐场所的应用,另外电子礼花器的发展与应用在节约能源、节约资源及保护环境方面都具有重要的意义。1.3 课题研究的内容本设计主要是分析对比烟花礼炮的优缺点。研究思路针对相对简单的电子技术来设计,重点针对电子礼花器发光部分的工作特性。本设计采用STC89C52RC芯片作为硬件核心,具有在线编程功能,低功耗,能于5V的超低压工作, 该芯片采用FlashROM,内部具有8KBROM存储空间。显示部分采用16X16的LED点阵,显示功能强大,可显示大量文字、图形,显示多样、清晰。并且使用74HC595芯片对LED显示电路进行外接,不仅减少了I/O口的占有率,而且为以后添加显示部分,从而使显示部件更加丰富提供了便利的条件。本设计针对电子礼花器,主要采用电子制作装置,由模拟礼花色彩的发光电路、模拟礼花爆炸声的发声电路和按键控制部分三部分构成。2 总体方案设计2.1 设计要求(1)模拟的礼花燃放声音要有0.1s1s的停顿时间;(2)效果模仿时,要将红绿蓝三个发光二极管呈三角形装置;(3)有条件可在发光的前方装置由透光口组成的礼花图案的面板。2.2 方案选择2.2.1 单片机芯片的方案方案(一):小型电子声光礼花器通过555振荡电路来驱动模拟礼花色彩的发光电路和模拟礼花爆炸声的发声电路,模拟礼花燃放装置,达到声型兼并的效果。方案(二):STC12C5A60S软件芯片对显示部件进行控制,使显示更加立体,丰富。方案(三):STC89C52RC是STC公司生产的一种功耗低、性能高CMOS8位微控制器,具有 8K 在线系统可编程Flash存储器。STC89C52RC使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单一芯片上,拥有8位CPU和在线系统可编程Flash,使得STC89C52RC为众多的嵌入式控制应用系统提供了高灵活、超有效的解决方案。具有以下的标准功能:8k字节的Flash,512字节的RAM,看门狗定时器,32位I/O 口线,内置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,2个外部中断,全双工串行口。另外STC89C52RC可降至0Hz静态逻辑操作 ,支持2种软件可选择节电模式2。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。下载程序方面直接串口就可以下载。本方案中用到的是STC89C52RC。2.2.2 显示模块的方案方案(一):LED点阵是由多个发光二极管封装在一起组成的器件,通过控制相应的二极管的状态显示相应的数字,花型,字母。LED数码管要正常显示,就要用驱动电路来驱动LED点阵显示多个LED,从而显示出我们要的数字,字母,花型。方案(二):LED发光二极管易于安装,组合花型,且便于复查,但考虑到显示电路不仅用于显示单一样式,所以方案一更适用于整体方案当中。方案(三):LED立体点阵,采用4X4X4LED发光二极管组成立体点阵,完成立体多重花型显示。经比较LED点阵的显示多样性,所以采用LED点阵为显示部件。2.2.3 发声模块的方案方案:采用单片机STC89C52RC芯片发声。STC89C52RC内部设置有3个16位定时器/计数器都具有计数方式和定时方式两种工作方式,STC89C52RC的定时功能是通过对外部晶振的提供的脉冲进行计数,从而达到控制发声电路功能,因此可以利用STC89C52RC的该功能实现控制蜂鸣器,从而达到发声系统的正常功能实现3。2.2.4 按键模块的方案方案:使用独立式键盘。独立式键盘是直接用I/O口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。综上各方案所述:采用STC89C52RC作为主控制系统,12M晶振提供时钟信号,LED16X16点阵作为显示部分,独立按键进行发声系统切换选择,蜂鸣器作为发声系统,系统框图如图2.1所示。 晶振模块(12MHz)STC89C52RC 主控模块外接电源 5V16X16LED点阵 按键模块蜂鸣器 图2.1 小型电子声光礼花器系统框图3 系统硬件设计3.1 单片机控制模块3.1.1 STC89C52RC的简介STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52RC使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单一芯片上,拥有8 位CPU 和在系统可编程Flash,使得STC89C52RC为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52RC具有以下的标准功能:1 8k字节Flash;2 512字节RAM;3 看门狗定时器;4 32 位I/O 口线;5 内置4KB EEPROM;6 MAX810复位电路;7 3个16位定时器/计数器;8 2个外部中断,全双工串行口;9 STC89C52RC 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止;10 最高运作频率35MHz,6T/12T可选;11 下载程序方面直接串口就可以下载2。STC89C52RC具有下列主要性能:1 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051;2 工作电压:5.5V3.3V(5V 单片机)/3.8V2.0V(3V 单片机);3 工作频率范围:040 MHz,相当于普通8051 的080 MHz,实际工作频率可达48 MHz;4 用户应用程序空间为8K字节;5 片上集成512 字节RAM;6 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需 加 上 拉 电 阻;7 ISP/IAP,无 需 专 用 编 程 器,无 需 专 用仿 真 器,可通过串口(RxD/P3.0,TxD/P3.1)直 接 下 载 用 户 程 序,数秒即可完成一片; 8 具有EEPROM 功能;9 具 有看 门 狗 功 能;10 共3 个16 位定时器/计数器。即定时器T0、T1、T2;11 外部中断2路,下 降 沿 中 断 或 低 电 平 触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒4;12 通 用 异 步 串 行 口(UART),还 可 用 定 时 器 软 件 实 现 多 个UART;13 工作温度范围:-40+85(工业级)/075(商业级);14 PDIP封装。3.1.2 STC89C52RC芯片的管脚、引线与功能STC89C52RC单片机的管脚说明如图3.1所示。图3.1 STC89C52RC管脚图1) 主要电源引脚1 VCC电源端;2 GND接地端。2) 外接晶体引脚XTAL1和XTAL21 XTAL1:接外部石英晶体的一端。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。2 XTAL2:接外部石英晶体的另一个端。在单片机内部,它是片内振荡器的反相放大器的输出端。采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMOS单片机,该引脚悬空不接。3) 控制或与其它电源复用引脚RST、ALE/、和/VPP1 :复 位 输 入 端。当 振 荡 器 运 行 时,在 该 引 脚 上 出 现 两 个 机 器 周 期的 高 电 平 将 使 单片机复位。2 ALE/:地址锁存有效信号输出端。在访问片外程序存储器期间,ALE以每机器周期两次进行信号输出,其下降沿用于控制锁存P0输出的低8位地址。在不访问片外程序存储器时,ALE端仍以上述的频率(振荡频率的1/6),出现,可作对外输出的时钟脉冲或用于定时目的。但要注意,在访问片外数据存储器时,ALE脉冲会跳空一个。对于片内含有EPROM的机型,在编程期间,该引脚用作编程脉冲()5。3 :片外程序存储器读选通信号输出端,低电平有效。当STC89C52RC从外部程序存储器读取指令或常数期间,在每个机器周期内该信号两次有效。以通过数据总线P0口读回指令或常熟。在访问片外数据存储器期间, 信号将不出现。4 /VPP:为片外程序存储器选用端。该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。 4) 输入/输出引脚 P0.0P0.7、P1.0P1.7、P2.0P2.7 和P3.0P3.71 P0端口(P0.0P0.7):P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需 加 上 拉 电 阻,在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。2 P1端口(P1.0P1.7):P1口是一个带有内部上拉电阻的8位I/O口,P1的输出缓冲级可以驱动4个TTL逻辑门电路。可作为准双向I/O口。对于52子系列,P1.0与P1.1还有第二功能:P1.0可用作定时/计数器2的计数脉冲输入端T2;P1.1可用作定时/计数器2的外部控制端T2EX。3 P2端口(P2.0P2.7):P2口是一个带有内部上拉电阻的8位I/O口,P1的输出缓冲级可以驱动4个TTL逻辑门电路。可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256B时,P2口用作高8位地址总线。4 P3端口(P3.0P3.7):P3口是一个带有内部上拉电阻的8位I/O口,P1的输出缓冲级可以驱动4个TTL逻辑门电路。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3口的第二功能见表3.1. 表3.1 P3端口的特殊功能端口引脚兼 用 功 能P3.0RXD (串行口输入端)P3.1TXD (串行口输出端)P3.2 (外部中断0请求输入端,低电平有效)P3.3 (外部中断1请求输入端,低电平有效)P3.4T0 (定时/计数器0计数脉冲输入端)P3.5T1 (定时/计数器1计数脉冲输入端)P3.6 (外部数据存储器写选通信号输出端,低电平有效)P3.7 (外部数据存储器读选通信号输出端,低电平有效)3.1.3 单片机主控制模块电路 单片机控制系统如图3.2所示,18引脚和19引脚接振荡电路,XTAL1和XTAL2分别接外部12MHz的石英晶振和33pF电容的一端,在片内它们分别是振荡器倒相放大器的输入和输出。第9引脚为复位输入端,接上电容,电阻后构成上电复位电路,20引脚为接地端,40引脚为5V电源端。单片机最小系统一般应该包括:单片机、时钟电路、复位电路、输入/ 输出设备等。此设计中P2口作为输出口用来驱动LED显示。图3.2 单片机控制系统3.2 显示模块3.2.1 8X8LED点阵简介LED显示屏是一种通过控制半导体发光二极管的显示方式,可以用来制作显示文字、图形、图像、动画、视频、录像信号等各种信息的显示屏幕。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况6。LED显示屏显示画面清晰,色彩鲜艳,立体感强,给人一种身临其境的感觉。LED显示屏现已广泛应用于路口的广告牌、车站、火车站、码头、机场、小型商铺、大型商场、医院、宾馆、银行等其它公共场所。它的优点是亮度高、工作电压很低、功耗较小、小型化、组装简单、容易与集成电路相互匹配、驱动电压电流较低、寿命很长、耐冲击能力强、性能稳定。3.2.2 8X8LED的引脚功能及结构LED(8X8)点阵的引脚排列及内部结构,图3.4为88点阵LED外观及引脚图,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。图3.4 8X8点阵LED外观及引脚图3.2.3 8X8LED的工作原理LED阵列的显示方式是按显示编码的顺序,一行一行地显示。每一行的显示时间大约为3.2ms,由于人类的视觉暂留现象,将感觉到8行LED是在同时显示的。若显示的时间太短,则亮度不够,若显示的时间太长,将会感觉到闪烁。本文采用低电平逐行扫描,高电平输出显示信号。即轮流给行信号输出低电平,在任意时刻只有一行发光二极管是处于可以被点亮的状态 ,其它行都处于熄灭状态。3.2.4 16X16LED与单片机接口电路电路原理图如图3.6所示,16X16LED与 单 片机 的 连 接 需要32条线,为了节省I/O口的占用率,本设计采用了4块74HC595来驱动LED点阵,当单片机接收到有按键按下的信号时,会把数据和时钟信号传递给74HC595,74HC595会在时钟信号的上升沿时将接收到的数据存储在移位寄存器中,在下一个上升沿时将移位寄存器中的数据存进数据锁存器中,当输出信号有效时,就会将锁存器中的数据通过输出端并行输出,从而点亮LED点阵。图3.6 16X16LED与单片机的连接电路原理图3.3 发声电路模块实际使用时,用8550三极管来驱动蜂鸣器。但是仿真时,因为软件中没有8550,选择了lm386来替代8550来做仿真。如图3.7所示。扬声器一管脚接入lm386输出端,另一管脚接地,lm386的输入端一个接STC89C52RC的P2.4输出管脚,另一个接地。如图所示,当STC89C52RC芯片接入电源,控制系统正常运作,使得lm386 内部其中一个三极管的VcVbVe,使得集电结反偏,发射结正偏,管子发射极电流流入管子,基极电流和集电极电流流出管子,完成三极管的放大控制作用9,实现蜂鸣器音乐播放。图3.7 蜂鸣器模块电路3.4 按键模块如图3.8所示,为独立按键模块。K1接单片机的P1.0口,当K1被按下时,单片机接收到K1被按下的信号,通过程序控制点亮LED点阵上相应的LED灯,达到显示汉字的效果。K2接单片机的P1.1口,当K2被按下时,单片机接收到K2被按下的信号,通过程序控制点亮LED点阵上相应的LED灯,达到显示图形的效果。K3接单片机的P1.2口,当K3被按下时,单片机接收到K3被按下的信号,通过程序控制点亮LED点阵上相应的LED灯,达到显示花型的效果。K4接单片机的P1.3口,当K3被按下时,单片机接收到K3被按下的信号,通过程序控制点亮LED点阵上相应的LED灯,达到连续显示汉字,图形,花型的效果。K5接单片机的P1.4口,当K5被按下时,单片机接收到K5被按下的信号,通过程序控制,自动跳转到音乐播放子程序,达到播放音乐的效果。图3.8 独立按键模块4 系统仿真4.1 仿真工具简介4.1.1 Proteus软件介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐8。它是一个集模拟电路、数字电路、模数混合电路以及多种微控制器系统为一体的系统设计和仿真平台,是 目 前 世 界 上 唯 一 将 电 路 仿 真 软 件 、 P C B 设 计 软 件 和 虚 拟 模 型 仿 真 软 件 三 者 结 合 为 一 体 的 设 计 平 台 , 其 处 理 器 模 型 支 持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续添加其它系列的处理器模型。在 编 译 这 方 面,它也支持IAR、Keil和MPLAB等 多 种 编 译 器 的 使 用。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计10。功能特点:Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:原理布图;PCB自动或人工布线;SPICE电路仿真。革命性的特点1互动的电路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。2仿真处理器及其外围电路,可以仿真51系列、AVR、PIC、ARM、等常用主流单片机11。 4.1.2 Keil软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil的主界面如图4.1所示图4.1 keil主界面Keil使用说明:启动Keil 建立一个工程 选择工程保存位置 选择单片机(MCU)型号 Keil弹出对话框询问是否将初始化代码一起加入工程 建立.c文件 将.c文件添加到工程 开始编写程序 写完程序后,点“编译”“链接” 编译成功后,生成HEX文件,将生成的HEX装载到仿真单片机完成相应的功能12。4.2 主要程序设计流程该系统软件采用C语言设计,系统的软件设计方法与硬件设计相对应, 在程序设计中采用模块化设计思想,能使程序可读性加强,而且编写时很方便,将要实现的功能分成几部分,由于某些功能使用不只一次,将它编成一个子程序既可随时多次调用,修改时也不会影响其他程序。整个软件系统采用C51编程,主要实现以下功能:1 LED的驱动;2 按键的识别;3 扬声器的发声;4 16X16点阵;电子礼花器的设计流程如图4.2所示。开始初始化标志位蜂鸣器播放蜂鸣器子程序按键子程序LED点阵子程序LED点阵初始化蜂鸣器初始化 图4.2 电子礼花器设计流程4.3 部分源程序4.3.1 按键部分源程序unsigned char Key_Scan()unsigned char keyValue = 0 , i; /保存键值/-检测按键1-/if (GPIO_KEY != 0xFF) /检测按键K1是否按下delay(10); /消除抖动if (GPIO_KEY != 0xFF) /再次检测按键是否按下keyValue = GPIO_KEY;i = 0;while (i50) & (GPIO_KEY != 0xFF) /检测按键是否松开delay(10);i+;return keyValue; /将读取到键值的值返回4.3.2 声音播放部分源程序 void song() unsigned char p,m; /m为频率常数变量 unsigned char i=0; TMOD&=0x0f; TMOD|=0x01; TH0=0xd8;TL0=0xef; IE=0x82; play: while(1) a: p=music_tabi; if(p=0x00) i=0, delayms(1000); goto play; /如果碰到结束符,延时1秒,回到开始再来一遍 else if(p=0xff) i=i+1; delayms(100), TR0=0; goto a; /若碰到休止符,延时100ms,继续取下一音符 else m=music_tabi+, n=music_tabi+; /取频率常数和节拍常数 TR0=1; /开定时器1 while(n!=0) beep=beep,delay1(m); /等待节拍完成, 通过P1口输出音频 TR0=0; /关定时器1 4.3.3 延时子函数源程序 void delay(uint dt) uint i; uchar bt; for(i=0;idt;i+) for(bt=0;bt200;bt+); 4.4 Proteus仿真如图4.3为系统仿真总图。为了更好地对小型电子礼花器进行功能控制,在这里运用Proteus仿真软件实现单片机STC89C52RC对各模块控制的模拟运行。图4.3 系统仿真总图下面是对各部分功能仿真过程的详细介绍:1 如图4.4所示为“陕”的仿真图。图4.4 “陕”的仿真图源程序void Bmp1()uchar i,k; P2=0; beep=1; delay(100); beep=0; for(k=0;k1;k+) for(i=0;iDELAYNUM;i+) display(Bmpk); 取表代码0x02,0xF2,0x02,0x12,0x02,0x16,0x3F,0x8A,0x02,0x82,0x12,0x42,0x0A,0x22,0x02,0x12, 0x7F,0xEA,0x06,0x12,0x06,0x1E,0x08,0x00,0x08,0x0A,0x10,0x46,0x20,0x8A,0x40,0x12,/陕2 如图4.5所示为图形的仿真图图4.5 “”的仿真图源程序void Bmp2() uchar i,k; P2=0; beep=1; delay(100); beep=0; for(k=6;k7;k+) for(i=0;iDELAYNUM;i+) display(Bmpk); 取表代码0x00,0x10,0x01,0x40,0x00,0x00,0x02,0x80,0x00,0x00,0x04,0x00,0x10,0x00,0x40,0x00,0x10,0x80,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x40,0x00,0x20,0x00,0x04,/3 如图4.6所示为花型的仿真图。图4.6 “爱心”的仿真图源程序void Bmp3() uchar i,k; P2=0; beep=1; delay(100); beep=0; for(k=9;k10;k+) for(i=0;iDELAYNUM;i+) display(Bmpk); 取表代码0x00,0x08,0x38,0x10,0x44,0x20,0x42,0x40,0x41,0x80,0x40,0x00,0x40,0x00,0x40,0x00, 0x20,0x84,0x10,0x44,0x08,0x38,0x04,0x00,0x02,0x04,0x01,0x04,0x00,0x04,0x00,0x04,/爱心4 循环显示时的源程序。void xunhuan() uchar i,k; P2=0; for(k=0;k10;k+) beep=1; delay(100); beep=0; for(i=0;iDELAYNUM;i+) display(Bmpk); 5 系统硬件安装与调试5.1 硬件安装 硬件部分主要通过万用板电路焊接将各个部分拼接在一起,其组成有控制模块、发声模块、发光模块、按键模块。在焊接过程中,由于焊接工作太多,线路太多,且使用线路过细,容易断裂导致整体线路接触不良经常出现短路、断路等问题,遂再复查过程中更换掉之前焊接使用的细线,换用粗线,这次不仅线路的实用性得到了大大提升,粗线也提供了一定的支撑作用,使整体线路更加稳固。但LED点阵发光模块依旧存在显示乱码问题无法实现显示花型,显示亮度太弱,经过使用万用表对电路进行检测并且积极与同学和老师探讨,初步排除电路焊接问题。经过再三的检查,最终发现是因为电路设计的时候,LED发光模块的上拉电阻的阻值为220,而我焊接的时候焊接了1K的电阻,因为电阻太大,导致LED俩端的电压太低,LED的驱动电压不够,所以LED发光很微弱,无法正常显示,发现问题后,我就把LED俩端的电阻拆除,LED发光模块可以正常的点亮。LED可以点亮的时候,我就结合软件程序对电路进行了测试,结果LED显示出现了乱码,经过再三检查,初步排除了软件程序的问题,再一次对电路进行了检查没有发现问题,所以确定是芯片的问题,更换了芯片之后,LED点阵可以正常显示字符和花型。5.2 调试调试分为硬件调试和软件调试。硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。单片机的显示电路、键盘电路、扬声器电路是本次设计的主要硬件电路。在搭接实物之前要检查各器件的性能是否符合要求。如导线是否导通,芯片是否性能完好等。还有通过编制一些小的调试程序分别对相应各硬件单元电路的功能进行检查。其次,进行软件的调试。先验证子程序的正确性,再将这些子程序连接起来进行整体的调试。逐渐的发现错误并改正错误。 最后进行软硬件结合调试。检查硬件电路与软件编程是否匹配。 第一部分进行显示电路的调试,观察LED的显示。检查屏幕画面,以及能否正确的显示。在调试过程中有时候出现了乱码,通过不断的调整直到能够清晰准确显示为止。仿真的时候LED模块的扫描方式为列扫描,而我又没有弄清楚我的LED模块的具体扫描方式,所以LED显示模块一直出现乱码的问题,最后我经过看资料,一个一个的测试,终于了解了我自己的LED显示模块的具体扫描方式为行扫描方式,遂对程序进行了多次的修改,测试。最终终于可以显示正常的汉字和各种花型。第二部分对电路进行整体的调试。接好整体的硬件电路,并且配合编好的软件程序运行,在调试中进一步的完善系统的设计。5.3 功能展示通过对电路不断的调试,本设计基本符合设计任务的要求,完成了任务的部分要求,通过按键的控制,可以独立的显示汉字,图形和花型,也可以通过按键的控制,完成自动循环显示汉字,图形和花型。本设计可以通过按键来控制,用蜂鸣器来播放音乐。以下是对显示部分的功能展示当按下按键K1,K2,K3时,LED点阵可以分别显示汉字“陕”,图形“”,和花型“爱心”;当按下按键K4时,LED点阵可以连续显示“陕”“西”“理”“工”“学”“院”“”“”“爱心”“花朵”;当按下按键K5时,蜂鸣器可以播放音乐。1) 显示各种汉字时的图片如图5.1,图5.2,图5.3,图5.4,图5.5,图5.6所示。当按下按键K1时,LED点阵显示“陕”时的图片如图5.1所示,当按下K4连续显示时,显示“西”时的图片如图5.2所示。 图5.1 显示“陕” 图5.2 显示“西”当按下K4连续显示时,显示“理”时的图片如图5.3所示,显示“工”时的图片如图5.4所示。 图5.3 显示“理” 图5.4 显示“工”当按下K4连续显示时,显示“学”时的图片如图5.5所示,显示“院”时的图片如图5.6所示。 图5.5 显示“学” 图5.6 显示“院”2) 显示各种图型时的图片如图5.7,图5.8所示。当按下按键K2时,LED点阵显示“”时的图片如图5.7所示,当按下K4连续显示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论