单片机课程设计论文节日彩灯控制器的设计_第1页
单片机课程设计论文节日彩灯控制器的设计_第2页
单片机课程设计论文节日彩灯控制器的设计_第3页
单片机课程设计论文节日彩灯控制器的设计_第4页
单片机课程设计论文节日彩灯控制器的设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计(论文)课 题 名 称 节日彩灯控制器的设计 学 生 姓 名 学 号 系、年级专业 信息工程系07级网络工程工程专业 指 导 教 师 2008年 5 月 24 日摘 要节日彩灯使生活中常常用到的装饰物品。它集中地运用了单片机、led、,自动控制等技术,是典型的基于单片机的电子产品。本文以at89c51单片机为控制核心,采用模块化的设计方案,运用led彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,键一可以使彩灯依次循环点亮,健二可以使彩灯从左到又从右到左循环点亮,三号键使两端灭,中间亮,再对半交替亮,然后再奇偶亮。通过

2、按键能方便使用者选择不同样的亮法。 关键字:at89c51; 节日彩灯;循环; 目 录摘 要i1 绪论11.1 引言11.2 课题来源11.3 国内外现状12 硬件电路设计22.1 at89c51单片机硬件结构22.2 电路设计.6 3 软件设计73.1 程序设计73.2 主程序设计83.3 方式一设计133.4 方式二程序设计143.5 方式三程序设计173.6 方式四程序设计183.7 延时程序设计203.8 电路仿真213.9仿真结果分析244 结束语24参考文献资料251 绪论1.1 引言节日彩灯使生活中常常用到的装饰物品。它集中地运用了单片机、led、,自动控制等技术,是典型的基于单

3、片机的电子产品。本文以at89c51单片机为控制核心,采用模块化的设计方案,运用led彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,键一可以使彩灯依次循环点亮,健二可以使彩灯从左到又从右到左循环点亮,三号键使两端灭,中间亮,再对半交替亮,然后再奇偶亮。通过按键能方便使用者选择不同样的亮法 1.2 课题来源随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快 ,智能度越来越高 ,应用范围也得到了极大的扩展。在海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。在娱乐方面,场地的装饰离不开彩灯。在建筑

4、方面也采用彩灯来装饰高楼大厦。彩灯又灵活多变的点亮方式,装饰效果非常好,特别时晚上使得高楼大厦更加漂亮。是彩灯的应用才使得城市的夜景非常迷人。 1.3 国内外现状在国内外,微控制系统主要采用单片机作为控制核心。因此,单片机的发展将有助于简单实用电子产品的开发。在本设计中,采用比较先进的at89c51单片机为控制核心,它的功耗很低。单片机技术发展至今,掌握最先进技术的仍然是国外的几大公司。如intel公司发展的mcs-51系列的新一代产品,如8c152、80c51fa/fb、80c51ga/gb、8c451、8c452,还包括了philips、siemens、adm、fujutsu、oki、ha

5、rria-metra、atmel等公司以80c51为核心推出的大量各具特色与80c51兼容的单片机。新一代的单片机的最主要的技术特点是向外部接口电路扩展,以实现microcomputer完善的控制功能为己任,可连接一些外部接口功能单元如a/d、pwm、pca(可编程计数器阵列)wdt(监视定时器)高速i/o口、计数器的捕获/比较逻辑等。这一代单片机中,在总线方面最重要的进展是为单片机配置了芯片间的串行总线,为单片机应用系统设计提供了更加灵活的方式。philips公司还为这一代单片机80c51系列8c592单片机引入了具有较强功能的设备间网络系统总线-can(controller area ne

6、twork bus)。2硬件电路设计单片机(scm)是单片微型计算机(single chip microcomputer)的简称。它是把中央处理器cpu、随机存储器ram、只读存储器rom、i/o接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。随着scm在技术上、体系上不断扩展其控制功能,国际上已经采用mcu(microcontrollerunit)代替单片机的名词。它的最大优点是体积小,可放在仪表内部。但存储量小,输入输出适配器简单,功能较低。目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。近年来,at89c51在我国非常流

7、行,它最大的特点是内部有可以多次重复编程的闪烁rom,并且闪烁rom可以直接用编程器来擦写(电擦写),使用起来比较方便【10】。一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展,即单片机内部的功能单元,如romrami/o口定时/记数器中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既要按照系统功能要求配置外围设备,如键盘显示器打印机a/dd/a转换器等,又要设计合适的接口电路。本系统采用at89c51单片机作为中央处理器。其主要任务收集按键的信息,判断按键时否按下来执行相应彩灯的点亮方式在本系统中,at89c51单片机的

8、p1口用于接按键,方便使用者选择方式。p0口接的时led彩灯。2.1 at89c51单片机硬件结构at89c51是一种低功耗/低电压、高性能的八位cmos单片机,片内有一个4kb的flash可编程可擦除只读存储器(fperomflash programmable and erasable read only memory),它采用了cmos工艺和atmel公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与msc51兼容。片内置通用8位中央处理器(cpu)和flash存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。因此,at89c51是一种功能强、灵活性高且价格

9、合理的单片机,可方便的应用于各种控制领域11。2.1.1 主要特性(1)与mcs-51产品指令系统兼容 (2)4k字节可编程闪烁存储器 (3)寿命:1000写/擦循环(4)数据保留时间:10年(5)全静态工作:0hz-24hz(6)三级程序存储器锁定(7)128*8位内部ram(8)32可编程i/o线(9)两个16位定时器/计数器(10)6个中断源 (11)可编程串行通道(12)低功耗的闲置和掉电模式(13)片内振荡器和时钟电路 另外,at89c51是用静态逻辑来设计的,其工作频率可下降到零并提供两种软件的省电方式-空闲方式和掉电方式。在空闲方式中,cpu停止工作。在掉电方式中,片内振荡器停止

10、工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内ram中的内容,直到下次硬件复位为止。2.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口缓冲器能接收输出4t

11、tl门电流。p1口管脚写入1后,被内部上拉为高电平,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2端口(p2.0-p2.7):p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写

12、时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3端口(p3.0-p3.7):p3口管脚是一个带有内部上拉电阻的8位的双向i/o端口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,p3口将输出电流(ill)。 p3口也可作为at89c51的一些特殊功能口,如表3.1所示。表2.1 p3端口引脚兼用功能表p3口同时为闪烁编程和编程校验接收一些控制信号。复位rst(9):复位输入。在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,

13、只要这个脚保持高电平,51芯片便循环复位。复位后p3.0-p3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器sfr全部清零。当复位脚由高电平变为低电平时,芯片为rom的00h处开始运行程序。复位操作不会对内部ram有所影响。ale/(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此

14、时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 (29):外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。ea/vpp(31):当保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为reset;当端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1(19):反向振荡放大器的输入及内部时钟工作电路的输入

15、。xtal2(18):来自反向振荡器的输出。其引脚图如图3.1所示。图2.2 at89c51引脚图2.1.3 振荡器特性 xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.1.2 芯片擦除整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ale管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,

16、该操作必须被执行。此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu停止工作。但ram,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存ram的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.1.5 at89c51最小系统 at89c51最小系统接线如图3.2所示,在xtal1、xtal2端接上晶振及两个谐振电容,在reset端接上相应的电阻、电容,如需要按键复位,加上按键即可组成一个最小系统,按要求通电后,系统就可以工作了。 图2.3 at89c51最小系统2.2 电路设计 将muc、led和按

17、键进行proteus设计。打开proteus的isis编辑环境,从proteus中选取该电路所需要的元器件,放置元器件、放置电源和地、连线得到如图3.7所示的电气原理图,再点菜单栏工具下拉的电气规则检查,当规则检查出现:“netlist generated ok no erc errord found”,表示通过检查。电路设计完成。图2.4 系统部分电气原理图3软件设计3.1 程序设计程序设计(programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设

18、计在微机控制系统设计中占重要地位。对于本系统,软件也占有重要的地位。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法14。模块程序设计法的主要优点

19、是:(1)单个模块比起一个完整的程序易编写、调试及修改。(2)程序的易读性好。(3)程序的修改可局部化。(4)模块可以共存,一个模块可以被多个任务在不同条件下调用。(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序方式一,方式二,方式三,方式四和延时等子程序、去抖动等等程序构成。3.2 主程序设计在系统的程序设计中,主控模块只负责根据消息调用相应模块的处理函数,具体如何处理这些消息由各功能模块中的对应程序决定。当收到按键一按下使p1.0的电平有高电平变成低电平时,主程序就跳到方式一的子函数执行,这样就实现了按键一的点亮。当收到按键二按下使p1.

20、1的电平有高电平变成低电平时,主程序就跳到方式二的子函数执行,这样就实现了按键二的点亮。当收到按键三按下使p1.2的电平有高电平变成低电平时,主程序就跳到方式三的子函数执行,这样就实现了按键三的点亮。当收到按键四按下使p1.3的电平有高电平变成低电平时,主程序就跳到方式四的子函数执行,这样就实现了按键四的点亮。nnnny开 始长跳转到startp1.0=0?yyyp1.0=0?p1.0=0?p1.0=0?方式一亮灯方式二亮灯方式四亮灯方式三亮灯图3.1 系统流程图系统程序:org 00hljmp startorg 30hstart: mov sp,#60hmov p0,#0ffhjnb p1.

21、0,paomajnb p1.1,zycjnb p1.2,zbcjnb p1.3,gdjosjmp startpaoma: mov p0,#0feh ;1键跑马子程序restart:mov r7,#7loop: mov a,p0rl alcall delaymov p0,ajb p1.0,startdjnz r7,loopsjmp restartretzyc: mov p0,#0feh ;2键左右循环mov a,p0restart1:mov r5,#7mov r4,#7loop3:; mov a,p0jb p1.1,startrl alcall delaymov p0,adjnz r5,loop

22、3loop4:rr alcall delaymov p0,adjnz r4,loop4sjmp restart1retzbc: mov p0,#0c3h ;3键中边循环loop5: mov a,p0jb p1.2,startswap alcall delaymov p0,asjmp loop5retgdjo: mov p0,#0f0h ;4键高低奇偶交替mov a,p0swap alcall delaymov p0,amov p0,#55hloop6: mov a,p0jb p1.3,startrl alcall delaymov p0,asjmp loop6retdelay: ;延时mov

23、r6,#200loop2: mov r7,#250loop1: nopnopdjnz r7,loop1djnz r6,loop2retend3.3 方式一程序设计 当按下一号键时,主程序跳到方式一子数,彩灯循环点亮.nr7=0?y开 始给r7赋值为7将p0赋值给a 调用延时程序图3.2 方式一流程图方式一子程序:paoma: mov p0,#0feh ;1键跑马子程序restart:mov r7,#7loop: mov a,p0rl alcall delaymov p0,ajb p1.0,startdjnz r7,loopsjmp restartret3.4 方式二程序设计当二号键按下时,主函

24、数跳转到方式二的子程序执行,使彩灯的变换方式为右左到右循环点亮再由右向左循环点亮.开 始给p0赋值r5r4赋值为7将p0传给ap1.1=0跳转到start左移一位a值调用延时程序将a赋给p0r4=0?右移一位a值调用延时程序将a赋给p0r4=0?ynnyyn图3.3 方式二流程图方式二子程序:zyc: mov p0,#0feh ;2键左右循环mov a,p0restart1:mov r5,#7mov r4,#7loop3:; mov a,p0jb p1.1,startrl alcall delaymov p0,adjnz r5,loop3loop4:rr alcall delaymov p0,

25、adjnz r4,loop4sjmp restart1ret3.5 方式三子程序设计 当按下三号键的时,主函数跳转到方式三子程序,使彩灯的变换方式为,两端的两个led灯亮中间的四个灭,再中间四个亮两边的两个灭,依次这样循环.开 始给p0赋值将p0传值给ap1.2=0?swap a将p0值传给a短跳转跳转到startny图3.4 方式三流程图方式三子程序:zbc: mov p0,#0c3h ;3键中边循环loop5: mov a,p0jb p1.2,startswap alcall delaymov p0,asjmp loop5ret3.6 方式四子程序设计当四号键按下时,主程序跳转到方式四子程

26、序,使彩灯的变换方式为奇偶交替亮灭,依次这样循环开 始p0赋值0f0h将p0传值给aswap a 调用延时程序员将a赋值给p0给p0赋值55h将p0赋值给ap1.3=0?rl a跳转到start调用延迟程序将a赋值给p0短跳转ny图3.5 方式四流程图3.7 延时子程设计开 始给r6赋值200给r7赋值250两次nop操作r7=0?r6=0?返 回nyny图3.6延时程序流程图延时子程序:delay: ;延时mov r6,#200loop2: mov r7,#250loop1: nopnop3.8电路仿真 proteus软件自带编辑器,可以实现对汇编程序的编译,其操作步骤是: 新建源文件:点菜

27、单sourceadd/remove source files在出现的对话框中,选择asem51编辑器,新建nomame1.asm 源文件。 程序设计:点菜单sourcenamame1.asm打开源文件编辑器,将将附录程序输入到文本中。 源程序编译:点菜单sourcebuild all编译汇编源程序,生成目标代码文件pmd.hex,若编译失败,可对程序进行修改调试直至编译成功。 目标代码加载:在proteus编辑环境双击at89c51,弹出如图4.6所示的对话框,在program file一栏中单击打开按钮,选中nomame1.hex文件。在clock frequency栏中设置系统工作频率为12mhz,单击ok完成目标代码加载。图3.8 程序代码加载最后,点击运行按钮,启动系统仿真.仿真结果如图3.9所示。当按下一号键时图3.9方式一仿真结果1当按键二按下时仿真结果如图3.10所示。图3.10方式二仿真结果当按键三按下时仿真结果如图图3.11方式三仿真结果当按键四按下时仿真结果如图图3.12 方式四仿真结果3.9仿真结果分析通过对上述模块的仿真,可以看

温馨提示

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

评论

0/150

提交评论