ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:226.59KB ,
资源ID:5971706      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5971706.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计单片机控制流水灯.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计单片机控制流水灯.docx

1、单片机课程设计单片机控制流水灯郑州科技学院 单片机课程设计题 目 单片机控制流水灯 学生姓名 X X X 专业班级 电气工程及其自动化X班 学 号 201XXXX 院 (系) 电气工程学院 指导教师 X X 完成时间 201X年XX月XX日 目 录1 设计的目的 22 设计的任务与要求 23 设计方案与论证 34 元器件介绍 44.1 单片机5 硬件电路设计 86 软件设计 107 硬件的制作与调试 128 总结 13参考文献 14附录1 总体电路原理图 15附录2 实物图 15引言 基于单片机的LED流水灯的应用十分广泛,由单片机作为的核心控制器,通过按键实现控制功能和数据输入是非常普遍的。

2、通常在所需按键数量不多时,系统常采用独立式按键。这种按键的电路配置灵活,软件结构简单。由于实际应用中,不同系统对按键的要求不同,因此,对按键程序的设计要考虑全面,以便更好地完成按键所设定的功能,简述了该系统中一些重要芯片的基本工作原理,着重论述了硬件线路各个模块的设计思想。进而熟练掌握相关专业基础知识的综合应用,提高学生的实际动手和设计能力。 本系统是基于AT89C51系列单片机为核心的LED流水灯设计,实现12个LED灯变化方向和速度的可调。 1 设计的目的1、使自己在学习理论知识的同时与实际操作相结合,从而提高自己动手操作的能力。2、可以培养自己自主学习的能力,自己可以查阅资料,从而提高自

3、己的知识储备。3、可以提高自己的动手能力,提前为以后走向社会,适应社会而做准备。4、在自己动手的同时,遇到不懂的可以请教老师,可以查阅资料,也可以通过自己的思考解决问题,这些都可以提高自己对理论知识的理解和对课外知识的扩展,从而提高以后工作的社会竞争力。5、自己通过自己的努力而完成的作品会有一种巨大的成就感,会让自己更喜欢这门学科,从而以后更加好好学习这门学科。2 设计的任务与要求1、通过单片机实现对LED灯进行闪烁控制。2、学会实物的设计和制作。3、能够自己设计仿真电路。4、通过电路方案的分析、论证和比较,设计计算和选取元器件,初步掌握简单实用电路的分析方法和工程设计方法,提高电子电路的设计

4、和实验能力。5、了解与课题有关的电子电路以及元器件的工程技术规范,能按设计任务书的要求,完成设计任务,正确地反映设计与实验的成果,正确地绘制电路图。3 设计方案与论证.本方案以AT89C52单片机作为主控核心,按键控制电路,流水灯显示电路以及单片机最小系统等模块组成的核心主控电路。利用软件编程烧录程序到单片机来实现对LED流水灯进行控制,首先搭建单片机最小系统,包括电源电路,手动复位电路,时钟电路。时钟电路才用内部时钟方式,手动复位电路采用按键电平复位方式。再根据要求在P2口串接12个发光二极管作为输出设备,分别通过限流电阻接电源,在P3口串接2个独立按键,作为输入设备。通过独立按键控制LED

5、灯的闪烁和移动及速率变化。同时在P1口连接一个数码管显示电路,用于自动计时,实现自动改变流水灯的样式。 程序部分设定T0为定时工作方式,T0每隔一定的时间扫描独立按键,当检测到某个键按下时,在主函数中执行相应的程序。 4 元器件介绍4.1单片机 89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,

6、适合于类似马达控制等应用场合。89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。主要引脚:P0口:P0口是一个8位漏极开路的双向I/O口。P1口:P1口是一个具有内部

7、上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。P2口;P2口是具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。P3口:P3口是一个具有内部上拉电阻的8 位双向I/O 口,P3 输出缓冲器能驱动4个TTL 逻辑电平。RST:复位输入,当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 如图4-1AT89C52单片机5 硬件电路设计5.1 硬件系统 硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控

8、对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。本设计选用以STC89C52单片机为主控单元。5.2控制电路 如图5-2所示控制电路图根据单片机的功能和性质,这次课程设计实现花样流水灯,实际上就是一个带有十六个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的。最小应用系统分为时钟电路和复位电路。从原理图中可以看出,如果要让接在P0.0口的D9亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的D9熄灭,就要把P0.0口的电平变为高电平;同理,接在P0.1P0.7口和P

9、2.0P2.7的其他15个LED的点亮和熄灭的方法同D9。5.3 时钟电路 如图5-3时钟电路图 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按序进行工作。在STC89C52芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 此电路采用12MHz的石英晶体。5.4 复位电路 电阻的作用是用于上电复位的,VCC以上电,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电

10、平了,还可以用手动复位,此电路应用自动复位。 如图5-4所示复位电路图5.5显示电路 单片机显示电路LED彩灯显示电路,实际上是由8个发光二极管和8个电阻构成的电路。发光二极管与电阻对应串联,然后接在与之相对应的P0口上。通过软件编程对P0口输出高低电平来实现不同的闪烁花型。由于发光二极管的导通电压一般为1.7V以上,另外,他的工作电流根据型号不同一般为1mA到30mA,电阻选择范围100欧姆3千欧姆在此我们这里选用300欧姆的电阻。6 软件设计6.1软件流程图 图6.1 软件流程方框图6.2软件设计 软件程序设计流水灯变化,使用的STC89C52单片机的P0口,点亮第一个发光二极管需要P0.

11、0口置低电平,单片机上电后从0000H地址执行,跳转到主程序存放地址处,设置主程序开始地址,设置堆栈起始地址为60H,ACC中装入LED1亮的数据(二进制的11111110),将ACC的数据送入P0口,调用延时子程序,将数据再移动7次就完成一个8位流水过程,ACC中装入LED7亮的数据(二进制的10111111),将ACC的数据送P0口,调用延时子程序,将数据再移动5次就完成一个6位流水过程,ACC中装入所有灯都亮的数据(二进制的00000000),ACC中装入所有灯都灭的数据(二进制的11111111),将ACC中的数据左移一位,把ACC移动过的数据送P0口显示,调用延时子程序,没有移动够7

12、次继续移动,移动完7次后跳到START2,将ACC中的数据右移一位,把ACC移动过的数据送P0口显示,调用延时子程序,没有移动够5次继续移动,移动完5次后跳到START3,把ACC移动过的数据送P0口显示,调用延时子程序,跳到START4,把ACC移动过的数据送P0口显示,调用延时子程序跳到START1,延时0.5S,子程序返回。延时程序:MOV:这是一条指令,意思是传递数据。从指令MOV R7,#250中来分析,R7是一个接受者,250是被传递的数,传递者在这条指令中被省略了(注意:并不是每一条传递指令都会省的,事实上大部份数据传递指令都会有传递者)。它的意义也很明显:将数据250送到R7中

13、去,因此执行完这条指令后,R7单元中的值就应当是250。在250前面有个#号,这个#就是用来说明250就是一个被传递的东西本身,而不是传递者。DJNZ:DJNZ指令的执行过程是这样的,它将其后面的第一个参数中的值减1,然后看一下,这个值是否等于0,如果等于0,就往下执行,如果不等于0,就转移,转到第二个参数所指定的地方去,减一不为零转移指令(dec 1 jump if not zero)。DJNZ指令有两种格式:DJNZ Rn,rel和DJNZ direct,rel,前者为双字节指令,其中第二个字节存储rel的相对地址,范围是-128+127,所以转移范围很窄,所以转移的位置为指令的当前PC值

14、加上rel;第二条指令的第三个字节也是存储rel的,和第一条指令的转移方式相同,都是PC+rel。DJNZ RN,REL 是一条件转移指令,先将工作寄存器Rn中的数减“1”,判断结果是否为“0”,不为“0”程序就跳转到行标为REL的地方执行,否则,为“0”就不转移,继续执行下一条指令。需要注意的是,每执行一次DJNZ指令时,工作寄存器中的数会先减去1后,再判断是否返回。例如,DJNZ Rn 如果Rn中原来是2,则执行两次DJNZ后,就会去执行下面一行,执行这么多次同一条指令就是为了延时。7 硬件的制作与调试7.1硬件的制作第一步,用编辑程序把编制的源程序按照一定的书写格式送到计算机中,编辑程序

15、会根据使用人员的意图对源程序进行增、删或修改。第二步,把送入的源程序翻译成机器语言,即用编译程序对源程序进行语法检查并将符合语法规则的源程序语句翻译成计算机能识别的“语言”。如果经编译程序检查,发现有语法错误,那就必须用编辑程序来修改源程序中的语法错误,然后再编译,直至没有语法错误为止。第三步,使用计算机中的连接程序,把翻译好的计算机语言程序连接起来,并扶植成一个计算机能真正运行的程序。在连接过程中,一般不会出现连接错误,如果出现了连接错误,说明源程序中存在子程序的调用混乱或参数传递错误等问题。这时又要用编辑程序对源程序进行修改,再进行编译和连接,如此反复进行,直至没有连接错误为止。第四步,将

16、修改后的程序进行试算,这时可以假设几个模拟数据去试运行,并把输出结果与手工处理的正确结果相比较。如有差异,就表明计算机的程序存在有逻辑错误。如果程序不大,可以用人工方法去模拟计算机对源程序的这几个数据进行修改处理;如果程序比较大,人工模拟显然行不通,这时只能将计算机设置成单步执行的方式,一步步跟踪程序的运行。一旦找到问题所在,仍然要用编辑程序来修改源程序,接着仍要编译、连接和执行,直至无逻辑错误为止。也可以在完成后再进行编译。第五步,对分查找法。如果知道每个变量子程序内若干个关键点上的正确值,则可用赋值语句或输入语句在程序中的关键点附近“注入”这些变量的正确值,然后检查程序的输出。如果输出结果

17、是正确的,则表示错误发生在前半部分,否则,不妨认为错误在后半部分。这样反复进行多次,逐渐逼近错误位置。将写好的程序下载到单片机后,发现灯没有亮,检查程序没有问题,就用万能表测试,硬件部分,也没有连错,又从新下载程序,灯就按照预计的开始流水点亮。8 总结 在本次设计的过程中,我们发现了很多问题,遇到了很多麻烦,有的问题其实很简单,主要是因为知识的掌握程度不够,拓展知识欠缺,这就要求我们在以后的学习中,应该注意到这一点,并且应该多读一些课外的文献,只靠课本上的知识远远不够,更重要的是我们要学会把书本中学到的知识和实际电路联系起来,用时间巩固理论,用理论优化实践,这不论是对我们以后的就业还是学习,都

18、会起到很大的促进和帮助。在焊接过程中,我们意识到细心和严谨的精神是必不可少,通过本次课程设计,巩固了我们学过的专业知识,也使我们把理论与实践从真正意义上结合了起来,考验了我们借助互联网搜索,查阅相关文献资料,从中可以自我检测,认识到自己哪方面有欠缺,以便在日后的学习中得以改进,提高,我会记住这次经历,在以后的工作中一定会走得更远。 参考文献1张毅刚.MCS-51单片机原理及应用J.哈尔滨工业大学出版社,2003.9:33452杨恢先.黄辉先.单片机原理与应用M.人民邮电出版,2009.7:12153朱定华.单片机原理与接口技术M.电子工业出版社,2001.4:2202254王威.微控制器原理及

19、应用J.北京航空航天大学出版社,2007.10:45505胡洪波.单片机原理与应用实验教程J.湘潭大学出版社,2009.7:67696胡汉才.单片机原理及其接口技术M.清华大学出版社,2001.2:3440附录1:总体电路原理图附录2:实物图附录3:元器件清单序号名称型号规格数量1单片机ATC89C5212电阻220163电容22PF24电解电容10UF15电阻10K16晶振12M17发光二极管168导线若干附录4:源程序#include #define uchar unsigned char#define uint unsigned intuchar code Pattern_P0= 0xfc,0xf9,0xf3,0xe7,0xcf,0x9f;uchar code Pattern_P2= 0xf5,0xf6,0xfe,0x54,0x56,0x76,0xd7,0x49,0xa9,0xe4,0xc6;void DelayMS(uint x) uchar t; while(x-) for(t=120;t0;t-); void main() uchar i; while(1) for(i=136;i0;i-) P0=Pattern_P0i; P2=Pattern_P2i; DelayMS(150);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1