收藏 分享(赏)

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

上传人:精品资料 文档编号:7759180 上传时间:2019-05-25 格式:DOCX 页数:19 大小:240.77KB
下载 相关 举报
单片机课程设计,单片机控制流水灯.docx_第1页
第1页 / 共19页
单片机课程设计,单片机控制流水灯.docx_第2页
第2页 / 共19页
单片机课程设计,单片机控制流水灯.docx_第3页
第3页 / 共19页
单片机课程设计,单片机控制流水灯.docx_第4页
第4页 / 共19页
单片机课程设计,单片机控制流水灯.docx_第5页
第5页 / 共19页
点击查看更多>>
资源描述

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 实物图 151引言 基于单片机的 LED 流水灯的应用十分广泛,由单片机作为的核心控制器,通过按键实现控制功能和数据输入是非常普遍的。通常在所需按键数量不多时

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

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

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

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

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

7、44pin)两种封装形式。主要引脚:P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。4P1 口:P1 口是一个具有内部上拉电阻的 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 硬件电路设计55.1 硬件

8、系统硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。本设计选用以 STC89C52 单片机为主控单元。5.2 控制电路如图 5-2 所示控制电路图根据单片机的功能和性质,这次课程设计实现花样流水灯,6实际上就是一个带有十六个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的。最小应用系统分为时钟电路和复位电路。从原理图

9、中可以看出,如果要让接在 P0.0 口的 D9 亮起来,那么只要把 P0.0口的电平变为低电平就可以了;相反,如果要接在 P0.0 口的 D9熄灭,就要把 P0.0 口的电平变为高电平;同理,接在P0.1P0.7 口和 P2.0P2.7 的其他 15 个 LED 的点亮和熄灭的方法同 D9。5.3 时钟电路如图 5-3 时钟电路图时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按序进行工作。在 STC89C52 芯片内部有一个高增益反相放大器,其输入端为芯片引脚 X1,输出端为引脚 X2,在芯片的外

10、部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。此电路采用 12MHz 的石英晶体。75.4 复位电路电阻的作用是用于上电复位的,VCC 以上电,由于电容两端电压不能突变,所以 RST 上为高电平,然后电容放电,RST 就为低电平了,还可以用手动复位,此电路应用自动复位。如图 5-4 所示复位电路图5.5 显示电路单片机显示电路 LED 彩灯显示电路,实际上是由 8 个发光二极管和 8 个电阻构成的电路。发光二极管与电阻对应串联,然后接在与之相对应的 P0 口上。通过软件编程对 P0 口输出高低电平来实现不同的闪烁花型。由于发光二极管的导通电压一般为1.7V 以上,另外

11、,他的工作电流根据型号不同一般为 1mA 到30mA,电阻选择范围 100 欧姆3 千欧姆在此我们这里选用300 欧姆的电阻。86 软件设计6.1 软件流程图图 6.1 软件流程方框图开始P0.0-P0.7 依次置为低电平延时一秒P2.0-P2.7 依次置为低电平延时一秒P2.0-P2.7 依次置为低电平延时一秒P0.0-P0.7 依次置为低电平延时一秒96.2 软件设计软件程序设计流水灯变化,使用的 STC89C52 单片机的 P0 口,点亮第一个发光二极管需要 P0.0 口置低电平,单片机上电后从0000H 地址执行,跳转到主程序存放地址处,设置主程序开始地址,设置堆栈起始地址为 60H,

12、ACC 中装入 LED1 亮的数据(二进制的 11111110),将 ACC 的数据送入 P0 口,调用延时子程序,将数据再移动 7 次就完成一个 8 位流水过程,ACC 中装入 LED7 亮的数据(二进制的 10111111),将 ACC 的数据送P0 口,调用延时子程序,将数据再移动 5 次就完成一个 6 位流水过程,ACC 中装入所有灯都亮的数据(二进制的 00000000),ACC 中装入所有灯都灭的数据(二进制的 11111111),将 ACC中的数据左移一位,把 ACC 移动过的数据送 P0 口显示,调用延时子程序,没有移动够 7 次继续移动,移动完 7 次后跳到START2,将

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

14、到 R7 中去,因此执行完这条指令后,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 ,所以转移

15、范围很窄,所以转移的位置为指令的当前 PC 值加上rel;第二条指令的第三个字节也是存储 rel 的,和第一条指令的转移方式相同,都是 PC+rel。DJNZ RN,REL 是一条件转移指令,先将工作寄存器 Rn 中的数减“1”,判断结果是否为“0”,不为“0”程序就跳转到行标为 REL的地方执行,否则,为“0” 就不转移,继续执行下一条指令。需要注意的是,每执行一次 DJNZ 指令时,工作寄存器中的数会先减去 1 后,再判断是否返回。例如,DJNZ Rn 如果 Rn 中原来是 2,则执行两次 DJNZ 后,就会去执行下面一行,执行这么多次同一条指令就是为了延时。7 硬件的制作与调试7.1 硬

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

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

18、入语句在程序中的关键点附近“注入”这些变量的正确值,然后检查程序的输出。如果12输出结果是正确的,则表示错误发生在前半部分,否则,不妨认为错误在后半部分。这样反复进行多次,逐渐逼近错误位置。将写好的程序下载到单片机后,发现灯没有亮,检查程序没有问题,就用万能表测试,硬件部分,也没有连错,又从新下载程序,灯就按照预计的开始流水点亮。8 总结在本次设计的过程中,我们发现了很多问题,遇到了很多麻烦,有的问题其实很简单,主要是因为知识的掌握程度不够,拓展知识欠缺,这就要求我们在以后的学习中,应该注意到这一点,并且应该多读一些课外的文献,只靠课本上的知识远远不够,更重要的是我们要学会把书本中学到的知识和

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

20、定华.单片机原理与接口技术M.电子工业出版社,2001.4:2202254王威.微控制器原理及应用J.北京航空航天大学出版社 ,2007.10:45505胡洪波.单片机原理与应用实验教程J.湘潭大学出版社 ,2009.7:67696胡汉才.单片机原理及其接口技术M.清华大学出版社 ,2001.2:344014附录 1:总体电路原理图附录 2:实物图15附录 3:元器件清单16序号 名称 型号规格 数量1 单片机 ATC89C52 12 电阻 220 163 电容 22PF 24 电解电容 10UF 15 电阻 10K 16 晶振 12M 17 发光二极管 168 导线 若干附录 4:源程序17

21、#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);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报