单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx

上传人:b****6 文档编号:15833365 上传时间:2022-11-16 格式:DOCX 页数:17 大小:254.30KB
下载 相关 举报
单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx_第1页
第1页 / 共17页
单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx_第2页
第2页 / 共17页
单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx_第3页
第3页 / 共17页
单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx_第4页
第4页 / 共17页
单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx

《单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

单片机AT89C51可控流水灯课程设计报告汇编语言参考模板Word文档格式.docx

相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变高电平;

同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。

因此,要实现流水灯功能,只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。

在此还应注意一点,由于人眼的视觉暂留效应以单片机执行每条指令的时间很短,在控制二极管亮灭的时候应该延时一段时间,否则就看不到“流水”效果了。

2.2数码管显示方案 

通常数码管显示有两种方式:

动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。

但占用I/O口线多,每一个LED都要占用一个I/O口硬件开销大,电路复杂。

需要几个LED就必须占用几个并行I/O口,比较适用于LED数量较少的场合。

当然当LED数量较多的时候可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较复杂。

LED动态显示硬件连接简单,但动态显示扫描方式需要占用CPU较多的时间,在单片机没有太多实时测试任务的情况下可以采用。

本系统需要采用4位LED数码管来显示流水灯闪烁方式的序号,故本系统选择动态显示方案。

2.3键盘输入方案

单片机的键盘结构可以采用独立式按键和矩阵式键盘两种。

独立式按键指直接用I/O口线构成单个按键电路,可在系统中键较少时使用。

在按键比较多的时候可采用矩阵式键盘。

本系统要设置6个按键,其中1个键用来开启和关闭整个流水灯系统并控制流水灯的闪烁方式,还有一个键也是控制流水灯的闪烁方式,另外2个键控制流水灯闪烁速度,还有一个按键用来控制流水灯的暂停和继续。

最后一个按键用来控制流水灯的复位,故采用独立式按键。

第三章硬件电路设计 

3.1电路原理

本硬件的核心是MCS-51单片机,我们选用AT89C51。

因无需扩展外部RAM。

系统采用4位共阳极数码管,用来显示各种闪烁方式的序号。

系统采用6个按键控制,其中1个键用来开启和关闭整个流水灯系统并控制流水灯的闪烁方式,还有一个键也是控制流水灯的闪烁方式,另外2个键控制流水灯闪烁速度,还有一个按键控制流水灯的暂停和继续。

最后一个按键控制流水灯的复位。

系统在P1.0到P1.8上接了8个发光二极管,在按一下启动键时,P1.0的二极管亮,此时从P1.0到P1.8的二极管依次闪烁:

1.若此时按按键1,2,流水灯将2个2个,隔1个亮1个,从中间向两边并从两边向中间或4个4个依次闪烁。

2.若此时按按键3,4,流水灯的闪烁频率将改变。

3.若此时按按键5,将暂停流水灯效果,再按一次又可继续之前的效果。

4.若此时按按键6,将复位流水灯(跳到第一种方式)。

3.2单片机最小系统

+5V

10UF

10KΩ

C1

C2

图3—1

3.3系统工作流程

按设计要求,规划了可控流水灯的工作流程如下:

1.按下启动按钮(按键1),流水灯依次闪烁,数码管将显示1为第一种闪烁方式。

若在此时按下按键3,4灯光将改变频率显示(共有3种速度可供调节)。

并且若此时按按键5,将暂停彩灯效果,再按一次又可继续之前的效果。

2.按下按键1流水灯将2个2个闪烁,此时数码管将显示2表示为第2种闪烁方式,若在此时按下按键3,4灯光将改变频率显示(共有3种速度可供调节)。

3.再按下功能键1流水灯将隔1个亮1个,此时数码管将显示3表示为第3种闪烁方式,再按下功能键3,4灯光将改变频率显示(共有3种速度可供调节)。

4.再次按下按键1流水灯将从中间向两边并从两边向中间闪烁,此时数码管将显示4表示为第4种闪烁方式,再按下功能键3,4灯光将改变频率显示(共有3种速度可供调节)。

并且若此时按功能键5,将暂停彩灯效果,再按一次又可继续之前的效果。

5.再按下按键1流水灯将4个4个闪烁,此时数码管将显示5表示为第4种闪烁方式,再按下按键3,4灯光将改变频率显示(共有3种速度可供调节)。

6.再按下停止按钮系统将停止运行。

7.按按键2改变流水灯闪烁方式数码管将显示的数字依次减少。

8.按按键6将复位流水灯(跳到第一种方式)。

第四章程序设计

4.1系统总体结构框图

系统的结构框图如图4—1所示。

图4—1

4.2系统流程图

整个系统的总体程序,电路通电后,若按一下按键1,为第一种方式;

若再按一下按键1,此时为第二种方式;

再按一下为第三种方式;

若按下按键2,此时为第二种方式;

若再按一下按键2,此时为第一种方式;

再按一下按键2,此时为第五种方式。

每种方式各有它的流水灯花样。

(程序及流程图请看附录)

第五章调试 

5.1正常现象

按下按键1,灯开始闪烁。

开始运行,这是第一种方式,然后在第一种方式中又有四种闪烁方式,这时候就要用到按键1和2了,按下按键1,2切换方式。

按一下,切换一种方式,再按一下切换另一种方式。

按下按键1,2灯开始闪烁,切换五种方式。

按下按键3,4灯光改变频率显示。

按下按键5彩灯效果暂停,再按一次又继续之前的效果。

最后,就是关闭,按下按键1。

5.2出现的故障

在调试当中,出现了按下按键5,不能暂停彩灯效果,通过认真修改程序后,按下按键5,暂停彩灯效果,再按一次又继续之前的效果。

图5—1

在用实验箱进行实验时,不能实现流水灯效果。

认真思考及检查线路后,发现是烧接程序时步骤出错。

然后重新按照步骤:

擦除芯片——打开文件——写Flash——校验Flash操作,最后实现了可控流水灯功能。

图5—2

图5—3

第六章心得体会

本次课程设计的题目是可控流水灯的设计,我针对这个题目的任务要求从课本上,上网等渠道获取相关信息及参考资料。

之后对电路原理图和程序不断地修改,最终达到要求的效果。

但由于水平和时间有限,程序和设计中还有许多不足之处。

我会在以后的学习中不断努力。

通过此次设计使我对应用系统设计思路有了一定的掌握,对硬件和软件的实践有了一定的了解。

系统采用4位共阳极数码管来显示数字,采用6个按键,用来调整流水灯的闪烁方式,闪烁频率,暂停及复位。

将所学的知识得到了一定的贯通,进一步掌握了独立设计的本领,深入领会单片机应用系统的软、硬件调试方法和系统研制开发过程。

感谢老师及同学的帮助,这次课程设计收获颇多。

参考文献

[1] 

胡健单片机原理及接口技术,机械工业出版社。

[2] 

XX文库。

附录1

程序:

ORG0000H

AJMPSTART

ORG000BH

AJMPT_0;

20ms延时中断

ORG001BH

AJMPT_1;

100ms延时中断

;

__伪定义_________________________

YANS_ENBIT01H;

延时使能标志,1有效

ORG0030H

__初始化_________________________

START:

MOVP2,#01H;

打开四位一体数码管COM1端

MOVSP,#60H;

设置堆栈指针在(60H)

MOVR1,#0;

R1存放按键1,2(选择工作方式)

MOVR2,#1;

R2存放按键3,4(变换延时时间)

MOVR3,#0;

R3延时辅助

MOVR4,#0;

R4流水灯1查表辅助

MOVR5,#0;

R5流水灯2查表辅助

MOVR6,#0;

R6流水灯3查表辅助

MOVR7,#0;

R7流水灯4查表辅助

MOVR0,#0;

R0流水灯5查表辅助

MOV30H,#2;

30H存放延时数据2x100ms即200ms

中断初始化

MOVIE,#10001010B;

T_0、T_1延时中断使能

MOVIP,#00000000B;

无中断优先

MOVTMOD,#00010001B;

T_0、T_1延时中断工作方式一

MOVTH0,#0D8H

MOVTL0,#0F0H;

"

D8F0"

="

55536"

(20000us即20ms)

MOVTH1,#3CH

MOVTL1,#0B0H;

3CB0"

15536"

(100000us即100ms)

MOVTCON,#01010000B;

启动T_0、T_1延时

__主程序_________________________

MAIN:

CJNER1,#1,L1;

流水灯1

LCALLLOOP

L1:

CJNER1,#2,L2;

流水灯2

LCALLLOOP1

L2:

CJNER1,#3,L3;

流水灯3

LCALLLOOP2

L3:

CJNER1,#4,L4;

流水灯4

LCALLLOOP3

L4:

CJNER1,#5,L5;

流水灯5

LCALLLOOP4

L5:

CJNER1,#6,L6;

关闭

MOVP1,#0FFH

MOVP0,#0FFH

LCALLSTART

L6:

LJMPMAIN

__流水灯1________________________

LOOP:

JNB

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

当前位置:首页 > 求职职场 > 自我管理与提升

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

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