版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、郑州科技学院单片机课程设计题 目 红绿双色彩灯的控制 学生姓名 - 专业班级 11级电科二班 学 号 = 院 (系) 电气工学院 指导教师 90090900 完成时间 2015年 1月 9 日 目 录1 课程设计的目的、要求及思想11.1 设计目的11.2设计要求1 1.3设计思想12 硬件设计与焊接调试22.1硬件结构22.2硬件设计3 2.3硬件连接图42.4电路的焊接42.5电路的调试43 软件设计53.1软件总体设计53.2 主程序设计63.3子程序设计63.4码程序设计73.5程序流程图9 4 软件调试与仿真说明94.1仿真过程94.2仿真结果105 结束语10参考文献12附录1:总
2、体电路原理图13附录2:元器件清单14附录3:实物图15 1 课程设计的目的、要求及思想1.1 设计目的近年来随着科技的发展,单片机的应用正在不断走向深入,同时带动传统控制检测日新月异更新,在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象点的软件结合,加以完善。流水灯,可以更简单、方便的使用。通过本课程设计使学生进一步巩固单片机原理及应用的基本概念、基本理论,分析问题的基本方法,增强系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力。培养一定的自学能力和独立分析问题、解决问题的能力,能通过独立
3、思考、查阅工具书、参考文献,寻找解决方案。1.2设计要求设计流水灯的基本要求:设计一个流水灯,应用AT89C51试验系统,电路开启后红、绿两种颜色的灯在时钟信号作用下按一定规律转换状态。1.3设计思想 整个系统工作由软件程序控制运行,根据需要,可以上电后系统经过初始化,进入用户设定模式状态。基于AT89C51单片机的彩灯控制方案,实现对LED彩灯的控制。本方案以AT89C51单片机作为主控核心,与驱动等模块组成核心主控制模块。在主控模块上设有晶振电路和16个LED显示二极管,根据需要编写若干种亮灯模式,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号。2 硬件设计与焊接调试2.1
4、硬件结构 由图2-1可以看出,单片机内部主要包含下列几个部件:一个8位CPU;一个时钟电路;4Kbyte程序存储器;128byte数据存储器;两个16位定时/计数器;64Kbyte扩展总线控制电路; 四个8-bit并行I/O端口;一个可编程串行接口;五个中断源,其中两个优先级嵌套中断。 图2-1 AT89C51硬件结构框图2.2硬件设计51单片机是整个彩灯循环系统的核心是控制彩灯循环闪烁等等一切功能的部件;其中内部有ROM、有RAM、有并行I/O口等,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果
5、,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。电路中C1、R2组成复位电路,它的作用是将单片机内部特殊功能寄存器和端口寄存器恢复到初始状态,从内部FLASH存储器的初始状态开始执行。单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。而时钟电路就用于产生单片机工作所需要的时钟信号。 利用单片机的P口控制:LED的发光闪烁,再利用编程实现流水灯的电路,用软件来实现对LED的控制,每个LED接一个限流电阻,来控制流入LED发光管的电流。2.3硬件连接图 图2-2 硬件连接图2.4电路的焊接(1)对所有元件进行检测,确
6、保每个元件的质量。(2)在万能板上依据单片机最小应用系统原理图设计电路图,进行规划振荡电路、复位电路、电源电路、外围电路、单片机芯片的布局时要疏密合理。(3)依据电路图,先焊接振荡电路,在焊接外围电路,复位电路,电源电路,焊接的时候要注意晶振电路应尽量靠近单片机芯片,性能会更稳定。2.5电路的调试(1)用万用表检测电源是否接通,主要是看看40脚和20脚之间是否有5V电压。(2)检测第31引脚,是否有5V电压,目的是确保使用了片内存储器。(3)检测P3口或P2口的空闲电压是否有5V电压,如果没有,说明单片机系统没有工作。(4)用万用表检测复位电路,通过复位按键,检测第9脚的电压是否为变化,如果按
7、键没有按下,电压为0V,按键按下后,电压立刻变为5V,之后很快的降为0V,则表示复位电路正常。(5)用示波器检测振荡电路,主要是检测第18、19脚,检测是否有震荡波产生,如果有,表示震荡电路正常。(6)最后,检测电路板上的焊接走线是否有短路、断路、虚焊等焊接故障。3 软件设计3.1软件总体设计 用查表的方法控制点亮流水灯,即移位的思想0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff;/左边单个点亮0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00;/右边逐个点亮0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7
8、f,0xff;/左边逐个熄灭0x7f,0x8f,0xdf,0xef,0xf7,0xf8,0xfd,0xfe,0xff;/右边单个点亮0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00;/左边逐个点亮0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;/右边逐个熄灭0xfc,0xf9,0xf3,0xef,0xcf,0x9f,0x3f,0xff;/左边逐两个点亮0x3f,0x9f,0xcf,0xe7,0xf3,0xf9,0xfc,0xff;/右边逐两个点亮0xf8,0xf1,0xe3,0x07,0x8f,0x1f,0xff;/左边逐三个亮0x
9、1f,0x8f,0x07,0xe3,0xf1,0xf8,0xff;/右边逐三个亮3.2 主程序设计void main() uchar i; /定义一个无符号字符型局部变量 i while(1) /从数组中读取数据送至 P0 和 P2 口显示 for(i=0;i<136;i+) /加入 for循环,共136个流水灯控制码,大括号中的程序循环执行136次 P0=Pattern_P0i; /数组控制流水灯亮暗 P2=Pattern_P2i; DelayMS(100); /延时以便能观察到灯亮移动,自己可以调整时间,由晶振和实参决定 3.3子程序设计/延时 void DelayMS(uint x
10、) uchar i; while(x-) for(i=0;i<120;i+); 3.4码程序设计设计两个数组分别存储红灯和绿灯的流水灯控制码,让后用查表的方式点亮流水灯,主要代码如下:uchar code Pattern_P0= 0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,0xaa,0x55,0x18,0xff,0x
11、f0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x
12、fe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe, 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff /流水灯控制码; uchar code Pattern_P2= 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9
13、f,0x3f,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf
14、d,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00, 0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0xff,0x00,0xff,0x00,0
15、xff,0x00,0xff ; 在仿真中可以看到led灯有规律的一个一个的点亮如此循环。3.5程序流程图 图3-1程序流程图4 软件调试与仿真说明4.1仿真过程 Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。本设计利用Keil Vision3, 在新建Keil项目时选择AT89C51单片机作为CPU,将C语言源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中AT89C52并单击鼠标左键,对AT89C52进行设置,设置单片机时钟频
16、率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。4.2仿真结果 图4-1 Proteus仿真环境5 结束语通过这次课程设计我学到了很多东西,我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源:懂得设计的关键是要有一个清晰的思路和一个完整的软件流程图。在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路。要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你思路,这样也为资料的保存和交流提
17、供了方便。整个设计的过程中,还是碰到了一些问题 。比如,对于键盘的延时防抖问题不能较好的解决;对于编程的顺序及各模块程序调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。通过这几天的反复思考,以及参考网上的程序,最终还是完成了设计。设计中我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,在动手的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识15 参考文献1 胡汉才. 单片机原理及其接口技术(第2版)M. 北京:清华大学出版社.2004.4977.2 蓝厚荣. 单片机的PWM控制技术J. 工业控制计算机, 2010,23(3):97983 郭天祥. 新概念51单片机C语言教程M.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 融资租赁合同关于租金支付及甲方权益保障(2024版)
- 基于二零二四年度标准的品牌授权合同
- 二零二四年度分包方工程勘察设计知识产权合同3篇
- 辣椒购销合同
- 银行抵押协议
- 2024版居间合同范本:软件开发与销售3篇
- 2024权许可使用合同(建筑作品)
- 子宫肌瘤课件
- 龙门吊设备租赁费用结算合同
- 2024版影视制作服务委托合同3篇
- 运输成本控制与燃油管理
- 2024年国药集团招聘笔试参考题库含答案解析
- 大象版科学(2017)六年级上册第三单元《浩瀚宇宙》单元测试卷及答案
- 盈亏问题完整
- 新院外急救课件
- 危险化学品装卸作业安全技术操作规程
- 《现代仪器分析简介》课件
- 《装配式建筑概论》课件 第5、6章 装配式钢结构建筑、装配式木结构建筑
- 《电力建设工程预算定额(2018版)》第三册 电气设备安装工程
- 美国RAZ分级读物目录整理
- 城市绿地系统规划智慧树知到课后章节答案2023年下浙江农林大学
评论
0/150
提交评论