




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江西环境工程职业学院大专毕业生毕业论文(毕业设计) 题目: 可以调控的走马灯 分院: 机电工程分院 姓名: 许 方 学号: 20083498 专业: 机电一体化 指导老师: 赖武军 毕业论文答辨时间: 摘要本设计使用AT89C51单片机作为微控制器,利用P0口和P1口分别连接8个发光二极管,且P0口还连接了1个7段数码管,用来显示模式和速度,通过两个按键K1、k2和K3来控制“跑马灯”的运行模式和速度,从而实现多种跑马的形式。 关键词:MCS51 跑马灯 独立按键目录摘要-II绪论-4第一章 本设计意义和主要任务、内容概述-51.1 设计的主要任务-51.2设计的主要内容-5第二章 系统总体方案及硬件电路设计-62.1 AT89C51概述-62.2 AT89C51的硬件结构-62.3 AT89C51的工作模式-92.4 AT89C51程序存储器的加密-102.5数码管显示原理-102.6单片机控制原理-122.7 硬件电路设计-12第三章 系统的软件设计-133.1 程序流程图-133.2定时/计数器-133.3程序代码-14第四章 总结-19第五章 致谢-20第六章 参考文献-21 附录一 可以调控的走马灯仿真图-22附录二 可以调控的走马灯原理图-2325绪论在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片机的需求。现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。 单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。 但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统控制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。在众多的微控制器中,我选择了较为熟悉的AT89C51单片机,由于按键硬件去抖效果逊色于软件去抖,所以我选用软件去抖。根据任务书中描述的功能,设计的外围资源较少,而LED电路接到IO口的方法。总体下来软、硬件都较为简易,这样设计时,成功率可大大提高。第一章 本设计意义和主要任务、内容概述1 设计任务选择采用AT89C52单片机为核心,使用简单的程序实现跑马灯显示效果设计。2 设计要求实现16个红色LED的亮、灭显示等。安排3个按键,其中一个按键用于控制16只LED灯模式的输出,另二个用于控制16只LED灯速度的输出。最后还有1个7段共阴数码管,用于显示模式,根据模式显示的变化,16只LED灯偱环显示不同,还用于显示速度的大小,显示的数字越大,则16只LED灯流动的更快,否则就慢。第二章 系统总体方案及硬件电路设计2.1 AT89C51概述AT89C51是一个低电压,高性能CMOS 8位单片机带有4K字节的可反复擦写的程序存储器(PENROM)。和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用到控制领域中。AT89C51提供以下的功能标准:4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内震荡器和时钟电路。另外,AT89C51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式。闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存随机存取数据存储器中的内容,但震荡器停止工作并禁止其它所有部件的工作直到下一个复位。2.2 AT89C51的硬件结构AT89C51共有40条引脚,引脚排列如图2.1所示。图2.1 AT89C51的引脚排列图AT89C51主要特性如下:1) 与MCS-51 兼容。2) 4K字节可编程闪烁存储器。3) 寿命:1000写/擦循环。4) 数据保留时间为10年。5) 全静态工作为0Hz-24MHz。6) 三级程序存储器锁定。7) 1288位内部RAM。8) 32可编程I/O线。9) 两个16位定时器/计数器。10) 5个中断源。11) 可编程串行通道。12) 低功耗的闲置和掉电模式。13) 片内振荡器和时钟电路。P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写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口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。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.0RXDP3.1TXDP3.2INT0P3.3INT1P3.4T0P3.5T1P3.6WRP3.7RD图2.2 P3口第二功能列表RST为复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG为当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN为外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP为当/EA保持低电平时,则在此期间外部程序存储器,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然震荡器。外接石英晶体及电容C1,C2接在放大器的反馈回路中构成并联震荡电路。对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF10PF,而如果使用陶瓷振荡器建议选择40PF10PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。2.3 AT89C51的工作模式AT89C51共用2种工作模式,分别为闲散节电模式和掉电模式。下面进行介绍。AT89C51有两种可用软件编程的省电模式,它们是闲散模式和掉电工作模式。这两种方式是控制专用寄存器PCON中的PD和IDL位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。IDL是闲散等待方式,当IDL=1,激活闲散工作状态,单片机进入睡眠状态。如需要同时进入两种工作模式,即PD和IDL同时为1,则先激活掉电模式。在闲散工作模式状态,中央处理器CPU保持睡眠状态,而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内随机存取数据存储器和所有特殊功能寄存器的内容保持不变。闲散模式可由任何允许的中断请求或硬件复位终止。终止闲散工作模式的方法有两种,一是任何一条被允许中断的事件被激活,IDL被硬件清除,即刻终止闲散工作模式。程序会首先影响中断,进入中断服务程序,执行完中断服务程序,并紧随RETI指令后,下一条要执行的指令就是使单片机进入闲散工作模式,那条指令后面的一条指令。二是通过硬件复位也可将闲散工作模式终止。需要注意的是:当由硬件复位来终止闲散工作模式时,中央处理器CPU通常是从激活空闲模式那条指令的下一条开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期有效,在这种情况下,内部禁止中央处理器CPU访问片内RAM,而允许访问其他端口,为了避免可能对端口产生的意外写入:激活闲散模式的那条指令后面的一条指令不应是一条对端口或外部存储器的写入指令。在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在中指掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将从新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效切必须保持一定时间以使振荡器从新启动并稳定工作。闲散和掉电模式外部引脚状态如图2.3所示。模式程序存储器ALEP0P1P2P3闲散模式内部11数据数据数据数据闲散模式内部11浮空数据地址数据掉电模式外部00数据数据数据数据掉电模式外部00数据数据数据数据图2.3 闲散和掉电模式外部引脚状态 2.4 AT89C51程序存储器的加密AT89C51可使用对芯片上的三个加密位LB1,LB2,LB3进行编程(P)或不编程(U)得到如图2.4所示的功能:程序加密位保护类型1UUU没有程序保护功能2PUU禁止从外部程序存储器中执行MOVC指令读取内部程序存储器的内容3PPU除上表功能外,还禁止程序校验4PPP除以上功能外,同时禁止外部执行图2.4 程序加密位的配置当LB1被编程时,在复位期间,EA端的电平被锁存,如果单片机上电后一直没有复位,锁存起来的初始值是一个不确定数,这个不确定数会一直保存到真正复位位置。为了使单片机正常工作,被锁存的EA电平与这个引脚当前辑电平一致。机密位只能通过整片擦除的方法清除。2.5 数码管显示原理数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为A,B,C,D,E,F,G,H。 图2-2 数码管内部结构图 假设我们要显示一个数字2, 那么 A、B、G、E、D这5个段的发光管亮就可以了,C、F、H不亮,同时由于接法为共阴接法,那么为低电平是灭,为高电平是亮。从高往低排列, P1.7-P1.0写成二进制为01011011, 把他转化为16进制则为0x5b。我们可以根据硬件的接线把数码管显示数字编制成一个表格,见下表,以后直接调用就行了。显示P聱1.7 小数点 P1.6 G P1.5小FP1.4 EP1.3 DP1.2 CP1.1 BP1.0 A 16进制代码0001111110x3f1000001100x062010110110x5b3010011110x4f4011001100x665011011010x6d6011111010x7d7000001110x07801111 1110x7f9011011110x6fA011101110x77b011111000x7cc001110010x39d010111100x5ee011110110x7bf011100010x71-010000000x40表2-2共阴极数码管显示码管的接口有静态接口和动态接口两种。静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阳接VCC,本次课程设计由于所需数码管较多,故不可用些种方法接线。这种接法占用接口多,仅能接少量数码管。动态接口采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一接口完成各数码管的轮流点亮,本设计采用此方法。2.6 单片机控制原理图2-6 可调控的走马灯电路原理图2.7硬件电路设计本设计使用AT89C51芯片作为控制芯片,利用P0口和P1口共连接16个发光二极管,且P0口还连接了一个7段数码管,还有P2口1脚、2脚、3脚分别连接了3个按键。按键是用来控制走马灯的显示模式和走马灯的运行速度,数码管是用来显示走马灯运行模式,应用PROTEUS软件画出电路原理图如2-7图所示。图2-7所示 可以调控的走马灯原理图第三章 系统的软件设计由设计给出的功能要求,并结合硬件电路设计和资源分配,来进行软件设计。步骤为先画出软件流程,然后根据流程图在Keil uVision3开发环境下使用C语言进行编写代码和仿真调试,最后在手中已有的51开放板上进行脱机实验。经过不断修改之后,代码趋于完善。3.1程序流程图 如图 3-1所示 程序流程图3.2 定时/计数器可调控的走马灯其实就是一个计数器,本次论文设计就是利用单片机中的定时/计数器来实现其计模式的功能。在51单片机中有两个16位的定时/计数器T0,T1,分别由TH0、TL0和TH1、TL1组成,它们均是8位寄存器,在特殊功能寄存器中占地址8AH-8DH。它们用于存放定时或计数的初始值。此外,内部还有一个8位的方式寄存器TMOD和一个8位的控制寄存器TCON。用于选择和控制定时/计数器的工作。其格式见下面两表:表3.1 方式控制寄存器TMODGATEC/TM1M0GATEC/TM1M0门控开关计数/定时方式选择门控开关计数/定时方式选择表3.2 控制寄存器TF1TR1TF0TROIE1IT1IE0IT0T1请求有/无T1工作启/停T0请求有/无T0工作启/停INT1请求有/无INT1方式下沿INT1请求有/无INT1方式下沿可调控的走马灯用单片机的计数器进行工作,计数器对外部脉冲的下降沿进行加1计数,直至计满回零。作为可编程器件,单片机中的定时/计数器初始化编程步骤如下:根据定时时间要求或计数要求计算计数器初值;将工作方式控制字写入TMOD寄存器;将计数初值写入THX和TLX寄存器;启动定时器/计数器,即将TRX置位。如果工作于中断方式,需置位EA(中断总开关)及ETX(允许定时/计数器中断),并编写中断服务程序。3.3程序代码/名称:可以调控的走马灯说明:单击模式按键可在0-7号模式中选择,加速和减速键可调整LED滚动显示的速度。#include #define uchar unsigned char#define uint unsigned intuchar ModeNo;/模式编号uint Speed;uchar tCount=0;uchar Idx;/速度取值索引uchar mb_Count=0;/移动位数bit Dirtect=1;/滚动方向/段码表uchar code DSY_CODE=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90;/调速表uint code sTable=0,1,3,5,7,9,15,30,50,100,200,230,280,300,350;/廷时void Delay(uint x) uchar i,j; for(i=x;i0;i-) for(j=0;i8);/显示高8位/定时器2void T0_INT() interrupt 1 if(+tCountSpeed) return;tCount=0;switch(ModeNo) case 0: Led_Demo(0x0001mb_Count);break;case 2: if(Dirtect) Led_Demo(0x000Fmb_Count); if(mb_Count=15) Dirtect=!Dirtect; break; case 3: if(Dirtect) Led_Demo(0x000Fmb_Count); if(mb_Count=15) Dirtect=!Dirtect; break; case 4: if(Dirtect) Led_Demo(0x003Fmb_Count); if(mb_Count=15) Dirtect=!Dirtect; break; case 5: if(Dirtect) Led_Demo(0x0001mb_Count); if(mb_Count=15) Dirtect=!Dirtect; break; case 6: if(Dirtect) Led_Demo(0x0001mb_Count); if(mb_Count=15) Dirtect=!Dirtect; break; case 7: if(Dirtect) Led_Demo(0xFFFEmb_Count); if(mb_Count=15) Dirtect=!Dirtect; break;mb_Count=(mb_Count+1)%16;/键盘按键处理void KeyProcess(uchar Key) switch (Key) case 1:/重设模式 Dirtect=1;mb_Count=0; ModeNo=(ModeNo+1)%8; P0=DSY_CODEModeNo; break;case 2:/加速 if(Idx1) Speed=sTable-Idx;break;case 3:/减速 if(Idx15) Speed=sTable+Idx;/主程序void main() uchar Key; P0=P1=P3=0xFF;P2=0x0F;ModeNo=0;Idx=1;Speed=sTableIdx;P0=DSY_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出行前安全培训课件
- 曲沃辅警考试题库2025(有答案)
- 2025年4月15日全民国家安全教育日知识竞赛题【附全部答案】
- 云南省文山壮族苗族自治州2024-2025学年八年级下学期期末历史试题(含答案)
- 2025婚礼服务合同书
- 出口食品备案课件
- 新高考政策效果评估-洞察及研究
- 2025年租赁住房管理协议与计划生育服务合同制度
- 2025年企业产权制度改革下的企业股权转让合同
- 2025担保法实施前合同法下的房屋抵押合同未登记的效力问题
- 装修公司全包装修合同
- DB37/T 5132-2019 建筑机电工程抗震技术规程
- 主播转让合同范本
- 2025届上海市(春秋考)高考英语考纲词汇对照表清单
- 2025-2030年中国汽车起重机市场前景规划及投资潜力分析报告
- 广东省四校2024-2025学年高三上学期期末联考英语试题(无答案)
- 《解剖学》课程标准
- 小学四年级语文上册教材分析
- 泰山版(2025版)小学信息技术第5册教学计划
- 2024年宁德监狱囚犯心理咨询服务合同
- 副总经理招聘面试题与参考回答(某大型国企)2024年
评论
0/150
提交评论