节日彩灯说明书(2)
目录
1.设计内容„„„„„„„„„„„„„„„„„„„„„„„„„„„1 1.1设计任务 „„„„„„„„„„„„„„„„„„„„„„„2 1.2设计要求 „„„„„„„„„„„„„„„„„„„„„„„2 1.3功能分析„„„„„„„„„„„„„„„„„„„„„„„2 2方案选择„„„„„„„„„„„„„„„„„„„„„„„„„„3 3.硬件电路设计„„„„„„„„„„„„„„„„„„„„„„„„„3 3.1 AT89C51单片机硬件结构„„„„„„„„„„„„„„„„3 3.1.1 主要特性„„„„„„„„„„„„„„„„„„„„„„3 3.1.2 管脚说明„„„„„„„„„„„„„„„„„„„„„„4 3.1.3 振荡器特性„„„„„„„„„„„„„„„„„„„„„5 3.1.4芯片擦除„„„„„„„„„„„„„„„„„„„„„„6 3.1.5 AT89C51最小系统„„„„„„„„„„„„„„„„„6 3.2电路及连线设计„„„„„„„„„„„„„„„„„„„„6 4.软件设计„„„„„„„„„„„„„„„„„„„„„„„„„„„7 4.1 程序设计„„„„„„„„„„„„„„„„„„„„„„„7 4.2系统程序流程图„„„„„„„„„„„„„„„„„„„„8 4.2.1主程序流程图„„„„„„„„„„„„„„„„„„„„8 4.2.2正向流动程序流程图和反向流动程序流程图„„„„„„„9 4.2.3延时程序流程图„„„„„„„„„„„„„„„„„„„10 4.3系统程序„„„„„„„„„„„„„„„„„„„„„„„11 5.系统联调„„„„„„„„„„„„„„„„„„„„„„„„„„12 5.1仿真效果图„„„„„„„„„„„„„„„„„„„„„„13 结论„„„„„„„„„„„„„„„„„„„„„„„„„„„„„14 参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„14 致 谢„„„„„„„„„„„„„„„„„„„„„„„„„„„„„14 附录„„„„„„„„„„„„„„„„„„„„„„„„„„„„„15
节日彩灯控制器的设计
摘 要
节日彩灯使生活中常常用到的装饰物品,是我国普遍流行的传统的民间的综合性的工艺品。彩灯艺术也就是灯的综合性的装饰艺术。在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化,它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。通过按键能方便使用者选择不同样的亮法。并用proteus仿真能使八盏彩灯顺序点亮,逆序点亮和停止。并做出pcb电路板图。为节日增加气氛。具有精度较高、本低、装调容易,有一定的市场价值的特点,实现了对彩灯的控制
1.设计内容 1.1设计任务
以单片机为核心,设计一个节日彩灯控制器。
1.2设计要求
(1)仿照图1-1在Proteus中绘制一个基于89C51的流水灯控制器电路,开关可以控制流动的方向,拨码开关可以调整流动的快慢。
(2)参照给出的程序,编写程序以改变LED闪烁频率和彩灯“流水”流动方向。 (3)选择不同的工作寄存器区,修改R0━R7的内容,观察相应片内RAM内容的变化。
1.3功能分析
由按键控制功能的流水灯,其中的LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,可实现题目要求的功能。
2.方案选择
以80C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。按键可以在彩灯使用的时候选择不同的亮法,使彩灯流动的方向改变,键一可以使彩灯由上而下开始流动,键二可以使彩灯停止,三号键可以使彩灯由上而下流动,四键则可以使彩灯由下而上流动。通过按键能方便使用者选择节
日彩灯的开启、流动方向和停止。 系统框图如下:
图1
3.硬件电路设计
单片机(SCM)是单片微型计算机(Single Chip Microcomputer)的简称。它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。随着SCM在技术上、体系上不断扩展其控制功能,国际上已经采用MCU(MicroControllerUnit)代替单片机的名词。它的最大优点是体积小,可放在仪表内部。但存储量小,输入输出适配器简单,功能较低。目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。近年来,AT89C51在我国非常流行,它最大的特点是内部有可以多次重复编程的闪烁ROM, 并且闪烁ROM可以直接用编程器来擦写(电擦写),使用起来比较方便。
一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展,即单片机内
部的功能单元,如ROM﹑RAM﹑I/O口﹑定时/记数器﹑中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既要按照系统功能要求配置外围设备,如键盘显示器﹑打印机﹑A/D﹑D/A转换器等,又要设计合适的接口电路。
3.1 AT89C51单片机硬件结构
AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only
Memory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC—51兼容。片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。因此,AT89C51是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。
3.1.1 主要特性
(1)与MCS-51产品指令系统兼容 (2)4K字节可编程闪烁存储器 (3)寿命:1000写/擦循环 4
(4)数据保留时间:10年
(5)全静态工作:0Hz-24Hz (6)三级程序存储器锁定 (7)128*8位内部RAM (8)32可编程I/O线 (9)两个16位定时器/计数器 (10)6个中断源 (11)可编程串行通道
(12)低功耗的闲置和掉电模式 (13)片内振荡器和时钟电路
3.1.2 管脚说明
VCC(40):供电电压,其工作电压为5V。 GND(20):接地。
P0端口(P0.0-P0.7):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门
电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1端口(P1.0-P1.7):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲
器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2端口(P2.0-P2.7):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可
接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3端口(P3.0-P3.7):P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,
可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。P3口也可作为AT89C51的一些特殊功能口,如表1所示。P3口同时为闪烁编程和编程校验接收一些控制信号。
复位RST(9):复位输入。在振荡器运行时,有两个机器周期(24个振荡周期)以上
的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位操作不会对内部RAM有所影响。
ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的
地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机
器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP(31):当__EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH)
不管是否有内部程序存储器。注意加密方式1时,__EA将内部锁定为RESET;当__EA保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电 源(VPP)。
XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2(18):来自反向振荡器的输出。其引脚图如图2所示。
图2
3.1.3 振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL26 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.1.4芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.1.5 AT89C51最小系统
AT89C51最小系统中XTAL1、XTAL2端接上晶振及两个谐振电容,在RESET 端接上相应的电阻、电容,如需要按键复位,加上按键即可组成一个最小系统,按要求通电后,系统就可以工作了。
3.2电路及连线设计
将MUC、LED和按键进行电路设计。
图3
打开PROTEUS的ISIS编辑环境,从PROTEUS中选取该电路所需要的元器件, 放置元器件、放置电源和地、连线得到如图3所示的电气原理图,再点菜单栏工
具下拉的电气规则检查,当规则检查出现:“NETLIST GENERATED OK NO ERC ERRORD FOUND”,表示通过检查。电路设计完成。
4.软件设计
4.1 程序设计
程序设计(Programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件也占有重要的地位。 在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。 为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。
模块程序设计法的主要优点是:
(1)单个模块比起一个完整的程序易编写、调试及修改。 (2)程序的易读性好。 (3)程序的修改可局部化。
(4)模块可以共存,一个模块可以被多个任务在不同条件下调用。
(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。 本系统软件采用模块化结构,由主程序,正向流动、反向流动和延时等子程序构成。
4.2系统程序流程图 4.2.1系统主程序流程图
图5
4.2.2 正向流动程序流程图和反向流动程序流程图
图6
4.3系统程序
org 0000h ajmp main org 0100h
main: mov p1,#00H
jnb p1.3,$ ;等待启动
mov p1,#00h mov a,#0feh loop:mov p2,a call delay
rr a
jb p1.4,stop ;判断是否停止 jb p1.5,loop1 ;判断是否向下流
jb p1.6,loop2 ; 判断是否向上流 mov p1,#00h sjmp loop
loop1:mov p1,#00h ; 向下流 mov a,#0fEh loop3:mov p2,a call delay rr a
jb p1.4,stop jb p1.6,loop2
sjmp loop3
loop2: mov p1,#00h ; 向上流 mov a,#0FEH loop4: rl a mov p2,a call delay
jb p1.4,stop jb p1.5,loop1 sjmp loop4
stop: sjmp $ ; 停止
delay: mov r1,#100 ; 延时 delay0:mov r2,#20 delay1:nop
djnz r2,delay1 12 djnz r1,delay0 ret end
5.系统联调
把程序装入单片机后,复位启动,
5.1仿真效果图
图7
总结
通过这次的单片机课程设计,我更进一步了解到单片机的优点和强大功能,在查找资料的过程中,认识到单片机应用的广泛性。
在设计中,我通过查阅各种单片机资料,并以单片机课程设计指导书作为参考,在何春霞老师的细心指导下,我终于历经两周的时间完成了这次单片机的设计,这次单片机的设计
不仅使我对单片机课程有了进一步的了解,同时更加深了我对单片机的应用。学完单片机课程后我只是对单片机有了一些理论的了解,但这次单片机课程设计却加深了我对单片机理论与实践的结合。但由于我的知识水平有限,设计的单片机电子时钟还是存在一些的缺点和不足,如在电子时钟的基础上实现闹钟音乐等方面的设计,希望能在以后的学习过程钟,能够尽快的解决这些问题。
最后,我觉得单片机的课程设计是很有意义的,在这个过程中可以学会如何把自己平时所学的东西应用到实际中。虽然我对这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得有点难,也没有很有效的办法通过自身去理解,但是靠着这两个多星期的“学习”,在小组同学的帮助和讲解下,自己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。我觉得课程设计反映的是一个从理论到实际应用的过程,这个过程对缺乏实际经验的我们是非常重要的。通过这次单片机课程设计使我认识到自身知识及能力的薄弱,更让我知道实践的重要性。在以后的学习过程中,我会更加努力学习相关知识和应用,真正能够运用单片机组成的微控制系统解决各种实际的问题。
参考文献
[1]邹丽新,翁桂荣.单片机微型计算机原理,苏州大学出版社,2001.12 [2]邹丽新,翁桂荣.单片机微型计算机及接口技术,苏州大学出版社,2002.4 [3]徐爱钧,彭秀华.单片机高级语言环境编程与应用,北京电子工业出版社,2001.7 [4]求是科技.单片机典型模块设计实例导航,北京人民邮电出版社,2004.5 [5]高峰.单片微型计算机原理与接口技术.科学出版社,2007 [6]李飞.单片机原理及其应用 西安电子科技大学出版社 ,2007
致谢
我要感谢我的导师何春霞老师,她严谨细致、一丝不苟的作风一直是我工作、学习
中的榜样,给了起到了指明灯的作用;她循循善诱的教导和不拘一格的思路给予我无尽的启迪,让我很快就感受到了设计的快乐并融入其中。其次我要感谢同组同学对我的帮助和指点,没有他们的帮助和提供资料,没有他们的鼓励和加油,这次课程设计就不会如此的顺利进行。 此次课程设计历时三个星期,从课题的选择到项目的最终完成,老师都始终给予我细心的指导和不懈的支持,他们真正起到了“传道授业解惑疑”的作用,让人油然而生的敬佩,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。在
此谨向何老师致以诚挚的谢意和崇高的敬意。 在课程即将完成之际,我的心情无法平静,从开始进入课题到设计的顺利完成,有老师、同学给了我无言的帮助,在这里请接受我诚挚的谢意!
附录、一
附录Ⅱ
系统主程序
org 0000h ajmp main 17 org 0100h
main: mov p1,#00H
jnb p1.3,$ ;等待启动 mov p1,#00h mov a,#0feh loop:mov p2,a call delay rr a
jb p1.4,stop ;判断是否停止 jb p1.5,loop1 ;判断是否向下流 jb p1.6,loop2 ; 判断是否向上流 mov p1,#00h sjmp loop
loop1:mov p1,#00h ; 向下流 mov a,#0fEh loop3:mov p2,a call delay rr a
jb p1.4,stop jb p1.6,loop2 sjmp loop3
loop2: mov p1,#00h ; 向上流 mov a,#0FEH loop4: rl a mov p2,a call delay jb p1.4,stop jb p1.5,loop1 sjmp loop4
stop: sjmp $ ; 停止
delay: mov r1,#100 ; 延时 delay0:mov r2,#20 delay1:nop
djnz r2,delay1 djnz r1,delay0 ret end