1、附件5南京信息职业技术学院毕业设计论文作者学号11016H02系部电子信息学院专业电子信息工程技术题目基于AT89C51的调控走马灯设计指导教师评阅教师完成时间2013年4月30日毕业设计论文中文摘要题目基于AT89C51的调控走马灯设计摘要随着时代的进步,电子行业的发展,走马灯在我们的生活中的应用也越来越广泛。走马灯以其价格优势以及便携的安装在实际生活中占据着重要的地位。其中最常见的是LED走马灯,LED走马灯可在多种平面、柱面、地板、天花板甚至幕布上进行安装,也可垂挂于空间形成屏风效果。本设计介绍了基于AT89C51的调控走马灯设计,设计包含硬件和软件两个子系统。在硬件方面,围绕单片机展开
2、,设计基于AT89C51芯片设计了走马灯的硬件电路。在软件方面,利用KEILC工具软件开发环境编写软件程序,利用PROTEUS软件实现对走马灯的功能仿真,直观上观察该程序不同模式的效果。关键词AT89C51芯片走马灯调控毕业设计论文外文摘要TITLEBASEDONTHEDESIGNOFAT89C51REVOLVINGDOOROFREGULATIONABSTRACTWITHTHEPROGRESSOFTHEERA,THEDEVELOPMENTOFTHEELECTRONICSINDUSTRY,WATERLAMPAPPLICATIONISBECOMINGMOREANDMOREWIDELYINOURLI
3、FEWATERLAMPWITHITSPRICEADVANTAGE,ANDTHEINSTALLATIONOFTHEPORTABLEOCCUPIESTHEIMPORTANTPOSITIONINREALLIFEONEOFTHEMOSTCOMMONISTHELEDVERSION,LEDVERSIONISAVAILABLEINAVARIETYOFPLANAR,CYLINDRICAL,FLOOR,CEILING,ANDEVENTHECURTAINFORINSTALLATIONTHISDESIGNINTRODUCESTHEREGULATORYREGIMESBASEDONAT89C51ISDESIGNED,T
4、HEDESIGNCONTAINSTWOSUBSYSTEMSOFHARDWAREANDSOFTWAREINTHEASPECTOFHARDWARE,REVOLVESAROUNDMICROCONTROLLER,THEDESIGNISBASEDONAT89C51CHIPVERSIONOFTHEHARDWARECIRCUITISDESIGNEDONTHESOFTWARESIDE,USINGTHEKEILCTOOLSOFTWAREDEVELOPMENTENVIRONMENTTOWRITETHESOFTWAREPROGRAMS,USINGPROTEUSSOFTWAREIMPLEMENTATIONOFNOTA
5、BLEFUNCTIONSIMULATION,VISUALOBSERVATIONONTHEEFFECTOFDIFFERENTMODESOFTHEPROGRAMKEYWORDSAT89C51CHIPLIGHTWATERREGULATEANDCONTROL目录1引言12走马灯系统方案设计121设计内容概述122设计任务及要求223数码管显示原理224单片机控制原理33走马灯系统硬件设计431AT89C51简介432走马灯硬件原理图54走马灯系统软件设计741主程序流程图75走马灯系统功能仿真851走马灯功能仿真图设计852走马灯功能仿真图9结论11致谢11参考文献12附录A走马灯程序1311引言在生
6、活和生产的各领域中,凡是有制动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面带地下,凡是能想象到的地方几乎都有使用单片机的需求。现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而没有实现的项目,因此,单片机的应用大有想象和拓展空间。单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保真安全等。但是单片机应用的意义绝不仅限于它的广阔范围以及所带来俄经济效益上,更重要的意义还在于单片机的应用正从根本上改变者传统的控制系统设计思想和设计方法。从前必须有模拟电路或数字电路实现的大部分功能,现
7、在已能使用单片机通过软件方法来实现了。这种以软件取代硬件并提高系统系能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统控制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。在众多的微控技术中,我选择了较为熟悉的AT89C51单片机,由于按键硬件去抖效果不如软件去抖,所以我选用软件去抖,根据任务书描述的功能设计的外围资源较少,而LED电路接到I0口的方法。总体下来软、硬件都较为简易,这样设计时,成功率大大增高。2走马灯系统方案设计21设计内容概述本设计选择采用AT89C51单片机为核心。AT89C51是一个低电压、高性能8位单片机
8、带有4K字节的可反复擦写的程序存储器和128字节的存取数据存储器RAM,这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单位,有较强的功能的AT89C51单片机能够被应用到控制领域中。AT89C51提供以下的功能标准4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内振荡器和时钟电路。另外,AT89C51还可以进行OHZ的静态2逻辑操作,并支持两种软件的节电模式。闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器
9、、串行通信口及中断系统继续工作。掉电方式保存随机存取数据存储器中的内容,但振荡器停止工作并禁止其它所有部件的工作直到下一个复位。22设计任务及要求选择采用AT89C51单片机为核心,使用简单的程序实现跑马灯显示效果设计。采用16只LED按8种不同模式滚动显示,模式选择由按键S1控制,加速与减速滚动由按键S2与S3控制,单击模式按键可在07号模式中选择,加速与减速键可调整LED滚动显示的速度。23数码管显示原理图1数码管内部结构其中引脚图的两个GND端连在一起,是公共端,共阴极数码管要将其接地,共阳极数码管将其接正5伏电源。一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选
10、线(即A,B,C,D,E,F,G,DP)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符码,而选中哪个位选线,哪个数码管便会被点亮。数码管的8段对应一个字节的8位,A对应最低位,DP对应最高位。数码管的接口有静态和动态两种接口。静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阳接VCC,本次设计由于所需数码管较少,故直接采用的并口连接方式。我们可以根据硬件的接线把数码管显示数字编制成一个表格,见下表,以后直接调用就行了。3表1共阳极数码管显示显示P17小数点P16GP15FP14EP13DP12CP11BP10A16进制代码000111111
11、0XC01000001100XF92010110110XA43010011110XB04011001100X995011011010X926011111010X827000001110XF88011111110X809011011110X90A011101110X88B011111000X83C001110010XC6D010111100XA1E011110110X86F011100010X8E24单片机控制原理AT89C51按键复位晶振16只LED显示数码管显示图2可调控的跑马灯电路原理图43走马灯系统硬件设计31AT89C51简介图3AT89C51的引脚排列VCC提供5V电压,GND接地。
12、PO口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流,当P0口的管脚第一次写1时,被定义为高阻输入。P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。PO口和P2口分别连接16只LED灯。P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流,当P3口写入1时,它们被内部上拉为高电平,并用作输入。P3口1脚、2脚、3脚分别连接了3个按键,按键用来控制跑马灯的显示模式和跑马灯的运行速度。P1口为一个内部提供上拉电阻的8位双向I/O口,P1口缓冲能接收输出4个TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下
13、拉为低电平时,将输出电流。P1口连接数码管。RST是复位输入,当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。XTAL1是反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2是来自反向振荡器的输出。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡器和陶瓷振荡器均可采用。如采用外部时钟源驱动器件,XTAL2应不接。532走马灯硬件原理图根据任务要求设计出硬件电路,整个硬件电路部分主要是由时钟电路、复位电路、数码管显示电路和LED电路组成。走马灯硬件的总体设计原理图如下图所示。图4可调控的走马灯原理图321时钟电路和复位电路1时钟电路单
14、片机执行指令是在脉冲控制下进行的,因此时钟信号是单片机的基本工作条件。时钟可以由内部和外部两种方式产生,本设计采用内部方式。如图所示,OSM2为振荡器,CM3、CM4为电容。震荡的主要频率取决于晶振,电容对振荡频率起微调作用。其中,晶振选择110592MHZ,AT89C51单片机的振荡器输入分别由引脚19和引脚18来完成。只要将这两个引脚外接石英晶体和陶瓷电容,就可与CPU内部组成完整的振荡电路。图5时钟电路62复位电路复位电路产生复位信号,一般复位电路可分为上电自动复位和按键复位,在此选用的是上电复位。上电自动复位原理RST引脚是复位信号的输入端,只要高电平的复位信号持续两个机器周期以上的有
15、效时间,就可以使单片机上电复位。上电自动复位是通过电容充电实现的,上电瞬间,RST端与VCC相同,随着充电电流的减少,RST的电位逐渐下降,直到复位信号无效。图6复位电路322数码管显示电路数码管是由多个发光二极管封在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔画,公共电极,LED数码管分共阳极与共阴极两种,本设计使用的是共阳极的LED数码管,共阳极接高电平,采用静态扫描方式,笔段电极分别连接AT89C51芯片的P1口,与P1口连接时需连接一个上拉电阻。如下图所示。图7数码管显示电路323LED电路本设计采用16个LED灯,16个LED灯分别连接AT89C51的P0口和
16、P2口,所有LED灯分别串联一个1K电阻。如下图所示。7图8LED电路4走马灯系统软件设计根据设计任务书要求,并结合硬件电路图设计和资源分配,来进行软件设计。任务要求单击按键模式来控制走马灯的模式,单击按键加速和减速调整LED滚动显示的速度,使16只LED按8种不同模式滚动。本设计分为LED模块、按键检测、模式选择模块和数码管显示模块。同时,本设计的程序由主程序、LED子程序、按键检测子程序、模式选择子程序以及数码管显示子程序组成,如下图。图9软件结构图41主程序流程图本程序的流程如下首先单片机初始化,接着显示数码管和LED走马灯,然后检测按键,CPU可以采用延迟方子程序检测按键是否按下。如果
17、有按键按下,则转到该键对应的程序处执行。若没有按键按下,则重新循环该流程。根据设计8需要实现的内容,将系统设计主流程图设计如下图所示。图10主程序流程图5走马灯系统功能仿真PROTEUS是世界上著名的EDA工具,是一种集单片机仿真和SPICE分析于一身的仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年又
18、增加了CORTEX和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、KEIL和MPLAB等多种编译器。51走马灯功能仿真图设计本设计使用AT89C51芯片作为控制芯片,利用P0口和P2口共连接16个发光二极管,且P1口还连接了一个7段数码管,还有P3口1脚、2脚、3脚分别连接了3个按键。按键是用来控制跑马灯的显示模式和跑马灯的运行速度,数码9管是用来显示跑马灯运行模式。在这里我是通过PROTEUS软件进行仿真的。运行PROTEUS后,点状的栅格区域为绘图区。左侧上方为电路图概览区,下方是元器件列表区,输入所要添加的器件名称,则该器件就会出现在右侧,单击OK按钮,完成
19、一个元器件的添加。重复以上的过程,添加好电路中所需的元器件。将元器件在绘图区放置好后,即可开始连线。电路图绘制完成后,再添加AT89C51的应用程序。应用PROTEUS软件画出电路仿真图如图7所示,加载了程序后,能很好的仿真出结果。1234567891011121415161234589101112166713141513P16P16P15P14P13P11P10P12P10P14P13P12P11P15XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD633
20、P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427U1AT89C51R9220R10220D9LEDREDD10LEDREDR11220R12220D11LEDREDD12LEDREDR13220R14220D13LEDREDD14LEDREDR15220R16220D15LEDREDD
21、16LEDREDR1220R2220D1LEDREDD2LEDREDR3220R4220D3LEDREDD4LEDREDR5220R6220D5LEDREDD6LEDREDR7220R8220D7LEDREDD8LEDREDVCCX112MHZC122PFC222PFR18220R19220R20220R21220R22220R23220R24220VCC模式加速减速R171KC347UFVCC图11可调控的跑马灯仿真图52走马灯功能仿真图本设计实现单击模式按键可在07号模式中选择,加速和减速可调LED滚动显示的速度。模式0是8个LED从左到右流水,模式1是1个LED从左到右流水,模式2是2个
22、LED从左到右流水,模式3是3个LED从左到右流水,模式4是4个LED从左到右流水,模式5是5个LED从左到右流水,模式6是6个LED从左到右流水,模式7是7个LED从左到右流水。程序采用了C语言编写,具体的程序见附录A。以下是走马灯在不同模式下的仿真图101234567891011121415161234589101112166713141513P16P16P15P14P13P11P10P12P10P14P13P12P11P15XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/A
23、D534P06/AD633P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427U1AT89C51R9220R10220D9LEDREDD10LEDREDR11220R12220D11LEDREDD12LEDREDR13220R14220D13LEDREDD14LEDREDR15220R16
24、220D15LEDREDD16LEDREDR1220R2220D1LEDREDD2LEDREDR3220R4220D3LEDREDD4LEDREDR5220R6220D5LEDREDD6LEDREDR7220R8220D7LEDREDD8LEDREDVCCX112MHZC122PFC222PFR18220R19220R20220R21220R22220R23220R24220VCC模式加速减速R171KC347UFVCC图12走马灯模式一仿真图1234567891011121415161234589101112166713141513P16P16P15P14P13P11P10P12P10P14
25、P13P12P11P15XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD633P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427U1AT89C51R9
26、220R10220D9LEDREDD10LEDREDR11220R12220D11LEDREDD12LEDREDR13220R14220D13LEDREDD14LEDREDR15220R16220D15LEDREDD16LEDREDR1220R2220D1LEDREDD2LEDREDR3220R4220D3LEDREDD4LEDREDR5220R6220D5LEDREDD6LEDREDR7220R8220D7LEDREDD8LEDREDVCCX112MHZC122PFC222PFR18220R19220R20220R21220R22220R23220R24220VCC模式加速减速R171KC3
27、47UFVCC图13走马灯模式二仿真图111234567891011121415161234589101112166713141513P16P16P15P14P13P11P10P12P10P14P13P12P11P15XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD633P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17
28、P36/WR16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427U1AT89C51R9220R10220D9LEDREDD10LEDREDR11220R12220D11LEDREDD12LEDREDR13220R14220D13LEDREDD14LEDREDR15220R16220D15LEDREDD16LEDREDR1220R2220D1LEDREDD2LEDREDR3220R4220D3LEDREDD4LEDREDR5220R6220D5LEDREDD6LEDREDR7220R822
29、0D7LEDREDD8LEDREDVCCX112MHZC122PFC222PFR18220R19220R20220R21220R22220R23220R24220VCC模式加速减速R171KC347UFVCC图14走马灯模式三仿真图结论本次设计在硬件上完成了一个AT89C51单片机的走马灯设计,并在此平台上进行软件的设计,经过测试,基本可以满足设计目标,可以完成各项基本功能,实现在不同模式下走马灯的工作状态。当然,由于时间的关系,本次设计也有不太完善的地方,例如目前只有16个灯的8种模式的工作状态,程序比较简单,如再深入研究,可以达到32个灯甚至更多灯的各种工作模式。本次设计实现了走马灯完整的
30、工作过程,该系统具有很高的使用价值,可以广泛的应用于建筑表面装饰、门面灯光效果装饰、户外灯广告屏以及室内效果装饰等,很好达到了设计目的。致谢毕业设计的完成,为我的大学学习生活画下了最后一笔,应该感谢的人很多,首先学院给我们提供了一个展现自己的舞台,给我们一次难得的锻炼机会,使我12们的动手能力和专业技能都有了很大的提高。其次要感谢指导老师对我的细心教导,为我创造了良好的学习和完成毕业设计的环境,使我能够顺利的完成课题的设计工作,在此向我的指导老师致以诚挚的谢意。同时还要感谢我的提供帮助的老师和同学,你们的支持和鼓励使我对这次的设计完成有了信心和动力,在此深表谢意。参考文献1赖麒文8051单片机
31、C语言开发环境实务与设计M北京科学出版社200212马靖善,秦玉平C语言程序设计M北京清华大学出版社,2005113彭伟单片机C语言程序设计实训100例基于8051PROTEUS仿真北京电子工业出版社,200964张洪润,张亚凡。单片机原理及应用。清华大学出版社,20045王晓君安国臣等MCS51及兼容单片机原理与选型北京电子工业出版社,200313附录A走马灯程序INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTUCHARMODENO/模式编号UCHARKEYUINTLED16UINTDISPLAY16UCHARTCOUNT0UCHARIN
32、DEX/速度取值索引(230)UCHARCODEDSY_CODE0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XD8,0X90/数码管段码表VOIDDELAYUINTXUINTII,JJFORIIXII1IIFORJJ0JJ8/显示高8位P1DSY_CODEMODENODELAYINDEX514/IFTCOUNTINDEXDISPLAY16DISPLAY160X8000P0UCHARDISPLAY16/显示低8位P2UCHARDISPLAY168/显示高8位P1DSY_CODEMODENODELAYINDEX5DISPLAY16LED16VOIDKEYPROCESSU
33、CHARBUTTON/不同的按键对应不同的操作IFBUTTON1MODENOIFMODENO7MODENO0SWITCHMODENO1/八种不同的模式选择CASE2LED160X0001BREAKCASE3LED160X0003BREAKCASE4LED160X0007BREAKCASE5LED160X000FBREAKCASE6LED160X001FBREAKCASE7LED160X003FBREAKCASE8LED160X007FBREAKCASE1LED160X00FFBREAKDEFAULTLED160X0001DISPLAY16LED16ELSEIFBUTTON2/加速INDEXINDEX2IFINDEX50INDEX50VOIDMAINP0P1P2P30XFFMODENO1INDEX16/中等速度P1DSY_CODEMODENOLED160X00001DISPLAY16LED16WHILE1TCOUNTKEYGETKEYIFKEY0KEYPROCESSKEYLED_DEMO/显示走马灯