循环彩灯实验设计1.docx
《循环彩灯实验设计1.docx》由会员分享,可在线阅读,更多相关《循环彩灯实验设计1.docx(17页珍藏版)》请在冰豆网上搜索。
循环彩灯实验设计1
目录
1绪论…………………………………………………………………3
1.1引言……………………………………………………………3
1.1.1论文内容及目标……………………………………………3
1.1.2拟采用方法…………………………………………………3
2.1硬件电路设计……………………………………………………4
2.1.18031单片机硬件结构………………………………………4
2.1.2电路设计……………………………………………………4
2.1.3管脚说明……………………………………………………5
2.1.4振荡器特性…………………………………………………7
2.1.5芯片擦除……………………………………………………7
2.1.6定时/计数器的工作方式1………………………………7
2.1.78031最小系统……………………………………………8
2.2电路设计…………………………………………………………8
3.1软件设计…………………………………………………………9
3.1.1程序设计框图……………………………………………10
3.1.2系统程序…………………………………………………11
4设计结果分析……………………………………………………12
5结束语……………………………………………………………12
6参考文献…………………………………………………………12
循环彩灯实验设计
摘要
节日彩灯使生活中常常用到的装饰物品。
它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。
本文以8031单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样.
关键字
EL-5051-III型单片机试验箱8031;节日彩灯;循环.
绪论
1.1引言
节日彩灯使生活中常常用到的装饰物品。
它集中地运用了单片机、LED,自动控制等技术,是典型的基于单片机的电子产品。
随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。
在海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。
在娱乐方面,场地的装饰离不开彩灯。
在建筑方面也采用彩灯来装饰高楼大厦。
彩灯又灵活多变的点亮方式,装饰效果非常好,特别时晚上使得高楼大厦更加漂亮。
是彩灯的应用才使得城市的夜景非常迷人。
在国内外,微控制系统主要采用单片机作为控制核心。
因此,单片机的发展将有助于简单实用电子产品的开发。
在本设计中,采用比较先进的8031单片机为控制核心,它的功耗很低。
单片机技术发展至今,掌握最先进技术的仍然是国外的几大公司。
如Intel公司发展的MCS-51系列的新一代产品,如8xC152、80C51FA/FB、80C51GA/GB、8xC451、8xC452,还包括了Philips、Siemens、ADM、Fujutsu、OKI、Harria-Metra、ATMEL等公司以80C51为核心推出的大量各具特色﹑与80C51兼容的单片机。
新一代的单片机的最主要的技术特点是向外部接口电路扩展,以实现Microcomputer完善的控制功能为己任,可连接一些外部接口功能单元如A/D、PWM、PCA(可编程计数器阵列)﹑WDT(监视定时器)﹑高速I/O口、计数器的捕获/比较逻辑等。
这一代单片机中,在总线方面最重要的进展是为单片机配置了芯片间的串行总线,为单片机应用系统设计提供了更加灵活的方式。
Philips公司还为这一代单片机80C51系列8xC592单片机引入了具有较强功能的设备间网络系统总线
---CAN(ControllerAreaNetworkBUS)。
.
1.1.1研究内容及目标
循环彩灯实验设计,利用单片机原理实现彩灯的循环点亮.
1.1.2拟采用方法
利用EL-8031-III型单片机实验箱,由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。
P1口的P1.0~P1.7分别接发光二极管的L1~L8。
要求编写程序模拟一循环彩灯。
彩灯变化花样可自行设计。
2.1硬件电路设计
单片机(SCM)是单片微型计算机(SingleChipMicrocomputer)的简称。
它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。
随着SCM在技术上、体系上不断扩展其控制功能,国际上已经采用MCU(MicroControllerUnit)代替单片机的名词。
它的最大优点是体积小,可放在仪表内部。
但存储量小,输入输出适配器简单,功能较低。
目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。
近年来,8031在我国非常流行,它最大的特点是内部有可以多次重复编程的闪烁ROM,并且闪烁ROM可以直接用编程器来擦写(电擦写),使用起来比较方便【1】。
一个单片机应用系统的硬件电路设计包含有两部分内容:
一是系统扩展,即单片机内部的功能单元,如ROM﹑RAM﹑I/O口﹑定时/记数器﹑中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。
二是系统配置,既要按照系统功能要求配置外围设备,如键盘显示器﹑打印机﹑A/D﹑D/A转换器等,又要设计合适的接口电路。
本系统采用8031单片机作为中央处理器。
其主要任务收集按键的信息,判断按键时否按下来执行相应彩灯的点亮方式
在本系统中,8031单片机的P1口用于接按键,方便使用者选择方式。
P0口接的时LED彩灯。
2.1.1定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。
本实验中时钟频率为6.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时【2】。
时间常数可按下述方法确定:
1、机器周期=12÷晶振频率=12/(6×106)=2us
设计数初值为X,则(2e+16-X)×2×106=0.1,可求得X=15535
化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH
2、初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。
由于只有定时器中断,IP便不必设置。
3、设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
2.1.28031单片机硬件结构
8031是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC—51兼容。
片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。
因此,8031是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。
主要特性
(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)片内振荡器和时钟电路
另外,8031是用静态逻辑来设计的,其工作频率可下降到零并提供两种软件的省电方式-空闲方式和掉电方式。
在空闲方式中,CPU停止工作。
在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下次硬件复位为止。
2.1.3管脚说明
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口也可作为8031的一些特殊功能口
P3口同时为闪烁编程和编程校验接收一些控制信号。
复位RST(9):
复位输入。
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位操作不会对内部RAM有所影响。
ALE/
(30):
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
(29):
外部程序存储器的选通信号。
在由外部程序存储器取指令期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
EA/VPP(31):
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1(19):
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2(18):
来自反向振荡器的输出。
其引脚图如图
(1)所示。
8031引脚图
图
(1)
2.1.4振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.1.5芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,8031设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止
2.1.6定时/计数器的工作方式1;
定时/计数器工作示意图
图
(2)
工作方式1
定时器/计数器的工作方式1称之为13位定时/计数方式。
它由TL(1/0)的低5位和TH(0/1)的8位构成13位的计数器,此时TL(1/0)的高3位未用。
我们用这个图来讨论几个问题:
M1M0:
定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。
而方式1则设置M1M0为01.
C/T:
定时/计数器即可作定时用也可用计数用,可由我们根据需要自行决定,也说是决定权在编程者。
如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。
一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用.
GATE:
如图
(2),当选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?
有两种情况
GATE=0,分析逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端INT1无关,在这种情况下,开关的打开、合上只取决于TR1,只要TR1是1,开关就合上,计数脉冲得以畅通无阻,而如果TR1等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR1。
GATE=1,在此情况下,计数脉冲通路上的开关不仅要由TR1来控制,而且还要受到INT1引脚的控制,只有TR1为1,且INT1引脚也是高电平,开关才合上,计数脉冲才得以通过。
这个特性可以用来测量一个信号的高电平的宽度.
2.1.78031最小系统
8031最小系统接线如图(3)所示,在XTAL1、XTAL2端接上晶振及两个谐振电容,在RESET端接上相应的电阻、电容,如需要按键复位,加上按键即可组成一个最小系统,按要求通电后,系统就可以工作了。
2.2电路设计
电路总体设计图
图(3)
3软件设计
程序设计(Programming)是指设计、编制、调试程序的方法和过程。
它是目标明确的智力活动。
在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。
因此,软件设计在微机控制系统设计中占重要地位。
对于本系统,软件也占有重要的地位。
在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。
数据处理包括:
数据的采集、数字滤波、标度变换等。
过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。
把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。
所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。
模块程序设计法的主要优点是:
(1)单个模块比起一个完整的程序易编写、调试及修改。
(2)程序的易读性好。
(3)程序的修改可局部化。
(4)模块可以共存,一个模块可以被多个任务在不同条件下调用。
(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。
本系统软件采用模块化结构,由主程序﹑方式一和延时等子程序构成。
3.1.1主程序框图
由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。
P1口的P1.0~P1.7分别接发光二极管的L1~L8。
程序模拟一循环彩灯。
彩灯变化花样可自行设计。
程序的变化花样为:
①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。
各时序间隔为0.5秒。
让发光二极管按以上规律循环显示下去。
3.1.2系统程序:
NAMET6;定时器实验
OUTPORTEQU0CFB0H
CSEGAT0000H
LJMPSTART
CSEGAT401BH;定时器/计数器1中断程序入口地址
LJMPINT
CSEGAT4100H
START:
MOVA,#01H;首显示码
MOVR1,#03H;03是偏移量,即从基址寄存器到表首的距离
MOVR0,#5H;05是计数值
MOVTMOD,#10H;计数器置为方式1
MOVTL1,#0AFH;装入时间常数
MOVTH1,#03CH
ORLIE,#88H;CPU中断开放标志位和定时器
;1溢出中断允许位均置位
SETBTR1;开始计数
LOOP1:
CJNER0,#00,DISP
MOVR0,#5H;R0计数计完一个周期,重置初值
INCR1;表地址偏移量加1
CJNER1,#31H,LOOP2
MOVR1,#03H;如到表尾,则重置偏移量初值
LOOP2:
MOVA,R1;从表中取显示码入累加器
MOVCA,@A+PC
JMPDISP
DB01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH
DB0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H,0FEH
DB0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH
DB0EFH,0F7H,0FBH,0FDH,0FEH,00H,0FFH,00H
DISP:
;MOVDPTR,#OUTPORT
;MOVX@DPTR,A
MOVP1,A;将取得的显示码从P1口输出显示
JMPLOOP1
INT:
CLRTR1;停止计数
DECR0;计数值减一
MOVTL1,#0AFH;重置时间常数初值
MOVTH1,#03CH
SETBTR1;开始计数
RETI;中断返回
END
4设计结果分析
通过对上述模块的分析,可以看出基于单片机控制的节日彩灯在8031上可以很好的实现彩灯的各种变换花样。
当程序开始运行时,各个模块处于初始状态。
当有按键触发后,主程序跳到相应的彩灯闪亮方式循环闪亮。
因此,从设计结果可以看出,本设计可以得到预期的效果。
5结束语
这个设计过程中,我们要实现彩灯的多功能化,感谢石老师平时指导我们将程序模块化,首先实现一个功能,接着逐个地添加功能,最后达到多功能化.有了明确的方向后,我们开始认真的搞我们的课程设计.这个过程中,我们花费了大量的时间和精力,同时还懂得合作精神的重要性,学会了与他人合作,不懂的不明白的就要和同学们交流,这样学习才更有乐趣。
通过这次单片机课程设计,我了解到自己在单片机方面还有很多不足,特别是单片机指令系统及8031各引脚的第二功能等等知识不够了解.因此我在设计中遇到不懂的东西就马上查资料或请教同学.这不仅加深了我对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
在课程设计过程中,不断调试程序和修改程序,提高了对单片机的应用能力,分析问题和解决问题的能力。
在和同学们交流的同时也明白了做任何事情都要有团结合作的精神,只有这样才能更快更好的掌握好要学习的知识。
6参考文献资料
[1]张俊谟,单片机中级教程—原理与应用[J].北京航空航天大学出版社.2007,45-12
[2]EL-MUT-Ⅲ单片机/微机实验系统[J].北京精仪达剩科技有限公司.2007