流水灯设计.docx
- 文档编号:9492344
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:10
- 大小:332.20KB
流水灯设计.docx
《流水灯设计.docx》由会员分享,可在线阅读,更多相关《流水灯设计.docx(10页珍藏版)》请在冰豆网上搜索。
流水灯设计
1引言
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。
在本次课程设计中,本人使用单片机作为这次作业的核心。
课程设计通过使59C51单片机和共阴二位数码管,综合应用基础电子电路和单片机的知识,来实现该电路的制作。
通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,为今后从事相应工作打下基础。
2流水灯方案设计与分析
2.1设计目的
本设计包括确定控制任务、系统总体方案设计、硬件系统设计、软件程序的设计等,以便使学生掌握单片机系统设计的总体思路和方法。
2.2设计内容及要求
单片机的P1.0-P1.7接八个发光二极管L1-L8,P3.0~P3.2口为闪烁方式控制开关K1,K2按键接口。
当K1闭合时,实现八个发光二极管从L1到L8轮流循环点亮,当K2闭合时;实现八个发光二极管从L8到L1轮流循环点亮;当K1,K2同时闭合时,实现八个发光二极管从L1到L8再从L8到L1循环点亮。
每一个二极管点亮时间为200ms。
2.3设计方案及原理
流水灯控制设计,大概的设计思路可概括为以下8个步骤:
⑴通过累加器A给P1口送二进制数,驱动八个发光二极管,低电平发光,高电平熄灭。
⑵编写延时一秒的子程序DELAY,可通过软件定时,也可通过与定时器中断配合来实现。
⑶调用DELAY延时程序。
⑷送0FFH给P1口,使发光二极管熄灭,再调用DELAY延时程序。
使发光二极管点亮。
⑸送给寄存器R0,通过DJNZ指令,配合DELAY延时程序,实现发光二极管点亮,后结束。
⑹执行RR(循环右移)指令,指向下一个二极管,重复第5步。
⑺当P3.0为0,即按下K1时,8个发光二极管从左至右依次点亮,当P3.1为0,即按下K2时,使二极管从右至左一次循环点亮。
⑻当P3.0为0,P3.1为0时,即按下K1、K2时,8个发光二极管先从左至右依次点亮,再从右至左一次循环点亮。
单片机中的定时器有四种工作方式,由于工作方式0和工作方式1计数溢出后,计数器都全为0,因此,循环定时或循环计数应用时就存在反复设置计数初值的问题。
这不但影响精度,而且也给程序设计带来了不便。
于是,选择工作方式2,它具有自动更新重新加载功能,即自动加载计数初值。
在这种方式下,把16位计数器分为两部分,即TL作计数器,TH作预置寄存器,初始化时把初值分别装入TL和TH中。
为了能够清晰的看见二极管闪烁,选择定时器定时500us,再通过配合DJNZ指令来实现延时200ms的定时。
由于,DJNZ中操作数的范围不能达到400,所以选择两条DJNZ指令,一次置200,一次置2,依次循环就可达到要求。
3硬件的设计
在做本次课程设计时,用到了8051单片机,由于其程序存储器是掩膜ROM,其编程是由半导体制造厂家完成的,即在生产过程中进行编程,当掩膜ROM制造完成后,用户不能更改其内容。
因此,选择了型号为27256(32KB)的EPROM作为它的程序存储扩展。
同时EA引脚必须有效,方可访问外扩程序存储器。
在引脚的连接时,8051单片机的PSEN引脚须接EPROM的OE端,当PESN有效时,允许读出EPROM中的指令码。
同时,ALE接74LS373译码器的G引脚,当CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号,以实现低位地址和数据的隔离。
因此,其程序存储器扩展图如图2所示。
单片机的复位操作有上电自动复位和按键自动复位两种方式。
上电复位是通过外部复位电路的电容充电来实现的。
电容C1选择10uf,电阻选择10K,这样,只要电源VCC的上升时间不超过1ms,就可实现上电复位,即接通电源就完成了系统的复位初始化。
3.1硬件接线的设计
发光二极管有共阳和共阴接法,此次设计选择了共阳接法,所以可通过给P1口输送低电平就可驱动发光二极管发光,输送高电平就可使发光二极管熄灭。
因此,总体的设计图如图1所示。
图1流水灯控制设计硬件接线图
3.2程序存储扩展的设计
外扩程序存储器的空间地址,是由P2口提供高八位地址,P0口分时提供低8位地址和用作8位双向数据总线。
在设计硬件接线时,使27256芯片的片选信号CE始终保持有效,低八位A0~A7通过74LS373译码器连接P1口,高七位A8~A14连接P2.0~P2.6。
因此其地址范围位0000H~7FFFH。
4软件设计
4.1流程图的设计
流水灯控制设计的流程图如图2所示。
图2流水灯控制流程图
4.2程序代码的设计
ORG0000H;程序存放的起始地址
MAIN:
MOVA,#0FEH;A装入LED1等亮的数据
MOVR2,#8;将灯的数量送给R2
SETBC;位置1
LOOP3:
JNBP3.0,LOOP4;看K1是否按下,若按下则转到LOOP4
SJMPLOOP5执行,若没有则转到LOOP5执行
LOOP4:
JNBP3.1,LOOP2;看K2是否按下,若按下则转到LOOP2
SJMPLOOP执行,若没有则转到LOOP执行
LOOP5:
JNBP3.1,LOOP1;看K2是否按下,若按下则转到LOOP1
SJMPMAIN执行,若没有则转到主程序
LOOP:
RLA;将A中的数据左移一位
MOVP1,A;将A移动过的数据送P1口显示
LCALLDELAY;调用延时子程序
DJNZR2,LOOP;没有移动够8次,则继续移动
SJMPMAIN;移动够8次后,跳到主程序,重来,以达到循环
LOOP1:
RRA;将A中的数据右移一位
MOVP1,A;将A移动过的数据送P1口显示
LCALLDELAY;调用延时子程序
DJNZR2,LOOP1;没有移动够8次,则继续移动
LJMPMAIN;移动够8次后,跳到主程序,重来,以达到循环
LOOP2:
RLA;将A中的数据左移一位
MOVP1,A;将A移动过的数据送P1口显示
LCALLDELAY;调用延时子程序
DJNZR2,LOOP2;没有移动够8次,则继续移动
LJMPLOOP6;移动够8次后,跳到LOOP6执行
LOOP6:
RRA;将A中的数据右移一位
MOVP1,A;将A移动过的数据送P1口显示
LCALLDELAY;调用延时子程序
DJNZR2,LOOP6;没有移动够8次,则继续移动
LJMPLOOP3;若移动够8次,则转到LOOP3执行,判断开关状态,以决定下一步动作
DELAY:
MOVR0,#200;延时子程序
D1:
MOVR4,#30
D2:
MOVR5,#20
DJNZR5,$
DJNZR4,D2
DJNZR3,D1
RET;子程序返回
END;程序结束
4.3kei图
KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用。
KeilC51软件主要是对程序的编写要准确。
为了正确仿真串口,在软件仿真调试时,在用户的Keil工程文件的属性中,还需要设置实际使用的晶振频率。
这个参数非常重要,直接影响通信的波特率,可以按照实际使用的参数进行设置KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
图3
4.4proteus仿真图
图4
图5
图6
5课程设计体会
通过此次课程设计,使我更加扎实的掌握了有关单片机方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:
CAD制图、汇编语言、模拟和数字电路知识等。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
在这次课程设计中,清晰的分析过程也起到很大的作用。
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在各种努力下,终于游逆而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可。
参考文献
[1]孙涵芳.MCS-51/96系列单片机原理及应用(修订版).北京航空航天大学出版社.1994
[2]李朝青.单片机原理及接口技术(第3版).北京航空航天大学出版社.2005
[3]蒋辉平.基于Proteus的单片机系统设计与仿真实例.机械工业出版社.2009
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水 设计