根据单片机的霓虹灯控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
目录摘要
关键词
一.前言
二.总体设计方案
三.硬件电路设计
3.1 单片机系统
3.2 LED概述
3.3 外部时钟方式电路
3.4 手动复位电路
3.5 霓虹灯控制电路
四.软件设计
五.软件调试
六.总结
附录
基于单片机的霓虹灯控制系统设计
摘要:单片机技术是一门应用性很强的专业课,其理论与实践技能是从事机电类专业技术工作的人员所不可少的。
本次程设计是选择AT80C51为核心控制元件,利用取表的方法,使端口P1 做单一灯的变化:左移2 次,右移2 次,闪烁2 次(延时的时间0.2 秒),设计了单片机霓虹灯控制系统,使其产生有规律的闪烁和移动。
关键字T80C51 LED灯霓虹灯
一. 前言
单片机,亦称单片微电脑或单片微型计算机。
它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。
它是一种集计数和多中接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是个单片机中最为典型和最有代表性的一种。
随着城市建设和市场经济的飞速发展,城市的美化和日益激烈的广告竞争越来越得到社会的关注,作为城市装饰和广告宣传的霓虹灯的需求量也越来越大。
过去霓虹灯控制器多采用E2PROM和相应的逻辑电路来完成,现在也有采用一些专用霓虹灯控制芯片的控制器。
前者所需电路较多,制作不易改变,且所需控制的霓虹灯路数越多,扩展起来也比较繁杂;而后者由于电路已作定,控制方式不能随意改变,功能较为单一。
然而市场上需要低成本高性能的霓虹灯控制技术。
我们此次设计的霓虹灯控制系统就符合市场需求。
二. 总体方案设计
在本次设计中,硬件部分由单片机系统、LED发光二极管组成。
原理图如图1所示。
单片机选用的是AT89C51单片机,利用其中的一个定时器设定灯光闪烁的时间,时钟电路选用的是11.0592M 的晶振。
复位电路部分采用的是上电复位和手动复位两种复位方式。
由于考虑到单片机I/O 端口的带载能力,LED 发光二极管采用共阳极的接法,用1K电阻分压。
软件部分,由于采用的是11.0592M 晶振的时钟电路,单片机定时器的最大定时时间为65.536ms ,不能达到要求的闪烁频率。
所以采用定时50ms ,10个定时中断灯光进行一次亮灭的跳变。
并在每一次跳变时记录下灯闪烁的次数,通过对闪烁次数的判断,来进行对不同LED 灯的亮灭的整体时序循环控制。
图1 单片机的霓虹灯控制电路原理图
三. 硬件电路的设计
3.1 单片机系统
标准型89系列单片机是与MCS-51系列单片机兼容的。
在内部含有4KB 或8KB 可重复编程的Flash 存储器,可进行1000次擦写操作。
全静态工作为0~33MHz ,有3级程序存储器加密锁定,内含有128~256字节的RAM 、32条可编程的I/O 端口、2~3个16位定时器/计数器,6~8级中断,此外有通用串行接口、低电压空闲模式及掉电模式。
AT89C51相当于将8051中的4KB ROM 换成相应数量的Flash 存储器,其余结构、供电电压、引脚数量及封装均相同,使用时可直接替换。
AT89C51在内部采用40条引脚的双列直插式封装,引脚排列如图2所示,内部结构原理图如图3所示。
单
片
机
LED 显示 电路
复位电路
时钟电路
图2 AT89C51芯片引脚
图3 AT89C51内部结构原理图3.2 LED概述
LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。
LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。
半导体晶片由三部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子,中间通常是1至5个周期的量子阱。
当电流通过导线作用于这个晶片的时候,电子和空穴就会被推向量子阱,在量子阱内电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。
而光的波长也就是光的颜色,是由形成P-N结的材料决定的。
它是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
由于具有容易控制、低压直流驱动、组合后色彩表现丰富、使用寿命长等优点,广泛应用于城市各工程中、大屏幕显示系统。
LED可以作为显示屏,在计算机控制下,显示色彩变化万千的视频和图片。
LED是一种能够将电能转化为可见光的半导体。
近十几年来,为了开发蓝色高亮度发光二极管,世界各地相关研究的人员无不全力投入。
而商业化的产品如蓝光及绿光发光二级管LED及激光二级管LD的应用无不说明了III-V族元素所蕴藏的潜能。
在目前商品化LED之材料及其外延技术中,红色及绿色发光二极管之外延技术大多为液相外延成长法为主,而黄色、橙色发光二极管目前仍以气相外延成长法成长磷砷化镓GaAsP材料为主。
LED的具体结构如图4所示:
图4 LED的结构图
3.3 外部时钟方式电路
外部时钟电路如图5所示,它在单片机的外部通过XTAL1、XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器。
本系统采用的为11.0592MHz的晶振,一个机器周期为1us,C1、C2为22PF。
3.4
复位信号是高电平有效。
上电自动复位通过电容C3和电阻R2来实现,按键手动复位是图6中复位键来实现的。
3.5
霓虹灯控制电路用红色、绿色、黄色LED发光二极管,分别与8个1K的分压电阻相串联,分别与单片机的P1.0,P1.1,P1.2,P1.3,P1.4,P1.5, P1.6,P1.7口相连。
四.软件设计
在用表格进行程序设计的时候,要用以下的指令来完成
1. 利用MOV DPTR,#DATA16 的指令来使数据指针寄存器指到表的开头。
2. 利用MOVC A,@A+DPTR 的指令,根据累加器的值再加上DPTR 的值,就可以使程序计数器PC 指到表格内所要取出的数据。
因此,只要把控制码建成一个表,而利用MOVC A,@A+DPTR 做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如下图所示:
3. 汇编源程序
ORG 0
START: MOV DPTR,#TABLE LOOP: CLR A
MOVC A,@A+DPTR CJNE A,#01H,LOOP1 JMP START
LOOP1: MOV P1,A
MOV R3,#20
LCALL DELAY
INC DPTR
JMP LOOP
DELAY: MOV R4,#20
D1: MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
DJNZ R3,DELAY
RET
TABLE: DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,07FH
DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
DB 07FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
DB 07FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
DB 00H, 0FFH,00H, 0FFH
DB 01H
END
4. C 语言源程序
#include <reg52.h>
unsigned char code table[]={
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f, 0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe, 0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe, 0x00,0xff,0x00,0xff, 0x01};
unsigned char i; void delay(void) {
unsigned char m,n,s; for(m=20;m>0;m--) for(n=20;n>0;n--) for(s=248;s>0;s--); }
void main(void) {
while(1)
{
if(table[i]!=0x01) {
P1=table[i];
i++;
delay();
}
else
{
i=0;
}
}
}
五.软件调试
在protues上进行仿真实验。
首先使用Keil uVsion 2将编写完成的程序编译生成HEX文件,将HEX文件烧录到单片机中,进行仿真实验,结果如下图所示,可以看到,LED已经选择性的闪烁。
仿真图
六.总结
通过这次紧张的课程设计,我收获颇多,每天面对着电脑,翻阅各种相关资料,也亲自动手调试,体会颇深。
在这次课设中,加深了单片机相关知识的理解,也接触了烧录器。
在课设开始的前期,也遇到了麻烦,比如说,LED闪烁时间不符合要求,C语言编程不太熟练,很感谢汤老师的耐心教导,她的幽默让我们觉得亲切,她的认真负责让我们折服。
在繁忙的一个学期即将结束之时,我的思想成熟了,这次的课设让我找到了方向,让我懂得了很多,有知识方面的,但大部分还是人格方面的。
我相信,只要不放弃,只要努力,就一定可以!
附录I 元件清单。