流水灯课程设计_第1页
流水灯课程设计_第2页
流水灯课程设计_第3页
流水灯课程设计_第4页
流水灯课程设计_第5页
已阅读5页,还剩10页未读, 继续免费阅读

下载本文档

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

文档简介

PAGE3课程设计报告设计任务书设计题目流水灯的控制设计学生姓名专业班级设计要求:设计一个闪烁跑马灯控制器,该控制器可以控制8个灯顺序亮灭。当单片机上电后,8个灯依次从左向右亮,并且每个灯亮的时间为1秒钟。这时,如果按钮K1按下,则灯亮的顺序是从右向左,同样,每个灯亮的时间是1秒钟。这时,如果按下按钮K2,则此时,4个灯亮4个灯灭,延迟4秒钟以后,又开始从左向右点亮。最后,若按下按钮K3,则全部灯亮。此时若想再次点亮灯,必须重新上电。学生应完成的工作:1.按照实验要求查找AT89C51元器件等相关资料做设计总方案2.利用仿真软件完成电路的仿真,测试实验结果3.绘制原理图,根据仿真图焊接电路板4.使用KeiluVision2软件,完成控制程序的编写5.查看实际流水灯运行状况作出实验结果。6.依据课程设计要求完成课程设计任务书参考文献阅读:1.姚福安《电子电路设计与实践》山东科学技术出版社,20012.涂时亮《单片机软件设计技术》重庆科技文献出版社,19873.张毅刚《新编MCS51实用汇编程序设计》哈尔滨工业大学出版社,20034.康华光《电子技术基础》高教出版社,20035.胡汉才《单片机原理及接口技术》清华大学出版社,1996工作计划:6月——6日与组员讨论分析设计任务,提出总体设计方案(设计方法、电路图),并向指导老师说明;6月——10日在电脑上利用软件搭建电路并进行仿真,查看结果并改进实验;6月——15日根据仿真图焊接电路板;6月——20日完成电子版实验报告,经老师检查后,打印并上交。任务下达日期:2011年6月6日任务完成日期:2011年6月20日指导教师(签名):学生(签名):目录TOC\o"1-2"\h\z\u1.课程设计的目的 32.课程设计的要求 33.AT89C51芯片分析 44.程序流程图 85.原理图 96.程序语言 97.分析和总结 127.1分析 127.2总结 127.3体会 138.参考文献 13PAGE141.课程设计的目的课程设计是本专业集中实践环节的主要内容之一。训练正确地应用单片机,培养解决工业控制、工业检测等领域具体问题的能力。学生通过所做课题,熟悉单片机应用系统开发研制的过程,软硬件设计的工作方法、内容及步骤,对学生进行基本技能训练。例如组成系统、编程、调试、绘图等。使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。通过本课程设计,主要达到以下目的:1.使学生增进对单片机的感性认识,加深对单片机理论方面的理解。2.使学生掌握单片机的内部功能模块的应用掌握89c51单片机和Keilc51集成开发环境在硬件仿真条件下各参数的设置。3.使学生了解和掌握单片机应用系统的软/硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。2.课程设计的要求1.学生需认真阅读课程设计任务书,熟悉有关设计资料及参考资料,熟悉各种设计规范的有关内容,掌握89c51单片机和Keilc51集成开发环境在硬件仿真条件下各参数的设置。2.课程设计的成果为“课程设计报告”。课程设计报告内容要正确,概念要清楚,完成任务书所规定的内容,附有原理图及程序流程图,程序清单,文字要通顺,书写要工整,设计图纸必须符合规范。3.AT89C51芯片分析ATMEL的AT89S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。AT89C51的芯片引脚图如下:图1.1AT89C51引脚图各引脚的说明和功能分析如下: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)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指钟写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,特殊功能寄存器初始态特殊功能寄存器初始态ACC00HB00HPSW00HSP07HDPH00HTH000HDPL00HTL000HIPxxx00000BTH100HIE0xx00000BTL100HTMOD00HTCON00HSCONxxxxxxxxBSBUF00HP0-P31111111BPCON0xxxxxxxB8051的初始态(4-2-2)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:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。4.程序流程图设置初值设置初值启动定时计数器开始开始开中断开中断结束结束处理LED灯灭根据键值运行不同模式跑马灯有键按下?结束结束处理LED灯灭根据键值运行不同模式跑马灯有键按下?5.原理图6.程序语言UpDownEQU00H;上下行标志StartEndEQU01H;起动及停止标志LAMPCODEEQU21H;存放流动的数据代码ORG0000HAJMPMAINORG30HMAIN:MOVSP,#5FHMOVP1,#0FFHCLRUpDown;启动时处于向上的状态CLRStartEnd;启动时处于停止状态MOVLAMPCODE,#0FEH;单灯流动的代码LOOP:ACALLKEY;调用键盘程序JNBF0,LNEXT;如果无键按下,则继续ACALLKEYPROC;否则调用键盘处理程序LNEXT:ACALLLAMP;调用灯显示程序AJMPLOOP;反复循环,主程序到此结束DELAY:MOVR7,#10D1:MOVR6,#100DJNZR6,$DJNZR7,D1RET;延时程序,键盘处理中调用KEYPROC:MOVA,B;从B寄存器中获取键值JBACC.2,KeyStart;分析键的代码,某位被按下,则该位为1JBACC.3,KeyOverJBACC.4,KeyUpJBACC.5,KeyDownAJMPKEY_RETKeyStart:SETBStartEnd;第一个键按下后的处理AJMPKEY_RETKeyOver:CLRStartEnd;第二个键按下后的处理AJMPKEY_RETKeyUp:SETBUpDown;第三个键按下后的处理AJMPKEY_RETKeyDown:CLRUpDown;第四个键按下后的处理KEY_RET:RETKEY:CLRF0;清F0,表示无键按下。ORLP0,#00111100B;将P3口的接有键的四位置1MOVA,P0;取P3的值ORLA,#11000011B;将其余4位置1CPLA;取反JZK_RET;如果为0则一定无键按下ACALLDELAY;否则延时去键抖ORLP0,#00111100BMOVA,P0ORLA,#11000011BCPLAJZK_RETMOVB,A;确实有键按下,将键值存入B中SETBF0;设置有键按下的标志K_RET:ORLP0,#00111100B;此处循环等待键的释放MOVA,P0ORLA,#11000011BCPLAJZK_RET1;直到读取的数据取反后为0说明键释放了,才从键盘处理程序中返回AJMPK_RETK_RET1:RET;D500MS:;流水灯的延迟时间PUSHPSWSETBRS0MOVR7,#5;如果用实验仿真板,该值可根据你的机器运行情况更改,在1-255之间D51:MOVR6,#250D52:MOVR5,#200D53:DJNZR5,D53DJNZR6,D52DJNZR7,D51POPPSWRET;LAMP:JBStartEnd,LampStart;如果StartEnd=1,则启动MOVP1,#0FFHAJMPLAMPRET;否则关闭所有显示,返回LampStart:JBUpDown,LAMPUP;如果UpDown=1,则向上流动MOVA,LAMPCODERLA;向上移动实际就是左移位MOVLAMPCODE,AMOVP1,ALCALLD500MSAJMPLAMPRETLAMPUP:MOVA,LAMPCODERRA;向下流动实际就是右移MOVLAMPCODE,AMOVP1,ALCALLD500MSLAMPRET:RETEND 7.分析和总结本次课程实习我虽然用了二个星期的时间就全部做完,但整个过程我都认真的完成了,而且从中收获很多。可以总结为以下的几点:7.1分析在这次课程设计中,我们也遇到了一些困难。主要是在刚开始使用ISIS7Professional软件仿真电路时,仿真出来的电路达不到预定效果,经过老师的讲解,才仿真成功。连接实物图是对MC89C51掌握的不熟悉,导致做实验速度较慢。但是经过同学们的查找资料,掌握方法,进行了焊接,最后实验终于获得了成功。7.2总结通过此次为期两周的课程设计,我加深了对单片机以及汇

温馨提示

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

评论

0/150

提交评论