毕业设计(论文)基于单片机的广告彩灯.doc
基于单片机的广告彩灯Xxxxxxxx 计算机科学与技术 15555555555 xxxxx 指导教师:xxxx【摘 要】 AT89C51单片机是一种带4K字节闪烁可编程可檫除只读存储器的低电压,高性能的CMOS 8位微处理器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。本设计是基于AT89C51单片机的广告彩灯,利用在超想3000TC开放式综合实验/仿真系统上实现具有广告彩灯效果。在硬件允许的条件下用汇编语言实现模拟效果,具体实现的功能有:键盘扫描功能,LED八段数码管的显示功能,五种模式的彩灯效果功能,点阵广告屏显示功能等。【关键词】 单片机;电路控制;彩灯;AT89C51 目 录1引言12关于单片机12.1.单片机及本系统所用的AT89C51单片机介绍12.2.单片机的分类22.3.单片机的发展与应用22.4.广告彩灯介绍23系统设计33.1.设计要求33.1.1硬件电路设计33.1.2软件设计33.2.总体设计方案33.3.系统简要原理介绍44设计软件及关键元器件简单44.1.KEIL简介45各模块显示原理55.1.广告彩灯显示电路原理55.2.点阵LCD液晶显示屏原理55.3.控制电路原理65.4.晶体振荡与复位电路设计65.5.仿真器上电路原理65.5.1中断原理65.5.2数据串并传输原理65.5.3 LED数码显示原理75.5.4彩灯显示原理75.5.5键盘扫描原理86软件设计86.1.主程序流程图86.2.发光二极管显示流程图96.3.LED八段数码管显示流程图106.4.键盘扫描流程图116.5.点阵LCD液晶显示屏程序流程图127调试及性能分析127.1.实验器材及硬件连线127.2.软件运行127.3.实验效果显示128总 结14附录一 元器件清单一览表15附录二 程序清单15参考文献301引言随着人们生活环境的不断改善和美化,在许多场合可以看到广告彩灯。LED广告彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用 彩灯来装饰街道和城市建筑物已经成为一种时尚。基于单片机的广告彩灯是利用单片机来控制彩灯以致达到广告的效果。自20世纪80年代后期开始,随着LED制造技术的不断完善,在国外得到了广泛的应用。在我国改革开放之后,特别是进入90年代国民经济高速增长,对公众场合发布信息的需求日益强烈,广告彩灯的出现正好适应了这一市场形势,因而在广告彩灯的设计制造技术与应用水平上都得到了迅速的提高。广告彩灯经历了从单色、双色,到图象广告灯,一直到今天的全彩色广告灯的发展过程。无论在期间的性能(提高LED亮度及实现控制更加多样化等)和系统的组成(计算机化的硬件系统)等方面都取得了长足的进步。目前已经达到的超高亮度全彩色广告灯的水平,可以说能够满足各种应用条件的要求。其应用领域已经遍及交通、证券、电信、广告、宣传等各个方面。我国广告彩灯的发展可以说基本上与世界水平同步,至今已经形成了一个具有相当发展潜力的产业。应该指出的是,我国LED产业不但在应用技术上取得了巨大的成功,而且在创新能力上有出色的表现。经过我们广告彩灯业的不断发展,目前,我国已有多种样式新颖,功能齐全的广告灯。例如:三路广告彩灯,红外遥控的广告彩灯,音乐循环彩灯,自动切换色光双向流彩灯,收音机附加广告彩灯,追逐式广告彩灯等。基于单片机的广告彩灯在日常生活中的应用无处不在,其结构、电路简单、花型容量大,体积小,功耗低,可靠性高,成本低廉,在目前城市个性化的要求下,在大型灯会、舞台灯光控制、广场灯光控制场所等有具有极好的市场前景。单片机广告彩灯控制电路大体上可分两大类:一类是单片机固化程序控制器,这类控制器也称专用彩灯控制器,它是把彩灯闪烁变化的程序在制作集成芯片时,就已设计好,并固化在芯片内,用户只需配接适当的电源及外电路,就可按块内程序闪烁发光。另一类就是单片机编程控制器,这类控制器的闪光程序,并没有事先设计好,用户要制作这类彩灯控制器,就要根据闪光变化的需要来设计程序,然后依靠计算机或仿真器的帮助把编好程序烧录到单片机内,用户只要连接好电源与外电路,彩灯便可按照厂家设计的程序闪烁。2关于单片机2.1.单片机及本系统所用的AT89C51单片机介绍单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上,本次设计采用的是AT89C51.单片89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案机89C51主要包括算术/逻辑部件ALU、累加器A(有时也称ACC)、只读存储器ROM、随机存储器RAM、指令寄存器IR/程序计数器PC、定时器/计数器、I/O接口电路、程序状态寄存器组,堆栈寄存器SP、数据指针寄存器DPTR等部件。 MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O线等一台计算机所需要的基本部件。单片机内包含下列几个部件:一个8位CPU,一个片内振荡器及时钟电路,4K字节ROM程序存储器,128字节RAM数据存储器,两个16位定时器/计数器,可寻址64KB外部数据存储器和64KB外部程序存储器空间的控制电路,32条可编程的I/O线(4个8位并行I/O端口),五个中断源、两个优先级嵌套结构。如图: 图 2-1 AT89C51引脚图2.2.单片机的分类 ATMEL公司的AVR单片机、MOTOROLA单片机、MDT20XX系列单片机、SCENIX单片机、EPSON单片机、东芝单片机、8051单片机、ZILOG单片机、NS单片机、华邦单片机等等。2.3.单片机的发展与应用单片机的应用在后PC时代得到了前所未有的发展,但对处理器的综合性能要求也越来越高。综观单片机的发展,以应用需求为目标,市场越来越细化,充分突出以“单片”解决问题,而不像多年前以MCS51/96等处理器为中心,外扩各种接口构成各种应用系统。单片机系统作为嵌入式系统的一部分,主要集中在中、低端应用领域(嵌入式高端应用主要由DSP、ARM、MIPS等高性能处理器构成),在这些应用中,目前也出现了一些新的需求,主要体现在以下几个方面:(1)以电池供电的应用越来越多,而且由于产品体积的限制,很多是用钮扣电池供电,要求系统功耗尽可能低,如手持式仪表、水表、玩具等。(2)随着应用的复杂,对处理器的功能和性能要求不断提高。既要外设丰富、功能灵活,又要有一定的运算能力,能做一些实时算法,而不仅仅做一些简单的控制。(3)产品更新速度快,开发时间短,希望开发工具简单、廉价、功能完善。特别是仿真工具要有延续性,能适应多种MCU,以免重复投资,增加开发费用。(4)产品性能稳定,可靠性高,既能加密保护,又能方便升级。2.4.广告彩灯介绍 LED广告彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用 彩灯来装饰街道和城市建筑物已经成为一种时尚。基于单片机的广告彩灯是利用单片机来控制彩灯以致达到广告的效果。自20世纪80年代后期开始,随着LED制造技术的不断完善,在国外得到了广泛的应用。在我国改革开放之后,特别是进入90年代国民经济高速增长,对公众场合发布信息的需求日益强烈,广告彩灯的出现正好适应了这一市场形势,因而在广告彩灯的设计制造技术与应用水平上都得到了迅速的提高。 广告彩灯经历了从单色、双色,到图象广告灯,一直到今天的全彩色广告灯的发展过程。无论在期间的性能(提高LED亮度及实现控制更加多样化等)和系统的组成(计算机化的硬件系统)等方面都取得了长足的进步。目前已经达到的超高亮度全彩色广告灯的水平,可以说能够满足各种应用条件的要求。其应用领域已经遍及交通、证券、电信、广告、宣传等各个方面。我国广告彩灯的发展可以说基本上与世界水平同步,至今已经形成了一个具有相当发展潜力的产业。应该指出的是,我国LED产业不但在应用技术上取得了巨大的成功,而且在创新能力上有出色的表现。经过我们广告彩灯业的不断发展,目前,我国已有多种样式新颖,功能齐全的广告灯。例如:三路广告彩灯,红外遥控的广告彩灯,音乐循环彩灯,自动切换色光双向流彩灯,收音机附加广告彩灯,追逐式广告彩灯等。基于单片机的广告彩灯在日常生活中的应用无处不在,其结构、电路简单、花型容量大,体积小,功耗低,可靠性高,成本低廉,在目前城市个性化的要求下,在大型灯会、舞台灯光控制、广场灯光控制场所等有具有极好的市场前景。3系统设计3.1.设计要求 利用集成在单片机内部的接口、实现并串行数据传输、定时计数控制、中断等功能、键盘扫描功能、LED八段数码管的显示功能、点阵广告屏显示功能、完成具有多种状态变化的广告彩灯。3.1.1硬件电路设计 供电电源模块;控制模块,键盘扫描模块,LED八段数码管显示模块,数据输入模块,数据输出模块,系统总线模块,电源监控“看门狗”模块。 3.1.2软件设计 A、主要利用单片机控制各种彩灯变换状态、各种彩灯变速控制。 B、键盘控制报警。 C、通过键盘扫描来转变彩灯的输出模型。 D、LED八段数码管显示。 F、点阵LCD液晶显示屏3.2.总体设计方案 在硬件上,由于本设计是利用在超想3000TC开放式综合实验/仿真系统上实现具有广告彩灯效果及具有点阵LCD液晶显示屏显示效果,因此在硬件上,只需用若干根线连接相应的端口。 8051的P1.0-P1.7接八个发光二极管,控制发光二极管的亮与暗。本此设计共设计五中发光模式,通过人工按下键盘上的键来调用相应的彩灯模型,键盘1可以使得彩灯实现从左到右的循环,同时8段数码显示管显示1;键盘2可以实现彩灯全闪、全灭的功效,同时8段数码显示管显示2;键盘3可以实现彩灯奇、偶灯的闪烁,同时8段数码显示管显示3;键盘4可以实现彩灯有内往外扩的效果,同时8段数码显示管显示4;键盘5可以实现前四种功效的循环,同时8段数码显示管显示1,2,3,4 ;键盘上7,8,9三个键是控制彩灯键,其中按下7可实现彩灯的变速,同时8段数码不显示;按下8可石彩灯显示停止,同时8段数码显示管显示0;按下9则可实现系统的报警,同时8段数码显示管显示0。同时在整个设计中点阵LCD液晶显示屏都显示福建师范大学闽南科技学院欢迎您! 图 3-2 系统电路原理3.3.系统简要原理介绍 设计分为键盘扫描模块、LED显示模块、五种彩灯(加速)显示模块、报警模块、点阵LCD液晶广告屏模块。根据键盘是否有按下,若有按下,则根据键盘上的值去调用相应键盘值的二极管灯的显示模块,同时调用该键盘值上的LED显示模块。如此,根据键盘上的实时扫描来进行二极管的显示和相应键盘值的LED显示,同时将显示点阵广告屏上相应的图形,从而丰富系统。若系统发生异常现象,可用人工方式来触发报警系统,用音效的方式来告知用户。 4设计软件及关键元器件简单4.1.KEIL简介 KEIL C51 U VISION2 是德国KEIL公司开发的基于WINDOWS环境的8051软件开发平台,它集项目管理、源程序编辑、程序调试于一体,是一个强大的集成开发环境。U VISION2支持KEIL的各种8051工具,包括:C编译器,宏汇编译器、连接/定位器及OBJECT-HEX转换程序,可以帮助用户快速有效的实现嵌入式系统的设计与调试。采用C语言进行单片机系统的开发,具有避免手工分配寄存器,移植容易等优点。恒科KEIL C超级仿真器的优点: 1、仿真8031内核的单片机。2、接支持KEIL C51的IDE开发仿真环境,63K用户程序空间。3、全保留单片机特性,避免仿真正常而实际烧录芯片不正常的问题。4、仿真频率040MHZ晶振可选。5、程序代码可重复转载。6、监控程序占用用户资源较少,全速运行不占用资源。7、可在KEIL U VISION2下单步、断点、全速,可参考变量、RAM变量、结构变量等。8、支持汇编、C语言、混合调试。9、内部存储物理空间为68K,是伟福通用仿真器G6型的7倍,是伟福51专用仿真器的4倍。10、仿真频率可达40MHZ。11、支持10个硬件断点。 在KEIL C51集成开发环境是使用工程方法来管理文件的,而不是单一文件的模式。所有的文件包括源文件程序(包括C程序,汇编程序)、头文件、甚至说明性的技术文档都可以放在工程项目文件里面统一管理。在使用KEIL C51之前。您应该习惯这种工程的管理方式,对于刚刚使用KEIL C51的用户来说,一般可以按照下面的步骤创建一个自己的KEIL C51应用程序。1、建一个项目文件。2、工程选择一个目标器件(如ATMEL89C52)。3、创建源程序文件并输入程序代码且保存。4、把源文件添加到项目中。5、为工程项目设置软硬件调试环境。6、编译项目文件。7、硬件或者软件调试。5各模块显示原理5.1.广告彩灯显示电路原理 8051的P1.0-P1.7接八个发光二极管,控制发光二极管的亮与暗。本此设计共设计五中发光模式,通过人工按下键盘上的键来调用相应的彩灯模型,键盘1可以使得彩灯实现从左到右的循环,同时8段数码显示管显示1;键盘2可以实现彩灯全闪、全灭的功效,同时8段数码显示管显示2;键盘3可以实现彩灯奇、偶灯的闪烁,同时8段数码显示管显示3;键盘4可以实现彩灯有内往外扩的效果,同时8段数码显示管显示4;键盘5可以实现前四种功效的循环,同时8段数码显示管显示1,2,3,4 ;键盘上7,8,9三个键是控制彩灯键,其中按下7可实现彩灯的变速,同时8段数码不显示;按下8可石彩灯显示停止,同时8段数码显示管显示0;按下9则可实现系统的报警,同时8段数码显示管显示0。5.2.点阵LCD液晶显示屏原理 本次设计学用的122*32A点阵式液晶LCD,是内置SED1520液晶显示控制器的屏,它集行、列驱动器和控制器于一体,被广泛应用与小规模液晶显示模块中。SED1520内置2560位显示RAM区,RAM中的1位数据控制液晶屏上的 一个像素的亮、暗,“1”为亮,“0”为暗。它具有16个行驱动输出和61个列驱动输出,可以直接与80系列的 CPU相连,驱动占空比为三十二分之一,本次实现内容为:福建师范大学闽南科技学院欢迎您! 图 5-2 点阵LCD液晶显示屏5.3.控制电路原理 本设计分为键盘扫描模块,LED显示模块,发光二极管灯(加速)显示模块。报警模块。根据键盘是否有按下,若有按下,则根据键盘上的值去调用相应键盘值的二极管灯的显示模块,同时调用该键盘值上的LED显示模块。如此,根据键盘上的实时扫描来进行二极管的显示和相应键盘值的LED显示。若系统发生异常现象,可用人工方式来触发报警系统,用音效的方式来告知用户,在这个显示变动中,点阵LCD液晶显示屏都显示着福建师范大学闽南科技学院欢迎您!5.4.晶体振荡与复位电路设计 为了产生时钟信号,在8051内部设置了一个反相放大器,XTAL1是片内振荡器反相器的输入端。XTAL2是片内振荡器反相放大器的输出端,也是内部时钟发生器的输入端。当使用自激振荡方式时:XTAL1和XTAL2外接石英晶振,使内部震荡器按照石英晶振的频率振荡,即产生时钟信号。 当使用外部信号源为8051提供时钟信号时:XTAL1应接地,XTAL2接外部信号源。使用89C51引脚的RST/VPDA为复位、备用电源输入端。5.5.仿真器上电路原理5.5.1中断原理 中断原理,就是指计算机(单片机) 暂时停止原程序的执行,转而为外部设备服务(即常说的执行中断服务程序);服务完成后,计算机(单片机)会自动返回原程序暂停处继续执行程序的一种过程。中断是由中断源产生的,中断源在需要时可以向CPU提出“中断请求”。 “中断请求”通常是一种电信号,CPU一旦对这个电信号进行检测和响应.当系统有按键按下,表示该引脚的电平为高电平,系统会自动转到中断的入口地址执行中断子程序。在本设计中有一个中断源,分别接相应的按钮,利用人工执行来实现中断。5.5.2数据串并传输原理 数据串并传输原理:74LS164 为串入并出译码器,AT89C51通过串行口输出的BCD串行码经74LS164译码输出为七段BCD码,直接与LED的AG相连。八段数码管如图 图5-5-3 八段数码管5.5.3 LED数码显示原理 LED数码显示原理:LED数码管是有 发光二极管组成的,由于制造材料的不同,可相应发出红、黄、蓝、紫等各种单色光,本次设计所以的是红光的单色光作为发光源,且每个数码管都有a、b、c、d、e、f、g七个笔划和一个小数点DP。由于发光二极管通常需要 十几到几十毫安的驱动电流才能正常发光,因此,由微型机发出的显示控制信号必须经过驱动电路才能使数码管正常工作,在本次设计中采用的是74LS164来驱动数码管电路。常用的显示方法有两种:一种为动态显示;一种为静态显示;其中动态显示,就是微型计算机定时地对LED数码管扫描,在这种方法中,显示器件分时工作,每次只能有一个器件显示。但由于人的视觉有暂留现象,所以只要扫面跑了足够快,仍会感觉所有的器件都在显示,这种显示的优点的使用硬件少,因此价格低,线路简单,但它占用的机时长,只要微型计算机不执行显示程序,就立刻停止显示。而另一种静态显示,是由微型计算机一次输出显示模型后就能保持该显示的结果,直到下一次发送新的显示模型为止。这种显示占用机时少,显示可靠,但是使用的 元件多,且线路比较复杂。本次设计采用动态显示方式,因此硬件要求没那么苛刻。5.5.4彩灯显示原理 彩灯显示原理:当系统检扫描到键盘有按键按下时,根据读入键盘上的值去调用相应的显示模块,在本次设计中,当键盘按下1时,将显示彩灯从左向右移,当键盘按下2时,将显示彩灯全闪动或全不闪动的效果,当键盘按下3时,将显示彩灯奇、偶闪烁效果,当键盘按下4时,将显示彩灯由中间彩灯往左右两边外扩效果,当键盘按下5时,将显示前四则综合效果,当键盘按下8时,彩灯显示停止,当键盘按下9时,系统发出具有音效的报警信号。在各个彩灯显示的同时,同时实时的检查是否有新的按键按下,以便及时更新彩灯显示的模式。 图 5-5-4 发光二极管5.5.5键盘扫描原理 在本次仿真实验仪提供了一个6×4的小键盘,采用行列式键盘扫描,按键使用上拉电阻接单片机,位按下时对单片机输入一个高电平,按下后输入一个低电平,在扫描是先向列扫描码地址(0e101H)逐列输出低电平, 然后从行 码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这就可以通过输出的列码和读取的行码来判断按下的是什么键.。在判断有键按下后,要有一定的延时,防止键 盘抖动。列扫描码还可以分时用作LED的位选通信号。 图5-5-5 键盘6软件设计6.1.主程序流程图 设置相应初始值,在程序运行后先调用点阵LCD液晶显示子程序,显示福建师范大学闽南科技学院欢迎您!这几个字,此后显示屏一直保留这几个字,接着,程序运行键盘扫描模块,根据扫描键盘值来调用相应彩灯显示模块并在八段数码管显示键盘上的值,依次循环。 图 6-1 主程序流程图6.2.发光二极管显示流程图8051的P1.0-P1.7接八个发光二极管,控制发光二极管的亮与暗。本此设计共设计五中发光模式,通过人工按下键盘上的键来调用相应的彩灯模型,键盘1可以使得彩灯实现从左到右的循环,同时8段数码显示管显示1;键盘2可以实现彩灯全闪、全灭的功效,同时8段数码显示管显示2;键盘3可以实现彩灯奇、偶灯的闪烁,同时8段数码显示管显示3;键盘4可以实现彩灯有内往外扩的效果,同时8段数码显示管显示4;键盘5可以实现前四种功效的循环,同时8段数码显示管显示1,2,3,4 ;键盘上7,8,9三个键是控制彩灯键,其中按下7可实现彩灯的变速,同时8段数码不显示;按下8可石彩灯显示停止,同时8段数码显示管显示0;按下9则可实现系统的报警,同时8段数码显示管显示0。初始化设置,设置相应值根据KEY值调用相应模型显示模型1显示模型2显示模型3数码器显示1显示模型4显示模型5报警模型停止模型显示模型7数码器显示2数码器显示3数码器显示4数码器显示1234数码器不显示数码器显示0数码器显示0 图 6-2 彩灯显示流程图6.3.LED八段数码管显示流程图 在仿真实验仪提供了8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经Ua2003反向驱动后,选择相应显示位。 74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。 本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为 0e101H。本实验涉及到了8155 I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。 图 6-3 数码管显示流程图6.4.键盘扫描流程图 在本次仿真实验仪提供了一个6×4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键.。在判断有键按下后,要有一定的延时,防止键盘抖动。列扫描码还可以分时用作LED的位选通信号。 图 6-4 键盘扫描流程图6.5.点阵LCD液晶显示屏程序流程图 本次设计学用的122*32A点阵式液晶LCD,是内置SED1520液晶显示控制器的屏,它集行、列驱动器和控制器于一体,被广泛应用与小规模液晶显示模块中。SED1520内置2560位显示RAM区,RAM中的1位数据控制液晶屏上的 一个像素的亮、暗,“1”为亮,“0”为暗。它具有16个行驱动输出和61个列驱动输出,本设计中先调用LCD初始化程序,使LCD清屏,设置相应的页地址、列地址、字符代码寄存器值,依次按顺序调用显示福建师范大学闽南科技学院欢迎您!这几个字调用LCD初始化程序 调用LCD清屏子程序 设置相应的页地址、列地址、字符代码寄存器值按顺序依次调用显示“福建师范大学闽南科技学院欢迎您!”字体循环 图 6-5 点阵LCD液晶显示屏流程图7调试及性能分析7.1.实验器材及硬件连线(1)超想-3000TB综合实验仪 1 台 (2)超想3000仿真器 1 台(3)连线 若干根 (4)计算机 1 台 按图接好连线:总线插孔的P1.0P1.6接L0L6,P3.3 、P3.4接K0、K1,P1.7接音响与合成区中的Vin1。7.2.软件运行打开KEIL UVISION2软件,如图所示 图7-1 软件界面7.3.实验效果显示通过按键4来显示八段数码管显示4 图7-2 键盘值显示 彩灯模型显示如下 图7-3 彩灯显示 点阵LCD液晶显示屏中显示xxxxxx欢迎您 图 7-4 点阵LCD液晶显示屏8总 结 经过了一段的努力,在不断的查阅书籍与亲自动手试验,终于在实现基于单片机的广告彩灯上有了一定的成效。在设计初,原想在PCB电路板上做出实物,但由于本人在本专业从未有过设计电路焊接等专业知识的学习,在时间不足与经验缺少的情况下得到了指导老师的允许,即采用恒科KEIL C 超级仿真器这一硬件的条件下来实现模拟广告彩灯。 通过此次的毕业设计使我加强了单片机的综合运用,在调试源程序时,使得我将汇编语言掌握的更加好。在设计过程中不断的写程序,调试程序,这很能锻炼一个人解决所遇新问题的能力,不仅能巩固我的专业知识,更培养了如何解决问题的能力。在设计期间锻炼了自己独立思考,善于发现问题以及心态平和等素质。 由于XXX在开设课程的原理,使得我们在微控、单片机的理论知识学习有一定掌握,但在硬件制造等方面确实所学甚少,因此,希望学院能课程设置上更加合理化,以便将来更好的寻找工作。 附录一 元器件清单一览表1:AT89C51单片机2:LED八段数码管显示3:74LS138译码器4:74LS164串入并出的8位移位寄存器5:8155并行口扩展芯片6:UA20037:二极管8:连线若干附录二 程序清单CCON EQU 0E100H ;8155控制字地址OUTBIT EQU 0E101H ;LED显示位控制地址PACON EQU 0E101H ;PA口,键盘列输出CLK164 EQU 0E102H ;164时钟控制地址DAT164 EQU 0E102H ;164数据控制地址IN EQU 0E103H ;键盘读入口TEMP EQU 0CHPROJECT EQU 0DHKEYLIST EQU 0EH ;按下键盘的列值KEYTEMP EQU 10H ;得到键盘的扫描值PROJECT1 EQU 11H ;模型1PROJECT2 EQU 12H;模型2PROJECT3 EQU 13H;模型3PROJECT4 EQU 14H;模型4LED1 EQU 15HFLAG EQU 16H ;速度标志TIME0 EQU 17H ;TR0时间标志PD1 EQU 60 ; ;模块参数COLUMN EQU 30HPAGE1 EQU 31H;;页地址寄存器CODE1 EQU 32H;;字符代码寄存器COUNT EQU 33H;;计数器COM EQU 20H;;指令寄存器DAT EQU 21H;;数据寄存器CWADD1 EQU 0FA00H;;写指令代码地址(E1)CRADD1 EQU 0FA80H;;读状态字地址(E1)DWADD1 EQU 0FA40H;;写显示数据地址(E1)DRADD1 EQU 0FAC0H;;读显示数据地址(E1)CWADD2 EQU 0F800H;;写指令代码地址(E2)CRADD2 EQU 0F880H;;读状态字地址(E2)DWADD2 EQU 0F840H;;写显示数据地址(E2)DRADD2 EQU 0F8C0H;;读显示数据地址(E2)ORG 0000HLJMP STARORG 000BHAJMP INT0INTWAIT: ;循环程序LCALL SHOW ; 调用 LED显示子程序LCALL SCANKEY ;调用按键扫描程序.MOV A , KEYTEMPJZ LOOP0 ;判断是否有按键按下LCALL GETKEY ;JZ LOOP0 ;没有按键MOV B , AMOV A , BXRL A , #01HJZ KEY1MOV A , BXRL A , #02H ;开始模型2JZ KEY2MOV A , BXRL A , #03H ;开始模型3JZ KEY3MOV A , BXRL A , #04H ;开始模型4JZ KEY4MOV A , BXRL A , #05H ;开始自动模型JZ KEY5MOV A , BXRL A , #07H;加速减速控制JZ KEY7MOV A , BXRL A , #08H ;结束JZ KEY8MOV A , BXRL A , #09H ;报警JZ KEY9LOOP0: MOV A , TEMPXRL A , #01HJZ BEGINMORD1 ;开始模型1MOV A , TEMPXRL A , #02H ;开始模型2JZ BEGINMORD2MOV A , TEMPXRL A , #03H ;开始模型3JZ BEGINMORD3MOV A , TEMPXRL A , #04H ;开始模型4JZ BEGINMORD4MOV A , TEMPXRL A , #08H ;结束JZ CLOSEMOV A , TEMPXRL A , #09H ;报警JZ ALARMKEY1: CLR TR0MOV TEMP , #01HJMPBEGINMORD1KEY2: CLR TR0MOV TEMP , #02HJMPBEGINMORD2KEY3: CLR TR0MOV TEMP , #03HJMPBEGINMORD3KEY4: CLR TR0MOV TEMP , #04HJMPBEGINMORD4KEY5:SETB TR0MOV TEMP ,#01HJMP LOOP0KEY7: MOV A , FLAGCPL AMOV FLAG , AJMP LOOP0KEY8:CLR TR0MOV TEMP , #08HJMPCLOSEKEY9:CLR TR0MOV TEMP , #09HJMPALARMBEGINMORD1:JMP BEGINMORD111BEGINMORD2:JMP BEGINMORD222BEGINMORD3:JMP BEGINMORD333BEGINMORD4:JMP BEGINMORD444CLOSE:MOV LED1,#3FH ;工序停止工作MOV P1 , #0FFHJMP WAITALARM:MOV LED1,#6FH ;报警MOV P1,#00H ;MOV 20H,#0A0H;振荡次数NEXT2:SETB P3.2 ;振荡ACALL DELAY3;延时CLR P3.2;停止ACALL DELAY3;延时DJNZ 20H,NEXT2;不为零转CLR P3.2ACALL DELAY3JMP WAITBEGINMORD111:MOV LED1, #06HMOV A , PROJECT1MOV P1 , ARL AMOV PROJECT1 , AMOV A , FLAGJZ M1KACALL DELAYACALL DELAY ;M1K:ACALL DELAY;延时JMP WAITBEGINMORD222:MOV LED1, #5BHMOV A , PROJECT2MOV P1 , ACPL AMOV PROJECT2 , AMOV A , FLAGJZ M2KACALL DELAYACALL DELAY ;M2K:ACALL DELAY;延时JMP WAITBEGINMORD333:MOV LED1,#4FHMOV A , PROJECT3MOV P1 , ACPL AMOV PROJECT3 , AMOV A , FLAGJZ M3KACALL DELAYACAL