单片机流水灯实训报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于AT89C52单片机的流水灯设计实训报告2014年12月29日学院:信息工程学院班级:12级电子信息工程本科班学号:姓名:指导教师:目录前言.............................................................................................................1一、总体设计.............................................................................................21.1总体设计框图..............................................................................21.2硬件具体原理图..........................................................................3二、设计内容.............................................................................................32.1设计要求.......................................................................................32.2硬件设计.......................................................................................32.3软件设计.......................................................................................52.3.1Keil的使用步骤:...........................................................52.3.2程序流程............................................................................82.3.3程序代码............................................................................9三、最小系统板的焊接及调试流程......................................................123.1最小系统板电路焊接流程:....................................................123.1.1焊前准备:.......................................................................123.1.2焊接步骤:.......................................................................123.2调试及问题解决方法................................................................133.2.1仿真....................................................................................133.2.2下载....................................................................................143.2.3问题及解决方法...............................................................14四、总结体会...........................................................................................151前言随着社会的进步和发展和人们生活水平的不断提高单片机技术已经成为当今各种新技术的载体各个应用领域的工程技术人员都应掌握单片机应用术。同时,它所给人带来的方便也是不可否定的。其中,数码管就是一个典型的例子。但人们对它的要求越来越高要为现代人工作、科研、生活、提供更好的方便的设施,就需要从单片机技术入手,一切向着数字化控制、智能化控制方向发展。单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。单片微型计算机就是将CPU、RAM、ROM、时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。我们周围有许多广告牌。通过单片机的控制,我们可以把城市的夜晚装饰的更漂亮。通过对单片机的系统学习,对一些广告灯的设计做了一些必要的改进。同时对自己的改进也做了真实的仿真。达到了预期的目的。2一、总体设计1.1总体设计框图图1.1流水灯总体设计框图本次LED流水灯主要基于STC89C52最小系统而设计的。89C52内置8位中央处理单元、256字节内部数据存储器RAM、8K片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。89C52有PDIP(40PIN)和PLCC(44PIN)两种封装形式。89C51的管脚VCC为供电电压,GND为接地。P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地AT89S52最小系统LED流水灯外围供电电源3址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。本次流水灯的设计采用使用外部晶振,即外接一个晶体振荡器与内部的差分放大器组成一个时钟电路,再由其产生时钟脉冲为整个电路提供计时等。本次设计使用P1的八个引脚控制流水灯,8个LED灯采用共阴极接法。1.2硬件具体原理图图1.2硬件原理图二、设计内容2.1设计要求项目名称:8位LED流水灯设计。项目特点:思路简单、条理清晰,成本低。实现功能要求:通过编程控制8个LED灯,实现流水的花样变换。2.2硬件设计1、电路图4图2.1单片机最小系统2、选取的原件:(所用所用元件清单)名称规格数量名称规格数量AT89C52单片机1复位按键1电阻10kΩ2LED9排阻1USB接口1电容100uF1串行接口9孔1电容10uF1芯片插槽1晶振12MHz1开关1导线33、单片机最小系统PCB图图2.2最小系统PCB图52.3软件设计2.3.1Keil的使用步骤:(1)新建项目文件。点击Project菜单,选择弹出的下拉式菜单中的NewProject。在“文件名”中输入第一个工程名称,“LED”。“保存”后的文件扩展名为.uvproj。(2)选择所要的单片机,常用Ateml公司的AT89C52。6(3)在工程中创建新的程序文件。(4)点击保存新建的程序,led.c,保存在项目所在的目录中。(5)将程序文件加到项目中。7(6)设定创建HEX文件选项。8(7)编译运行,调试无误;2.3.2程序流程程序框图如图2.2所示:9图2.2程序流程图2.3.3程序代码#includereg51.h//包含单片机寄存器的头文件#defineuintunsignedint/*********函数功能:延时一段时间*****************/voiddelay(uintk)//{unsignedchara,b;for(;k0;k--)for(b=142;b0;b--)for(a=2;a0;a--);}/*******函数功能:主函数(C语言规定必须有也只能有1个主函数)***********/voidmain(void){uinti,j,k,temp,text=0x00;Uintb[8]={0x01,0x04,0x10,0x40,0x80,0x20,0x08,0x02};Uinta[15]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80};Uintc[4]={0x81,0x42,0x24,0x18};10Uintd[2]={0xaa,0x55};while(1)//无限循环{temp=0x01;//00000001for(i=8;i0;i--){P1=temp;delay(500);P1=text;delay(500);P1=temp;delay(500);temp=temp1;}temp=0x80;//10000000for(j=8;j0;j--){P1=temp;delay(300);temp=temp1;}temp=0x07;//00000111for(i=8;i0;i--){P1=temp;delay(300);temp=temp1;}temp=0xe0;//11100000for(j=8;j0;j--)11{P1=temp;delay(300);temp=temp1;}for(k=0;k=14;k++)//从左到右依次全部点亮{temp=a[k];P1=temp;delay(1000);}for(k=0;k=14;k++)//从左到右依次全部熄灭{temp=a[14-k];P1=temp;delay(1000);}for(j=0;j=7;j++)//从左到右奇数闪过去,偶数闪回来{temp=b[j];P1=temp;delay(1000);}temp=0x00;for(j=4;j0;j--)//从两边闪烁到中间{P1=c[j];P1=temp;delay(300);}temp=0x00;for(j=0;j4;j++)//从中间闪烁到两边12{P1=c[j];P1=temp;delay(300);}temp=0x00;for

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功