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

上传人:b****4 文档编号:5501883 上传时间:2022-12-17 格式:DOCX 页数:11 大小:180.31KB
下载 相关 举报
单片机课程设计可控流水灯设计.docx_第1页
第1页 / 共11页
单片机课程设计可控流水灯设计.docx_第2页
第2页 / 共11页
单片机课程设计可控流水灯设计.docx_第3页
第3页 / 共11页
单片机课程设计可控流水灯设计.docx_第4页
第4页 / 共11页
单片机课程设计可控流水灯设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

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

《单片机课程设计可控流水灯设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计可控流水灯设计.docx(11页珍藏版)》请在冰豆网上搜索。

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

单片机课程设计可控流水灯设计

淮阴工学院

单片机课程设计报告

题目:

可控流水灯设计

系(院):

计算机工程学院

专业:

计算机科学与技术(物联网方向)

班级:

物联网1091

学号:

1091205924

姓名:

谢圣东

指导教师:

戴峻峰,陈宏明

学年学期:

2010~2011学年第2学期

 

2011年6月25日

摘要

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

可控流水灯设计要求:

对8个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;用两个键来控制流水灯流动的速度。

在设计中主要采用8051单片机作为主要控制元件;在单片机P2接上8个发光二极管作为流水指示灯,在P0口接上数码管显示编号,显示当前流水灯的流水模式,数码管采取共阳极接法;在P1口的4、5、6位上各接一个按键,一个按键进行方式选择,另外两个按键控制流水灯的流动的速度。

在接上复位电路,时钟电路,电源电路以及一些必要的设计与电路,就能设计出一款可控流水灯。

 

关键词8051单片机发光二极管数码管流水灯

 

目录

1引言1

2课题综述1

2.1课题的来源1

2.2课题的目的与意义1

2.3面临的问题1

3系统设计1

3.1总体设计1

3.2硬件原理图2

3.3硬件焊接图3

3.4软件设计4

4代码编写4

5系统调试8

总结9

致谢10

参考文献11

 

1引言

单片机课程设计主要是为了让我们增进对80C51单片机电路的的感性认识,加深对理论方面的理解。

了解软硬件的有关知识,并掌握硬件设计过程、方法及实现,为以后实现应用打下基础。

另外,通过简单课题的设计练习,使我们了解各项工程部分,达到巩固并运用所学知识解决实际问题的目的。

2课题综述

2.1课题的来源

当今社会,由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在各个领域,而流水灯在生活中的应用更是广泛,较为贴近生活。

所以选择可控流水灯设计这个课题,也是对本学期学习单片机课程的加深与巩固。

2.2课题的目的与意义

通过可控流水灯单片机课程的设计,即那个理论与实践联系在一起,在熟悉基本原理的前提下,提出自己的该方案,完成可控流水灯的设计。

2.3面临的问题

面临的问题就是软件与硬件方面:

软件方面,要实现按键对数码管的逻辑控制,在控制流水灯点亮;硬件方面,就是先要绘制protel原理图,在绘制原理图时要有电源电路,USB、串口电路,单片机还要有复位电路、时钟电路,以及三个按键要接在P1口,数码管接在P0口,LED灯接在P2口

3系统设计

3.1总体设计

使80C51芯片作为控制主体;三个按键中,第二个按键作为控制数码管显示以及相应的流水灯显示,其他两个按键作为控制流水灯流水速度;数码管显示流水灯显示方式,8个放光二极管作为LED显示流水灯。

另外外接复位电路,电源电路,时钟电路,系统对外连接的串口用MAX232芯片完成。

模块区域图如下:

图3-1模块区域图

3.2硬件原理图

图3-2硬件原理图

3.3硬件焊接图

图3-3硬件焊接图1

图3-3硬件焊接图2

3.4软件设计

软件设计部分的方法与函数嵌套、调用函数的方法。

要实现按键控制数码管显示数字,还要在显示对应的数字时使8个显示相应的流水灯,所以在P1.5口出现一个低电平时就会被调到其他的函数区域执行,点亮数码管,是数码管显示出相应的数字,然后依然是通过调用函数的方法,使LED灯点亮,课题的要求是显示流水灯,要有一亮一灭的效果,所以在此函数里放一个循环,一个循环左移,这样也就产生了流水灯的效果,接着下面就是这样循环下去,最后按复位键复位。

4代码编写

ORG0000H

SJMPMAIN

MAIN:

//MOVA,P1;读入P1口状态

//ANLA,#20H;屏蔽无效位

MOVP0,#0FFH

LCALLWAIT

FS1:

MOVA,#0F9H

MOVP0,A;数码管显示数字1

MOVR2,#08H

MOVA,#0FEH

LOOP1:

MOVP2,A

LCALLDELAY

RLA

DJNZR2,LOOP1

LCALLWAIT

FS2:

MOVA,#0A4H

MOVP0,A;数码管显示数字2

MOVR2,#08H

MOVA,#0FEH

LOOP2:

MOVP2,A

LCALLDELAY

RLA

RLA

DJNZR2,LOOP2

LCALLWAIT

FS3:

MOVA,#0B0H

MOVP0,A;显示3

MOVR2,#08H

MOVA,#0FEH

LOOP3:

MOVP2,A

LCALLDELAY

RLA

RLA

RLA

DJNZR2,LOOP3

LCALLWAIT

FS4:

MOVA,#99H

MOVP0,A;显示4

MOVR2,#08H

MOVA,#0FEH

LOOP4:

MOVP2,A

LCALLDELAY

RLA

RLA

RLA

RLA

DJNZR2,LOOP4

LCALLWAIT

FS5:

MOVA,#92H

MOVP0,A;显示5

MOVR2,#08H

MOVA,#0FEH

LOOP5:

MOVP2,A

LCALLDELAY

RLA

RLA

RLA

RLA

RLA

DJNZR2,LOOP5

LJMPMAIN

DELAY:

MOVA,P1;读入P1口状态

ANLA,#10H

CJNEA,#00H,DELAY2;S2是否按下

MOVR7,#0FFH;1s

DELAY1:

MOVR6,#0FFH

DELAY0:

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

DJNZR6,DELAY0

DJNZR7,DELAY1

RET

WAIT:

FDG:

MOVA,P1;读入p1口状态

ANLA,#20H

CJNEA,#20H,LET;判断S1是否按下

JMPFDG

LET:

LCALLDE

MOVA,P1;读入P1口状态

ANLA,#20H

CJNEA,#20H,LEFT;判断S1是否按下

JMPFDG

LEFT:

MOVA,P1

ANLA,#20H

CJNEA,#20H,LEFT

RET

DELAY2:

MOVA,P1

ANLA,#40H

CJNEA,#00H,ERR;判断S3是够按下

MOVR7,#0FFH;延时1S

DELAY3:

MOVR6,#0FFH

DELAY4:

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

DJNZR6,DELAY4

DJNZR7,DELAY3

RET

DE:

MOVR7,#28H

LAP6:

MOVR6,#64H

DJNZR6,$

DJNZR7,LAP6

RET

ERR:

RET

END

5系统调试

将编写好的汇编语言代码用Keil进行编译后,修改出现的错误,待无错误后将程序下载到单片机中,运行可控流水灯系统。

 

总结

这次课程设计是一周的时间,虽说时间不短,但是这之间完成的任务量还是挺大的,要绘制protel原理图,然后对照着原理图焊接,然后写代码,调试在运行。

所以这个礼拜时间上都是很紧凑,同时也很充实。

首先在硬件电路上,有一个正确的protel原理图是很关键的,一切硬件包括代码都是依照这个,老师在这个方面帮助了我们很大的忙,帮我们预先设计的很多的电路,以及电阻、电容的取值大小,然后有不懂的也给我们细心讲解,很感谢老师,上午原理图基本上就成型了,接着就是焊接电路,焊接电路时要格外的细心,不能焊错引脚,然后还要小心,电烙铁很烫,不能烫伤。

焊接电路时,在布局上也是一大讲究,要充分考虑电路板的大小与待焊接原件的大小,该紧凑的地方要紧凑,然后整体分布要均匀,要能体现一个一个的功能模块,这样在电路发生错误的情况下也便于找出错误的所在,还有一点好处是接线时也很方便。

上面是说的硬件方面,下面说说软件代码不是太成功,主要原因是对单片机的硬件资源还不是太透彻的理解,代码方面要注意的是也要实现功能模块化,以函数与调用函数的形式体现出来,当然第一步是要能对单片机汇编语言很理解,然后怎么去调用函数,实现功能。

软硬件都完成后就是整合,单片机是软硬件的结合,我在这个过程中出现过很多的错误,主要是硬件方面,有的是电容正负接反了,有的是线掉了。

这个过程真正意义上找错误,自我完善的过程。

另外就是在这个过程中与同学加强合作很重要,这样效率很高,然后要勤于问老师,这样也会进步的很快。

致谢

这一次,能够在一周的时间里顺利的完成此次单片机的课程设计,首先最想要感谢的是我的指导老师,戴俊峰老师,老师在一周时间里,耗费许多的精力与体力对我们进行悉心的指导与帮助,在这一周时间里,在焊接电路、调试程序时,老师总能陪在我们身旁,细心的为我们解答遇到的问题,帮我们解决困难。

在此衷心的感谢老师为我们做出的牺牲!

此外感谢淮阴工学院和计算机工程学院为我们提供很好的实践机会。

也要感谢实验室的工作人员为我们提供了舒适的实验环境,还要感谢学校的图书馆为我们提供了丰富的书籍资料以方便我们借阅,在此过程中我遇到许多问题,通过查阅书籍得以解决,谢谢那些优秀书籍的作者,感谢你们的指导!

在此次课程设计中得到了同学的帮助,能够与他们一起探索,一起研究解决问题,在互帮互助中我找到自己的不足,在此向帮助过我的同学表示感谢!

课程设计是我们实践的一个重要经历,是我们锻炼自己实践能力的关键环节,一周的课程设计需要许多方面的帮助才能完成,在此再次向所有帮助过我的人表示感谢!

 

参考文献

1李广弟,朱秀月,冷祖祁.单片机基础(第三版).北京:

北京航空航天大学出版社,2007

2蔡美琴、张为民MCS-51系列单片机系统及其应用.第二版.北京:

高等数学出版社,2004

3张培仁基于C语言编程MCS-51单片机原理与应用[M].北京:

清华大学出版社,2003

4胡汉才.单片机原理及系统设计.北京:

清华大学出版社,2002

5南建辉,熊鸣,王军茹.MCS-51单片机原理及应用实例.北京:

清华大学出版社,2004

.

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

当前位置:首页 > 医药卫生

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

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