设计中主要依据彩灯控制电路,电路最大的特点是稳压和整流装置只顾按键、二极管、按钮及很少的阻容器件便能实现各种花样等自然的变换并能即按即变,永久保存。在国外已经得到了广泛地应用,国内的应用正在渗透到传统的家电领域、通信领域、装饰领域及待开发的领域。在装饰领域方面,采用彩灯控制电路,加强了人机联系,如会显示数字和汉字的大型彩灯组,从而有效的提高审美观念,方便了使用者,更为人们所熟悉。大至工业领域,小到玩具、彩灯据此本文介绍了用新偏控制的方式,通过单片机AT89C51和地址锁存器做成的彩灯控制器。因为AT89C51在片内含有Flash存储器,而地址锁存器可将片内信息存于闪烁存储器中,而且有自动变换花样高质量、自然的还原技术。另外,它内置微控制器串行通信接口,可通过单片AT89C51实现其所有功能。要制作彩灯控制器,需要将单片机与彩灯芯片的控制端口进行连接,对单片机进行编程,使其实现相应的功能,还要将单片机的输出口连接键盘和显示器,使其控制相应的功能并得到显示。
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。本文提出了一种基于AT89C51单片机的彩灯控制方案,实现对彩灯的控制。本方案以AT89C51单片机作为主控核心,与键盘、显示、驱动等模块组成核心主控制模块,可以显示不同的花样。
2·芯片及元件原理
2.1 AT89C51单片机
AT89C51单片机是一个低功耗、高性能含有4K字节快擦写可编程/擦除只读存储器的8位CMOS
单片机,时钟频率高达20MHz,与8031的指令系统完全兼容。芯片上EPROM允许在线(+5V)电擦除、电写入或采用通用的非易失存储编程器对程序存储器重复编程。此外,AT89C51还支持由软件选择的两种掉电工作方式,非常适用于电池供电或其他要求功耗低的场合。由于芯片内的4K程序存储器可在线或用编程器重复编程受到设计者的欢迎,并得到较为广泛的应用。
2.2 AT89C51的结构
ATMEL公司的89系列单片机是ATMEL公司的8位Flash单片机[1]。AT89C51系列单片机对于一般用户来说,存在3个明显的特点:
(1)内含Flash存储器[2] 因此在应用系统的开发过程中可以十分容易的进行程序的修改,这就大大缩短了系统的开发周期,同时,在系统工作过程中,能有效的保存一些数据信息,即使外接电源损坏也不影响信息的保存。
(2)与80C51插座兼容[3] AT89C51系列单片机的引脚与80C51是一样的,当用AT89C51单片机取代80C51时,可以直接进行取代。这时,不管采用40引脚还是44引脚的产品只要用相同引脚的AT89C51单片机取代80C51的单片机即可。
(3)静态时钟方式 AT89C51单片机采用静态时钟方式,所以可以节省电能。这对于降低便携式产品的功耗十分有用。
AT89C51单片机的内部结构与一般单片机相似[4],有CPU、存储器和I/O接口等部件。AT89C51是ATMEL公司的8位Flash单片机系列,
Flash存储器,
因此,在应用中有广泛的前景和用途,特别是在便携式,省电及特殊信息保存的仪器和系统中显得更为有用。89系列单片机若干优点,内部含Flash存储器,在系统的开发过程中可以十分容易进行程序修改,大大缩短了系统的开发周期,同时,在系统工作过程中能有效保存一些数据信息[5],即使外界电源损坏也不会影响到信息的保存,与80c51插座兼容,用相同引脚的89系列单片机可直接取代80c51的单片机,静态时钟方式,89系列单片机采用静态的时钟方式所以可以节省电能,这对于降低便携式产品的功耗十分有用,错误编程亦无废品产生,一般的OTP产品,一旦编程编误即成废品,而89系列的单片机内部采用了Flash memory,所以错误编程之后仍可重新编程,直到正确为止,故不存在废品,可进行反复系统试验,用89系列单片机设计的系统,可以反复进行系统试验,每次试验可以编入不同的程序,这样保证用户的系统设计达到最优,而且,随用户的需要和发展[6],还可以修改,使系统不断能追随用户的最新要求。89C51在89系列单片机中属标准型单片机,它和MCS-51系列单片机兼容。内部有4K可重复编程的Flash memory,可进行1000次擦写操作,全静态工作为小33MHz有三级程序存储器加密锁定,有内部含128-56字节的RAM32条可编程的FO端口,有2个16位定时器/计数器,有通用串行接口,有低电压空闲及电源下降方式,中断有6级。
2.3 AT89C51的引脚描述
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-FlashProgrammable
and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机
[7]。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51[8]指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。VCC供电电压。GND,接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0
/地址的第八位。在FIASH编
程时,P0口作为原码输入口[9],当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1
,它利用内部上拉优势,当对外部八位地址数据存
储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平[10],并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3口管脚备选功能P3.0 RXD(串行输入口),P3.1 TXD(串行输出口),P3.2 /INT0(外部中断0),P3.3 /INT1(外部中断1),P3.4 T0(记时器0外部输入),P3.5 T1(记时器1外部输入),P3.6 /WR(外部数据存储器写选通),P3.7 /RD(外部数据存储器读选通)。P3口同时为闪烁。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个
内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时[10],P2口输出地址的高位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故[11]。
AT89C51有二种可用软件编程的省电模式,他们是空闲模式和掉电工作模式。这二种方式是控制专用寄存器PCON(电源控制寄存器)中的PD和IDL来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态,IDL是空闲等待状态,当IDL=1时,激活空闲工作模式,单片机进入睡眠状态[12],如需同时进入二种状态,即PD和ID同时为1,则先激活掉电工作模式。在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内RAM和所有特殊功能寄存器的内容保持不变。空闲模式可有任何允许的中断请求或硬件复位中止。中止空闲模式的方法有二种,其一是任何一条被允许中断的事件被激活IDL被硬件清除,既中止空闲工作模式。程会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RET1(中断返回)指令后,下一条要执行的指令就是是单片机进入空闲模式那条指令后面的一条指令[13]。其二是通过硬件复位电路也可将空闲模式终止。需要注意的是当由硬件复位来中止空闲模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位工作,硬件复位脉冲要保持二个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。为了避免对端口产生意外写入,激活空闲模式的指令后一条指令不应是一条对端口或外部存储器的写入指令。掉电模式,在掉电模式下进入掉电模式的指令是最最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在中止掉电模式前被冻结。推出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,再VCC恢复到正常工作电平前,复位应无效,且必须保持一定时间内使振荡器重启动并稳定工作。
2.4 74LS240芯片的功能
应用功能: 八缓冲器/总线驱动器(三态、反相) 这种八缓冲器和线驱动器是为提高三态
输出存储地址驱动器、时钟驱动器和总线定向接收器和发射器的性能和集成度而特意设计的。此电路的特点是,扇出高,扇入好,噪声容限高(400mV)。可用来驱动小到133Ω的终端负载线。
3 · 硬件电路设计
3.1 定时与复位模块
3.1.1时钟电路
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片
内电路初始化,使单片机从一种确定的初态开始运行。
时钟电路 89C51单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。
在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如图3-1所示。图3-1中电容器Cl、C2起稳定振荡频率[14]、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。
3--1 时钟电路图