单片机原理课程设计报告-模拟霓虹灯控制器设计.doc_第1页
单片机原理课程设计报告-模拟霓虹灯控制器设计.doc_第2页
单片机原理课程设计报告-模拟霓虹灯控制器设计.doc_第3页
单片机原理课程设计报告-模拟霓虹灯控制器设计.doc_第4页
单片机原理课程设计报告-模拟霓虹灯控制器设计.doc_第5页
免费预览已结束,剩余8页可下载查看

下载本文档

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

文档简介

单片机原理课程设计报告题目:模拟霓虹灯控制器设计 专 业 电子信息工程班 级 电子04202姓 名 学 号 04305074指导老师 【摘要】文章介绍了利用美国atmel 公司生产的单片微机at89s52作为控制芯片,附加少许的外围电路,通过编程可以任意改变霓虹灯的变化花样和控制路数的霓虹灯控制器的设计方法。【关键词】 霓虹灯 控制器 at89s52 81c55 一、前言随着城市建设和市场经济的飞速发展,城市的美化和日益激烈的广告竞争越来越得到社会的关注,作为城市装饰和广告宣传的霓虹灯的需求量也越来越大。过去霓虹灯控制器多采用e2prom 和相应的逻辑电路来完成,现在也有采用一些专用霓虹灯控制芯片的控制器。前者所需电路较多,制作不易改变,且所需控制的霓虹灯路数越多,扩展起来也比较繁杂;而后者由于电路已作定,控制方式不能任意改变,功能较为单一。然而市场迫切需要低成本高性能的霓虹灯控制器技术。然而at89s52 单片机是可多次改写的可编程芯片,内部有8 kflash ram,含有4个8位双向或准双向的并行i/o接口p0p3,性价比相当高,适合成为霓虹灯程序控制器的核心部件。二、硬件原理分析(电路图(见附1)本系统主要由主控制模块、i/o接口电路、霓虹灯驱动电路、40路的霓虹灯组成。系统结构图如图1。控制器i/o接口电路霓虹灯驱动电路40路的霓虹灯系统结构图如图1本系统采用at89s52单片机作为核心控制器,外接81c55芯片扩展单片机i/o接口,通过对81c55的pa口作为发光管光柱的段码和单片机at89s52的p1作为发光管光柱的位码,来控制发光管的亮灭,以及判断81c55的pc口的状态值,选择由那种方式来显示霓虹灯。为了增加led发光管亮度,40路的led发光管外接非门740hc05a芯片作为驱动电路,来增加驱动电流。2.1显示模块该电路有40只led和驱动电路组成,四十只led的控制主要分为两部分,一部分是段控,另一部分就是位控,连接成五位共阳的位码和八位段码形式。当三极管的基极为低电平时,三极管处于导通状态,led的阳极处于高电平,如果led阴处于低电平,则led为亮状态。在整个电路中,40只led外接非门740hc05a芯片作为驱动电路,位的信号由89s52的p1口来控制,段控的驱动信号由81c55的pa口来提供,因此,只要控制单片机p1口输出电平和81c55 pa口的输出电平, 就能完成对40个led发光管的亮灭控制。2.2 键盘处理由图2.2可以看出,直接接81c55的pc口,因此此键盘为独立式键盘。当有拨码合上是,通过上拉电阻,pc口相应的位为低电平,四个拨码组成不同的键值是从8155的pc口读入的,根据不同的键值,来执行不同的功能。2.3 8155接口电路图2.3 81c55接口电路根据图2.3所示,8155的复位端由单片机的p1.7来提供,而p1.7也由软件程序来控制。通过主程序的初始化让8155的pa、pb工作于输出状态,让pc口工作于输入状态。8155的八根地址线直接接在at89s52的p0口,其ce片选信号由at89s52的p2.7来控制,io/m直接由p2.6来控制,8155的读写信号分别与单片机的读写信号相对应的接起来。三、软件设计由于考虑到要显示的状态比较多,每种状态都要有一定的寄存器,要是显示的状态越多,那寄存器也就需要越多,这样就造成寄存器比较浪费。而且40只的led位码和段码分别有单片机的p1口和8155的pa口控制,因此我开辟了两个缓冲区buf4和buf5用来存放p1口和pa口的值,而且读取pa口的值独立编写一个子程序,根据电路图,pa口的地址为7f01h,其程序框图如图3.1所示,供每种状态调用。buf4和buf5缓冲区里面的内容,根据相应状态在相应的中断子程序里定时修改缓冲区里的内容。1 主程序的设计由于要完成对40个led发光管的亮灭控制的状态比较多,又要使光带的显示随拨码状态的改变而改变,且每次拨码状态的改变,显示由每状态的初始状态开始,因此我开辟了两个缓冲区key和ykey分别放置键盘现在时刻(新)键值与原来的(旧)键值。当新键值不等与键值时,程序从新开始初始化缓冲区,直到新旧键值相等,然后再判断键值的大小,根据相应的值调用相应的状态子程序。主程序的框图如图3.2所示。2 中断服务主程序设计由于有12种不同的状态,且每种状态的led的亮的时间又不一样,因此中断服务主程序主要是根据不同的键值转移到相应的中断服务子程序。中断服务主程序的框图如图3.3所示图3.1 读取pa口程序框图 图3.2 主程序的框图 图3.3 中断服务主程序3 实现功能2:当拨码的第一位合上时,使光带的第一只发光管500ms亮500ms暗。根据功能2的要求,只要让pa口输出01h,让功能2的中断服务子程序每隔500ms让标志位flash0取反一下,根据flash0的值来执行p1.0置1或清零。程序流程图如图3.4。图3.4 功能2程序框图4实现功能4,当拨码的第一、第二位合上时,按适当速度使光带的第一、第二第三.第四十只发光管循环点亮,点亮第四十只后,再点亮第一只,依次类推。根据题意要求,要让40只的led从左到右移动,这样的循环,只要让led段码buf5缓冲区和位码buf4缓冲区分别置#01h,让buf5缓冲区的值每隔100ms左一次,在左8次之后,位码左移一次,同时让段码和计数器从新赋值,同时让计数器缓冲区buf2和buf3记录光带是否已经点亮到第40只,这样就可以实现题目的要求。其程序流程图如图3.5和图3.6所示。图3.5 功能4显示流程图图3.6 功能四中断服务程序流程图5要实现当拨码的第三位合上时,按适当速度、递增循序点亮光带的第一、第二第四十只发光管,点亮第四十只后,再按递减循序点亮第三十九、第三十八只第一只发光管,依次类推。要实现这样一个功能要分两部分分析:第一到第四十只的依次递增点亮和第四十到第一只依次递减点亮。前一部分的实现和功能4一样,不再分析。后一部分的实现,只要设置一个计数缓冲区buf6记录是否已经点亮到第40只,当buf6缓冲区里值大于40时,程序转移到执行从右到左的程序。程序显示流程图与功能4图3.5一样。其中断服务程序流程图如图3.7所示。 图3.7 功能5中断6 实现功能12,当拨码的第一、二、四位合上时,高十位(即第三十一至第四十只)发光管点亮,并按适当速度轮流点亮第一至第三十只发光管,点亮第三十只发光管后,灭第三十一只发光管。再开始灭带三十二只发光管的过程,即按同样速度轮流点亮第一至第三十一只发光管,点亮第三十一只发光管后,灭第三十二只发光管。直至所有发光管都被灭掉,再循环以上显示。根据功能12的要求,要实现这样的功能就不能采用前面(前九种功能)的单一的缓冲区buf5来控制段码。所以我设置了五个缓冲区led1、led2、led3、twled4、twled5分别来寄存pa口的值。让位码(p1口的值)每隔2ms 移位一次,其显示流程图如图3.8所示。图3.8 功能12显示流程图由于位码(p1口的值)每隔2ms 移位一次,所以段码(pa口的值)必须每隔10ms改变五个缓冲区的值。为了让高十位一开始一直点亮,其缓冲区led1、led2、led3的值都初始化为#00h,让twled4、twled5缓冲区的值分别初始为#0ch、#0ffh。通过计数器buf20判断灯是否亮到第31只,当灯亮到31时,让twled4第六位清零,即twled4值变为#08h。依次类推,实现灭32到40灯。其段码控制程序流程图如图3.9所示。省略a=3339 图3.9 功能12位码控制程序流程图四、软件调试由于8155的复位时间要比89s52的部位时间稍长首先,在测试硬件的过程中出现了一点的麻烦,这里花了比较长的时间。从总体的看,在这次整个编程过程中都比较顺,尤其是编1到9、11、12的功能的程序,基本上没发太多的时间就调试出来,在调试相应的子程序时,只要在调试窗口中调出相应的寄存器,通过设置断点,来观察寄存器的值是否是想要的结果。但在编第十种功能时出现了麻烦,程序调试了一天都没有结果。无奈之下我只好放弃原来编写的程序,从新再来,编写新程序,但这次经过稍微的调试很快第十种功能就完成了。因此我认为,果断的放弃也是一种美。五、学习体会自从编写完1200多条语句的程序后,自己的编程水平有了很大的进步。写程序的过程中遇到问题,然后自己看书自己解决问题,这样学习编程比课堂学习更有效。我的编程的水平还很菜鸟,我会不断努力学习,提高自己的编程水平。 六、结束语经过反复调试,该系统运行稳定,操作方便,达到了预期的设计效果。这说明采用单片机控制的方法制作电子作品,不失为一种很好的选择,因为这种方法使系统设

温馨提示

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

评论

0/150

提交评论