基于AT89C51单片机的LED彩灯控制器设计Word文档格式.docx
- 文档编号:20642374
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:23
- 大小:307.86KB
基于AT89C51单片机的LED彩灯控制器设计Word文档格式.docx
《基于AT89C51单片机的LED彩灯控制器设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的LED彩灯控制器设计Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
2.3.4按发光强度和工作电流分14
2.4LED的应用14
2.4.1单LED电平指示电路14
2.4.2单LED可充作低压稳压管用15
2.4.3电平表15
2.5发光二极管的检测15
2.5.1普通发光二极管的检测15
2.5.2系统功能16
3彩灯设计18
3.1硬件设计18
3.1.1主控模块电路选型18
3.1.2管内LED板模块选型18
3.2软件设计20
3.3LED技术的发展前景24
结论29
致谢30
参考文献31
1AT89C51单片机的原理简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.1主要特性
·
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128×
8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
1.2管脚说明
VCC:
供电电压。
GND:
接地。
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位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚
备选功能
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口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
1.3振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
1.4芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
1.5串口通讯
单片机的结构和特殊寄存器,这是你编写软件的关键。
至于串口通信需要用到那些特殊功能寄存器呢,它们是SCON,TCON,TMOD,SCON等,各代表的含义。
SBUF数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。
有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?
而不是收发各用一个寄存器。
”实际上SBUF包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。
CPU在读SBUF时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。
发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。
操作SBUF寄存器的方法则很简单,只要把这个99H地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfrSBUF=0x99;
当然你也可以用其它的名称。
通常在标准的reg51.h或at89x51.h等头文件中已对其做了定义,只要用#include引用就可以了。
SCON串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。
SCON就是51芯片的串行口控制寄存器。
它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51芯片串行口的工作状态。
51芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON寄存器。
它的各个位的具体定义如下:
SM0SM1SM2RENTB8RB8TIRI
SM0、SM1为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。
串行口工作模式设置。
SM0SM1模式
功能
波特率
0
0
同步移位寄存器
fosc/12
1
1
8位UART
可变
2
9位UART
fosc/32或fosc/64
3
在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。
表中的fosc代表振荡器的频率,也就是晶振的频率。
UART为(UniversalAsynchronousReceiver)的英文缩写。
SM2在模式2、模式3中为多处理机通信使能位。
在模式0中要求该位为0。
REM为允许接收位,REM置1时串口允许接收,置0时禁止接收。
REM是由软件置位或清零。
如果在一个电路中接收和发送引脚P3.0,P3.1都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0来禁止接收,在子程序结束处加入REM=1再次打开串口接收。
大家也可以用上面的实际源码加入REM=0来进行实验。
TB8发送数据位8,在模式2和3是要发送的第9位。
该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。
RB8接收数据位8,在模式2和3是已接收数据的第9位。
该位可能是奇偶位,地址/数据标识位。
在模式0中,RB8为保留位没有被使用。
在模式1中,当SM2=0,RB8是已接收数据的停止位。
TI发送中断标识位。
在模式0,发送完第8位数据时,由硬件置位。
其它模式中则是在发送停止位之初,由硬件置位。
TI置位后,申请中断,CPU响应中断后,发送下一帧数据。
在任何模式下,TI都必须由软件来清除,也就是说在数据写入到SBUF后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI不会由硬件清除,所以这时必须用软件对其清零。
RI接收中断标识位。
在模式0,接收第8位结束时,由硬件置位。
其它模式中则是在接收停止位的半中间,由硬件置位。
RI=1,申请中断,要求CPU取走数据。
但在模式1中,SM2=1时,当未收到有效的停止位,则不会对RI置位。
同样RI也必须要靠软件清除。
常用的串口模式1是传输10个位的,1位起始位为0,8位数据位,低位在先,1位停止位为1。
它的波特率是可变的,其速率是取决于定时器1或定时器2的定时值(溢出速率)。
AT89C51和AT89C2051等51系列芯片只有两个定时器,定时器0和定时器1,而定时器2是89C52系列芯片才有的。
波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。
波特率是指串行端口每秒内可以传输的波特位数。
有一些初学的朋友认为波特率是指每秒传输的字节数,如标准9600会被误认为每秒种可以传送9600个字节,而实际上它是指每秒可以传送9600个二进位,而一个字节要8个二进位,如用串口模式1来传输那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率用模式1传输时,每秒传输的字节数是9600÷
10=960字节。
51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M的晶振来计算,那么它的波特率可以达到1M。
模式2的波特率是固定在fosc/64或fosc/32,具体用那一种就取决于PCON寄存器中的SMOD位,如SMOD为0,波特率为focs/64,SMOD为1,波特率为focs/32。
模式1和模式3的波特率是可变的,取决于定时器1或2(52芯片)的溢出速率。
那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?
可以用以下的公式去计算。
波特率=(2SMOD÷
32)×
定时器1溢出速率式(1.1)
上式中如设置了PCON寄存器中的SMOD位为1时就可以把波特率提升2倍。
通常会使用定时器1工作在定时器工作模式2下,这时定时值中的TL1做为计数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。
在这个定时模式2下定时器1溢出速率的计算公式如下:
溢出速率=(计数速率)/(256-TH1)式(1.2)
上式中的“计数速率”与所使用的晶体振荡器频率有关,在51芯片中定时器启动后会在每一个机器周期使定时寄存器TH的值增加一,一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12M的晶振用在51芯片上,那么51的计数速率就为1M。
通常用11.0592M晶体是为了得到标准的无误差的波特率,那么为何呢?
计算一下就知道了。
如我们要得到9600的波特率,晶振为11.0592M和12M,定时器1为模式2,SMOD设为1,分别看看那所要求的TH1为何值。
代入公式:
11.0592M
9600=(2÷
((11.0592M/12)/(256-TH1))
TH1=25式(1.3)
12M
((12M/12)/(256-TH1))
TH1≈249.49式(1.4)
上面的计算可以看出使用12M晶体的时候计算出来的TH1不为整数,而TH1的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600波特率。
当然一定的误差是可以在使用中被接受的,就算使用11.0592M的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。
2LED工作原理、特性及应用
2.1LED发光原理
半导体发光器件包括半导体发光二极管(简称LED)、数码管、符号管、米字管及点阵式显示屏(简称矩阵管)等。
事实上,数码管、符号管、米字管及矩阵管中的每个发光单元都是一个发光二极管。
发光二极管是由Ⅲ-Ⅳ族化合物,如GaAs(砷化镓)、GaP(磷化镓)、GaAsP(磷砷化镓)等半导体制成的,其核心是PN结。
因此它具有一般P-N结的I-N特性,即正向导通,反向截止、击穿特性。
此外,在一定条件下,它还具有发光特性。
在正向电压下,电子由N区注入P区,空穴由P区注入N区。
进入对方区域的少数载流子(少子)一部分与多数载流子(多子)复合而发光,如图1所示。
假设发光是在P区中发生的,那么注入的电子与价带空穴直接复合而发光,或者先被发光中心捕获后,再与空穴复合发光。
除了这种发光复合外,还有些电子被非发光中心(这个中心介于导带、介带中间附近)捕获,而后再与空穴复合,每次释放的能量不大,不能形成可见光。
发光的复合量相对于非发光复合量的比例越大,光量子效率越高。
由于复合是在少子扩散区内发光的,所以光仅在靠近PN结面数μm以内产生。
理论和实践证明,光的峰值波长λ与发光区域的半导体材料禁带宽度Eg有关,即
λ≈1240/Eg(mm)式(2.1)
式中Eg的单位为电子伏特(eV)。
若能产生可见光(波长在380nm紫光~780nm红光),半导体材料的Eg应在3.26~1.63eV之间。
比红光波长长的光为红外光。
现在已有红外、红、黄、绿及蓝光发光二极管,但其中蓝光二极管成本、价格很高,使用不普遍。
2.2LED的特性
2.2.1极限参数的意义
(1)允许功耗Pm
允许加于LED两端正向直流电压与流过它的电流之积的最大值。
超过此值,LED发热、损坏。
(2)最大正向直流电流Ifm
允许加的最大的正向直流电流。
超过此值可损坏二极管。
(3)最大反向电压VRm
所允许加的最大反向电压。
超过此值,发光二极管可能被击穿损坏。
(4)工作环境topm
发光二极管可正常工作的环境温度范围。
低于或高于此温度范围,发光二极管将不能正常工作,效率大大降低。
2.2.2电参数的意义
(1)光谱分布和峰值波长
某一个发光二极管所发之光并非单一波长,其波长大体按图2所示。
由图可见,该发光管所发之光中某一波长λ0的光强最大,该波长为峰值波长。
(2)发光强度IV
发光二极管的发光强度通常是指法线(对圆柱形发光管是指其轴线)方向上的发光强度。
若在该方向上辐射强度为(1/683)W/sr时,则发光1坎德拉(符号为cd)。
由于一般LED的发光二强度小,所以发光强度常用坎德拉(mcd)作单位。
(3)光谱半宽度Δλ
它表示发光管的光谱纯度.是指图3中1/2峰值光强所对应两波长之间隔.
(4)半值角θ1/2和视角
θ1/2是指发光强度值为轴向强度值一半的方向与发光轴向(法向)的夹角。
半值角的2倍为视角(或称半功率角)。
图3给出的二只不同型号发光二极管发光强度角分布的情况。
中垂线(法线)AO的坐标为相对发光强度(即发光强度与最大发光强度的之比)。
显然,法线方向上的相对发光强度为1,离开法线方向的角度越大,相对发光强度越小。
由此图可以得到半值角或视角值。
(5)正向工作电流If
它是指发光二极管正常发光时的正向电流值。
在实际使用中应根据需要选择IF在0.6·
IFm以下。
(6)正向工作电压VF
参数表中给出的工作电压是在给定的正向电流下得到的。
一般是在IF=20mA时测得的。
发光二极管正向工作电压VF在1.4~3V。
在外界温度升高时,VF将下降。
(7)V-I特性
在正向电压正小于某一值(叫阈值)时,电流极小,不发光。
当电压超过某一值后,正向电流随电压迅速增加,发光。
由V-I曲线可以得出发光管的正向电压,反向电流及反向电压等参数。
正向的发光管反向漏电流IR
2.3LED的分类
2.3.1按发光管发光颜色分
按发光管发光颜色分,可分成红色、橙色、绿色(又细分黄绿、标准绿和纯绿)、蓝光等。
另外,有的发光二极管中包含二种或三种颜色的芯片。
根据发光二极管出光处掺或不掺散射剂、有色还是无色,上述各种颜色的发光二极管还可分成有色透明、无色透明、有色散射和无色散射四种类型。
散射型发光二极管和达于做指示灯用。
2.3.2按发光管出光面特征分
按发光管出光面特征分圆灯、方灯、矩形、面发光管、侧向管、表面安装用微型管等。
圆形灯按直径分为φ2mm、φ4.4mm、φ5mm、φ8mm、φ10mm及φ20mm等。
国外通常把φ3mm的发光二极管记作T-1;
把φ5mm的记作T-1(3/4);
把φ4.4mm的记作T-1(1/4)。
由半值角大小可以估计圆形发光强度角分布情况。
从发光强度角分布图来分有三类:
(1)高指向性
一般为尖头环氧封装,或是带金属反射腔封装,且不加散射剂。
半值角为5°
~20°
或更小,具有很高的指向性,可作局部照明光源用,或与光检出器联用以组成自动检测系统。
(2)标准型
通常作指示灯用,其半值角为20°
~45°
。
(3)散射型
这是视角较大的指示灯,半值角为45°
~90°
或更大,散射剂的量较大。
2.3.3按发光二极管的结构分
按发光二极管的结构分有全环氧包封、金属底座环氧封装、陶瓷底座环氧封装及玻璃封装等结构。
2.3.4按发光强度和工作电流分
按发光强度和工作电流分有普通亮度的LED(发光强度100mcd);
把发光强度在10~100mcd间的叫高亮度发光二极管。
一般LED的工作电流在十几mA至几十mA,而低电流LED的工作电流在2mA以下(亮度与普通发光管相同)。
除上述分类方法外,还有按芯片材料分类及按功能分类的方法。
2.4LED的应用
由于发光二极管的颜色、尺寸、形状、发光强度及透明情况等不同,所以使用发光二极管时应根据实际需要进行恰当选择。
由于发光二极管具有最大正向电流IFm、最大反向电压VRm的限制,使用时,应保证不超过此值。
为安全起见,实际电流IF应在0.6IFm以下;
应让可能出现的反向电压VRRm。
LED被广泛用于种电子仪器和电子设备中,可作为电源指示灯、电平指示或微光源之用。
红外发光管常被用于电视机、录像机等的遥控器中。
2.4.1单LED电平指示电路
在放大器、振荡器或脉冲数字电路的输出端,可用LED表示输出信号是否正常,如图7所示。
R为限流电阻。
只有当输出电压大于LED的阈值电压时,LED才可能发光。
2.4.2单LED可充作低压稳压管用
由于LED正向导通后,电流随电压变化非常快,具
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 单片机 LED 彩灯 控制器 设计