基于51单片机的霓虹灯.doc_第1页
基于51单片机的霓虹灯.doc_第2页
基于51单片机的霓虹灯.doc_第3页
基于51单片机的霓虹灯.doc_第4页
基于51单片机的霓虹灯.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实训报告基于单片机的霓虹灯设计姓名:xxx学号:xxxxxxxxxxxxxxx2012/5/311.模块功能简介1.1 STC89C52单片机及其引脚说明89C52是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。引脚说明:VCC:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX R1),P2口输出特殊功能寄存器的内容。当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。ALE/:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出()。一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。:程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。/VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。当执行内部编程指令时,应该接到VCC端。XTAL1:振荡器反相放大器以及内部时钟电路的输入端。XTAL2:振荡器反相放大器的输出端。1.2 单片机的最小系统电路本次实训用到的晶振为12M,30PF的无极性电容两个,主要作用是帮助振荡器起振,晶体的振荡频率范围是1.213MHZ。晶体振荡频率高,则系统的时钟频率也高,单片机运行的 速度也就越快在最小系统中用到一个轻触按键,用于单片机的复位,接单片机的第9脚.单片机最小系统连线如图1所示:图1 单片机最小系统13电路中的发光二极管的接法共阳接法主控模块采用的是AT89S52单片机,AT89S52是一个8位单片机,片内ROM全部采用FLASH ROM技术,与MCS-51系列完全兼容,它能以3V的超低电压工作,晶振时钟最高可达24MHz。AT89S52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。第31引脚需要接高电位使单片机选用内部程序存储器;第9引脚是复位引脚,要接一个上电手动复位电路;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS引脚之间接0.1F高频滤波电容。第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号。芯片与电路图:LED发光二极管如图3所示:图3 LED发光二极管连接图14 LED发光二极管LED发光二极采用共阳接法,由于单片机I/O口输出功率比较小.如果把发光二极管阳极接在I/O口的话,会导致二极管亮度不够.共阳接法使得发光二极管获得比较大的功率。 实训中用到16个470欧的电阻,起到限流的作用,保护LED发光二极管。该霓虹灯是以单片机AT89S52为核心来完成的,在硬件电路中采用P2口作为8位LED数码管的驱动接口。单片机的八个输出端P0口同时又用来控制数码管的显示。8个三极管,再接于数码管阳极用于驱动数码管。因为共阳的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该电路中的8位LED数码管均用共阳极的数码管。在8位LED显示时,为了简化电路,降低成本,8个LED显示器共用一个8位的I/O, 8位LED数码管的位选线分别由相应的端口控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。主控模块采用的是AT89S52单片机,AT89S52是一个8位单片机,片内ROM全部采用FLASH ROM技术,与MCS-51系列完全兼容,它能以3V的超低电压工作,晶振时钟最高可达24MHz。AT89S52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。第31引脚需要接高电位使单片机选用内部程序存储器;第9引脚是复位引脚,要接一个上电手动复位电路;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS引脚之间接0.1F高频滤波电容。第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号。2 方案要求21 课题设计要求、系统方案介绍设计一个霓虹灯,采用LED模拟,要有多重花样.用单片机的P0口控制8盏发光二级管,P2口控制8盏发光二级管,P1口控制一个共阳数码管。P0,P2口控制的 16盏灯排成44矩阵,数码管显示灯的花样种类,方案中总共有12种花样,数码管显示数字为0,1,2,3,4,5,6,7,8,9,H,F。在设计的 过程中,P0口要加上上拉电阻,这是单片机系统内部决定的 。在方案中用到三个按键,按键S1是单片机复位键,按键S2是中断控制灯的闪亮速度,按键S3是选择灯的 花样,按键每按下一次,切换花样一次。3单片机的选择方案一:8031芯片内部无ROM,需要外扩程序存储器,由此造成电路焊接的困难,况且使用8031还需要另外购买其他的芯片,从而造成成本较高,性价比低。方案二:89C51芯片内部有ROM,且片内ROM全部采用Flash ROM,它能于3V的超低压工作,与MCS-51系列单片机完全兼容,但是其不具备ISP在线编程技术, 需把程序编写好以后再放到编程器中烧写,才可以进行硬件电路的调试,倘若程序编写出现问题,调试电路就比较麻烦,而且其芯片内存也只有4KB。方案三: 采用STC89C52, STC89C52单片机是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。4 实训总结 在看到题目后,第一件事是根据据自己的情况选择一个题目,由于自己对单片机的掌握能力还处于入门级别,所以选择霓虹灯的设计,大致制定了一下计划,初步设计通过三个通讯端口输出来控制霓虹灯,在程序设计上基本上是按照要实现的功能来实现,由于时间的问题,程序没有简化,所以先对而言看起来比较的复杂,在硬件的焊接过程中,板子质量比较差,在焊接要求上比较的严格,焊接完成的后,先检测了一下硬件的焊接无误,然后测试了一下基本功能,然后开始设计霓虹灯样式,设计用keil软件进行设计,设计完成通过protues仿真。所有功能设计完毕后,将程序烧录进单片机,基本设计完毕,通过这次实训,加深了对单片机的认识,对于焊接技术也有相应的提高,虽然这次的设计比较简单,但是这是一个开始,通过这次简单的开始可以慢慢的深入。元件清单名称 数量规格发光二极管24个LED 黄色 绿色 黄色电阻7个300欧STC89C511个轻触按键1个电容2个30PF电容1个1uF电阻1个10K欧晶体振荡器1个12M排组1个10K 程序清单 15#include#define unit unsigned intvoid delayms(unit);void main() while(1) P0=0xff; P1=0xff; P2=0xff; delayms(2000); P0=0x16; P1=0x56; P2=0x06; delayms(1000); P0=0xfe; P1=0xfe; P2=0xfe; delayms(80); P0=0x06; P1=0x56; P2=0x06; delayms(1000); P0=0xfe; P1=0xfe; P2=0xfe; delayms(80); P0=0x7e; P1=0x7e; P2=0x06; delayms(1000); P0=0xfe; P1=0xfe; P2=0xfe; delayms(80); P0=0x06; P1=0x56; P2=0x46; delayms(1000); P0=0xfe; P1=0xfe; P2=0xfe; delayms(80); P0=0x16; P1=0x56; P2=0x46; delayms(1000); P0=0xfe; P1=0xfe; P2=0xfe; delayms(80); P0=0x1e; P1=0xde; P2=0x06; delayms(1000); P0=0xfe; P1=0xfe; P2=0xfe; delayms(80); P0=0x56; P1=0x56; P2=0x06; delayms(1000); P0=0xfe; P1=0xfe; P2=0xfe; delayms(80); P0=0x46; P1=0x56; P2=0x16; delayms(1000); P0=0xfe; P1=0xfe; P2=0xfe; delayms(80); P0=0xfe; P1=0xfe; P2=0x06; delayms(1000); P0=0xfe; P1=0xfe; P2=0xfe; delayms(80); P0=0x06; P1=0x76; P2=0x06; delayms(1000); P0=0xff; P1=0xff; P2=0xff; delayms(300); P0=0xfe; delayms(100); P0=0xfc; delayms(100); P0=0xf8; delayms(100); P0=0xf0; delayms(100); P0=0xe0; delayms(100); P0=0xc0; delayms(100); P0=0x80; delayms(100); P0=0x00; delayms(100); P1=0xfe; delayms(100); P1=0xfc; delayms(100); P1=0xf8; delayms(100); P1=0xf0; delayms(100); P1=0xe0; delayms(100); P1=0xc0; delayms(100); P1=0x80; delayms(100); P1=0x00; delayms(100); P2=0xfe; delayms(100); P2=0xfc; delayms(100); P2=0xf8; delayms(100); P2=0xf0; delayms(100); P2=0xe0; delayms(100); P2=0xc0; delayms(100); P2=0x80; delayms(100); P2=0x00; delayms(100); P0=0x00; delayms(100); P0=0x80; delayms(100); P0=0xc0; delayms(100); P0=0xe0; delayms(100); P0=0xf0; delayms(100); P0=0xf8; delayms(100); P0=0xfc; delayms(100); P0=0xfe; delayms(100); P0=0xff; delayms(100); P1=0x00; delayms(100); P1=0x80; delayms(100); P1=0xc0; delayms(100); P1=0xe0; delayms(100); P1=0xf0; delayms(100); P1=0xf8; delayms(100); P1=0xfc; delayms(100); P1=0xfe; delayms(100); P1=0xff; delayms(100); P2=0x00; delayms(100); P2=0x80; delayms(100); P2=0x80; delayms(100); P2=0xc0; delayms(100); P2=0xe0; delayms(100); P2=0xf0; delayms(100); P2=0xf8; delayms(100); P2=0xfc; delayms(100); P2=0xfe; delayms(100); P2=0xff; delayms(100); P0=0xff; P1=0xff; P2=0xff; delayms(300); P2=0xfe; delayms(100); P2=0xfc; delayms(100); P2=0xf8; delayms(100); P2=0xf0; delayms(100); P2=0xe0; delayms(100); P2=0xc0; delayms(100); P2=0x80; delayms(100); P2=0x00; delayms(100); P1=0xfe; delayms(100); P1=0xfc; delayms(100); P1=0xf8; delayms(100); P1=0xf0; delayms(100); P1=0xe0; delayms(100); P1=0xc0; delayms(100); P1=0x80; delayms(100); P1=0x00; delayms(100); P0=0xfe; delayms(100); P0=0xfc; delayms(100); P0=0xf8; delayms(100); P0=0xf0; delayms(100); P0=0xe0; delayms(100); P0=0xc0; delayms(100); P0=0x80; delayms(100); P0=0x00; delayms(100); P2=0x00; delayms(100); P2=0x80; delayms(100); P2=0xc0; delayms(100); P2=0xe0; delayms(100); P2=0xf0; delayms(100); P2=0xf8; delayms(100); P2=0xfc; delayms(100); P2=0xfe; delayms(100); P2=0xff; delayms(100); P1=0x00; delayms(100); P1=0x80; delayms(100); P1=0xc0; delayms(100); P1=0xe0; delayms(100); P1=0xf0; delayms(100); P1=0xf8; delayms(100); P1=0xfc; delayms(100); P1=0xfe; delayms(100); P1=0xff; delayms(100); P0=0x00; delayms(100); P0=0x80; delayms(100); P0=0xc0; delayms(100); P0=0xe0; delayms(100); P0=0xf0; delayms(100); P0=0xf8; delayms(100); P0=0xfc; delayms(100); P0=0xfe; delayms(100); P0=0xff; delayms(100); P0=0x00; delayms(400); P1=0x00; delayms(400); P2=0x00; delayms(400); P0=0xff; delayms(400); P1=0xff; delayms(400); P2=0xff; delayms(400); P0=0x00; delayms(400); P1=0x00; delayms(400); P2=0x00; delayms(400); P0=0xff; delayms(400); P1=0xff; delayms(400); P2=0xff; delayms(400); P0=0xff; P1=0xff; P2=0xff; delayms(300); P0=0x00; P1=0x00; P2=0x00; delayms(400); P0=0xff; P1=0xff; P2=0xff; delayms(400); P0=0x00; P1=0x00; P2=0x00; delayms(400); P0=0x55; P1=0xff; P2=0x55; delayms(300); P0=0xaa; P1=0x7e; P2=0xaa; delayms(300); P0=0x55; P1=0xff; P2=0x55; delayms(300); P0=0xaa; P1=0x7e; P2=0xaa; delayms(300); P0=0x55; P1=0xff; P2=0x55; delayms(300); P0=0xaa; P1=0x7e; P2=0xaa; delayms(300); P0=0x55; P1=0xff; P2=0x55; delayms(300); P0=0xaa; P1=0x7e; P2=0xaa; delayms(300); P0=0x55; P1=0xff; P2=0x55; delayms(300); P0=0xaa; P1=0x7e; P2=0xaa; delayms(300); P0=0x55; P1=0xff; P2=0x55; delayms(300); P0=0xaa; P1=0x7e; P2=0xaa; delayms(300); P0=0x55; P1=0xff; P2=0x55; delayms(300); P0=0xaa; P1=0x7e; P2=0xaa; delayms(300); P0=0xff; P1=0xff; P2=0xff; delayms(300); P0=0x7f; delayms(300); P1=0xbf; delayms(300); P2=0xdf; delayms(300); P1=0xaf; delayms(300); P0=0x77; delayms(300); P1=0xab; delayms(300); P2=0xdd; delayms(300); P1=0xaa; delayms(300); P0=0xff; P1=0xff; P2=0xff; delayms(300); P2=0x7f; delayms(300); P1=0xbf; delayms(300); P0=0xdf; delayms(300); P1=0xaf; delayms(300); P2=0x77; delayms(300); P1=0xab; delayms(300); P0=0xdd; delayms(300); P1=0xaa; delayms(300); P0=0xff; P1=0xff; P2=0xff; delayms(300); P0=0x7f; delayms(300); P1=0xbf; delayms(300); P2=0xdf; delayms(300); P1=0xaf; delayms(300); P0=0x77; delayms(300); P1=0xab; delayms(300); P2=0xdd; delayms(300); P1=0xaa; delayms(300); P0=0xff; P1=0xff; P2=0xff; delayms(300); P2=0x7f; delayms(300); P1=0xbf; delayms(300); P0=0xdf; delayms(300); P1=0xaf; delayms(300); P2=0x77; delayms(300); P1=0xab; delayms(300); P0=0xdd; delayms(300); P1=0xaa; delayms(500); P0=0xff; P1=0xff; P2=0xff; delayms(300); P0=0x7f; P1=0x7f; P2=0x7f; delayms(300); P0=0xbf; P1=0xbf; P2=0xbf; delayms(300); P0=0xdf; P1=0xdf; P2=0xdf; delayms(300); P0=0xef; P1=0xef; P2=0xef; delayms(300); P0=0xf7; P1=0xf7; P2=0xf7; delayms(300); P0=0xfb; P1=0xfb; P2=0xfb; delayms(300); P0=0xfd; P1=0xfd; P2=0xfd; delayms(300); P0=0xfe; P1=0xfe; P2=0xfe; delayms(300); P0=0x7f; P1=0x7f; P2=0x7f; delayms(300); P0=0x3f; P1=0x3f; P2=0x3f; delayms(300); P0=0x1f; P1=0x1f; P2=0x1f; delayms(300); P0=0x0f; P1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论