黄映梅
摘 要:单片机具有体积小、功能强、应用面广等特点,可以说智能控制和自动控制就是靠单片机。本文重点介绍如何用AT89S51型单片机模块的功能自制的循环左(右)移动的一款简易循环广告灯。
关键词:AT89S51 单片机 LED 循环灯
一、研究内容及目标
循环彩灯的实验设计是利用单片机的原理实现彩灯循环点亮,利用取表的方法,使端口P1.0做单一灯的变化,即左移2次、右移2次、闪烁2次(延时的时间0.2秒),端口P1.1至P1.7的LED灯循环规律同端口P1.0。
二、单片机的配置及元件功能
1.单片机AT89S51的功能说明
(1)4kB字节可编程闪烁存储器;
(2)寿命为1000次写/擦循环;
(3)数据保留时间为10年;
(4)全静态工作,0Hz~24MHz;
(5)三级程序存储器锁定;
(6)128×8位内部RAM,32可编程I/O线;
(7)两个16位定时器/计数器;
(8)5个中断源,可编程串行通道;
(9)低功耗的闲置和掉电模式;
(10)片内振荡器和时钟电路(与MCS-51兼容)。
2.单片机AT89S51的引脚主功能说明(图1)
图1
(1)VCC—供电电压,GND—接地。
(2)P0口—P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第8位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
(3)P1口—P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第8位地址接收。
(4)P2口—P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。以此作为输入时,P2口的管脚被外部拉低,将输出电流,这是由于内部上拉的缘故。当P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
(5)P3口—P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89S51的一些特殊功能口:P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2/INTO(外部中断0);P3.3/INT1(外部中断1);P3.4 TO(计时器0外部输入);P3.5 T1(计时器1外部输入);P3.6/WR(外部数据存储器写选通);P3.7/RD(外部数据存储器读选通)。P3口同时为闪烁编程和编程校验接收一些控制信号。
(6)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
(7)ALE/PROG—当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字節。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是,每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出,可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE,才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
(8)/PSEN—外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
(9)/EA/VPP—当/EA保持低电平时,则在此期间是外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间是内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
(10)XTAL1—反向振荡放大器的输入及内部时钟工作电路的输入。
(11)XTAL2—来自反向振荡器的输出。
3.循环灯主要接线说明
(1)单片机32个I/O口全部引出,在开发板顶部以排针的形式引出,并带几组VCC和GND。
(2)单片机32个I/O口先经过双排针跳线,然后再接入电路,这个独特的设计打破了传统固定电路的局限性,只要用几根杜邦线就可任意改变原有电路的连接,或是组成某个功能的最小系统。
(3)锁存器控制的8位8段数码管显示,可做计数器、遥控码显示、频率计、电子钟等。
(4)8×8位LED显示,每位LED显示都可以是一个LED 8×8位矩阵,并接有一位使能控制,使操作不干扰(可做闪灯、流水灯、各式花样灯)。
(5)模数转换芯片ADC0804及AD扩展接口,可配合板载光敏热敏电阻扩展接口以及精密电位器,把光照强度、热量、电压等模拟量转换为数字量并显示出来,这块芯片是我们用得最多的单片机外围数据处理芯片之一。
(6)模数转换芯片DAC0832及DA扩展接口,把数字量转换为模拟量。
(7)无线模块接口,配合图片中的4键发射器,可做单片机解码无线遥控器信号的实验,通过编写代码能解码所有的315MHz的信号。
(8)74HC164串转并芯片,把串行数据转换为并行数据,扩展了单片机的I/O口。
(9)NE555可调频率方波发生器,可配合数码管和单片机外部中断以及外部计数器做中断检测,进行计数器计数、测脉宽、频率计等实验。
(10)ULN2003步进电机控制及输出接口,当然也可用PWM来驱动直流电动机。
(11)光电耦合芯片MOC3023以及可控硅BTA06驱动AC220V输出接口,这是本开发板所独有的配置,它可与本开发板的温度传感器DS18B20配合使用,做成一个独立的温度控制驱动系统,如温度试验箱,而不需要添加任何外围元件了(加热丝除外),还可做可控硅调压、调功、调光、电动机调速等,应用非常广泛。
(12)PS/2键盘鼠标接口。
(13)4×4矩阵键盘和4个独立按键,熟悉矩阵键盘编码、解码扫描原理,可作为人机输入接口编写按键输入程序,独立按键可做普通独立按键检测试验。
(14)一体化红外线接收头SM0038与板载红外发射电路,可以像在家遥控电视机一样控制开发板,还可以用开发板来控制空调、电视机等,甚至可配合无线模块或者因特网进行远程穿墙遥控空调、电视。
(15)继电器驱动以及外接扩展接口,通过继电器可以控制其他电器设备,小电流控制大电流。
(16)IIC总线AT24C08外部EEPROM存储芯片,使用IIC总线,高达8kB的存储容量掉电不丢失数据。
(17)备用电源,使用SPI总线,用DS1302可以做一个万年历电子时钟,比定时器做得精确很多。
(18)MAX232芯片RS232通讯接口,可以作为与计算机通讯的接口,同时也可作为STC单片机下载程序的接口及仿真调试的接口。
(19)字符液晶1602LCD接口,采用接插件方式方便插拔,可显示两行,每行16个,共计32任意ASCII码字符,它的功能应用比数码管丰富很多,显示的信息量也更大。
(20)图形点阵液晶12864接口,采用接插件方式方便插拔,可显示任意汉字和图形,是目前单片机图文显示最常用的显示器件。我们实验板支持带字库的12864液晶,开发程序更方便,同时12864接口还可作为TFT彩屏液晶的
接口。
(21)镀金晶振插座,为了使晶振与开发板稳定可靠地连接,特别采用了镀金晶体插座。
(22)本实验板采用40PIN锁紧座,用于安放单片机芯片,非常方便单片机芯片的取放。
(23)USB电脑电源引入以及外接5V直流电源接口,无需再外接电源适配器,当电流较大或者不方便时,也可用外接5V的直流电源接口供电。
三、循环灯的电路原理图(图2)
图2
四、系统板上硬件连线
把单片机系统区域中的P1.0-P1.7,用8芯排线连接到八路发光二极管指示模块区域中的L1-L8端口上,要求P1.0对应着L1,P1.1对应着L2……P1.7对应着L8。
五、程序设计内容
在用表格进行程序设计的时候,要用以下的指令来完成。
利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。
利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。
因此,只要把控制码建成一个表,而利用MOVC A,@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如图3所示。
图3
在原理图中的每位LED显示都可以是一个LED矩阵,例如8×8位矩阵,每个矩阵内或矩阵间还可以采用不同颜色的发光二极管组合,通过使能控制可做成闪灯、流水灯、各式花样灯。
参考文献:
[1]王誠.Altera FPGA/CPLD设计[M].北京:人民邮电出版社,2005.
[2]高仁璟.数字电子技术基础与设计[M].大连:大连理工大学出版社,2004.
[3]李洪伟.基于Quartus II FPGA/CPLD设计[M].北京:电子工业出版社,2006.
[4]谢云.现代电子技术实践课程指导[M].北京:机械工业出版社,2003.
[5]阎石.数字电子技术基础(第五版)[M].北京:高等教育出版社,2006.
[6]王辉.MAX+plus II和Quartus II应用与开发技巧[M].北京:机械工业出版社,2007.
[7]赵负图.数字逻辑集成电路手册[M].北京:化学工业出版社,2005.