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

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

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

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

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

单片机AT89C51可控流水灯课程设计报告汇编语言参考模板

第一章课题的意义及应用

当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。

计算机作为一种快速通用的计算工具方便了用户的使用。

计算机可谓是我们最亲密的电子伙伴之一。

本设计着重在于分析计算机软件和开发过程中的环节和步骤,并从实践经验出发对计算机设计做了详细的分析和研究。

单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。

在工业生产中。

单片微型计算机是微型计算机称单片机,特别适用于控制领域,故又称为微控制器。

单片机的应用日益广泛,如应用在仪器仪表,家用电器和专卖装备的智能化以及过程控制等方面,单片机在人们的日常生活和工作中正扮演着越来越重要的角色。

本系统就是充分利用了AT89C51芯片的I/O引脚。

系统以采用MCS-51系列单片机为中心器件来设计LED流水灯系统,实现8个LED流水灯的各种显示方式,并实现循环的速度可调,暂停及复位功能。

通过本次课题设计,应用《单片机原理及接口技术》等所学相关知识及查阅资料,完成可控流水灯设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。

通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。

 

第二章系统的总体设计 

2.1设计方法

本课题使用AT89C51单片机时无须外扩存储器。

因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。

 如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在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种速度可供调节)。

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

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

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

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

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

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

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

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:

JNBYANS_EN,$;延时

CLRYANS_EN;关闭延时使能标志

MOVDPTR,#TAB1

MOVA,R4

MOVCA,@A+DPTR

MOVP1,A

MOVP0,#0F9H;数码管显示1

INCR4

CJNER4,#16,BY1

MOVR4,#0

BY1:

RET

;__流水灯2________________________

LOOP1:

JNBYANS_EN,$;延时

CLRYANS_EN;关闭延时使能标志

MOVDPTR,#TAB2

MOVA,R5

MOVCA,@A+DPTR

MOVP1,A

MOVP0,#0A4H;数码管显示2

INCR5

CJNER5,#8,BY2

MOVR5,#0

BY2:

RET

;__流水灯3________________________

LOOP2:

JNBYANS_EN,$;延时

CLRYANS_EN;关闭延时使能标志

MOVDPTR,#TAB3

MOVA,R6

MOVCA,@A+DPTR

MOVP1,A

MOVP0,#0B0H;数码管显示3

INCR6

CJNER6,#16,BY3

MOVR6,#0

BY3:

RET

;__流水灯4________________________

LOOP3:

JNBYANS_EN,$;延时

CLRYANS_EN;关闭延时使能标志

MOVDPTR,#TAB4

MOVA,R7

MOVCA,@A+DPTR

MOVP1,A

MOVP0,#99H;数码管显示4

INCR7

CJNER7,#10,BY4

MOVR7,#0

BY4:

RET

;__流水灯5________________________

LOOP4:

JNBYANS_EN,$;延时

CLRYANS_EN;关闭延时使能标志

MOVDPTR,#TAB5

MOVA,R0

MOVCA,@A+DPTR

MOVP1,A

MOVP0,#92H;数码管显示5

INCR0

CJNER0,#40,BY5

MOVR0,#0

BY5:

RET

;__中断T_0(20ms延时执行识别按键)___________

T_0:

CLRET0

PUSHPSW

PUSHACC

MOVTH0,#0D8H

MOVTL0,#0F0H;"D8F0"="55536"(20000us即20ms)

LCALLSBAJ;识别按键

POPACC

POPPSW

SETBET0

RETI

;__中断T_1(100ms延时)__________________

T_1:

CLRET1

PUSHPSW

PUSHACC

MOVTH1,#3CH

MOVTL1,#0B0H;"3CB0"="15536"(100000us即100ms)

INCR3

MOVA,R3

CJNEA,30H,YS

MOVR3,#0

SETBYANS_EN;启动延时使能

YS:

POPACC

POPPSW

SETBET1

RETI

;__按键识别________________________

SBAJ:

;按键1,2(选择工作方式)

JBP3.0,L7

JNBP3.0,$

INCR1

L7:

JBP3.1,L8

JNBP3.1,$

DECR1

CJNER1,#0,L7

MOVR1,#5

L8:

;按键3,4(变换延时时间)

JBP3.2,L9

JNBP3.2,$

INCR2

LCALLYSGX;调用延时数据更新

L9:

JBP3.3,L10

JNBP3.3,$

INCR2

LCALLYSGX1;调用延时数据更新

L10:

;按键5(暂停继续)

JBP3.4,L11

JNBP3.4,$

CPLTR1

L11:

;按键6(复位)

JBP3.5,L12

JNBP3.5,$

MOVR1,#1

L12:

RET

;__延时数据更新______________________

YSGX:

CJNER2,#1,BS1

MOV30H,#10;10x100ms即1s

MOVR3,#0

SJMPBS3

BS1:

CJNER2,#2,BS2

MOV30H,#5;5x100ms即500ms

MOVR3,#0

SJMPBS3

BS2:

CJNER2,#3,BS3

MOVR2,#0

MOV30H,#2;2x100ms即200ms

MOVR3,#0

BS3:

RET

YSGX1:

CJNER2,#1,BS11

MOV30H,#2;2x100ms即200ms

MOVR3,#0

SJMPBS33

BS11:

CJNER2,#2,BS22

MOV30H,#5;5x100ms即500ms

MOVR3,#0

SJMPBS33

BS22:

CJNER2,#3,BS33

MOVR2,#0

MOV30H,#10;10x100ms即1s

MOVR3,#0

BS33:

RET

;__流水灯数据_______________________

TAB1:

;流水灯1

DB0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H

DB80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH

TAB2:

;流水灯2

DB0FCH,0F0H,0C0H,00H,0C0H,0F0H,0FCH,0FFH

TAB3:

;流水灯3

DB0FEH,0FAH,0EAH,0AAH,0FFH

DB0FDH,0F5H,0D5H,55H,0FFH

DB0AAH,0FFH,55H,0FFH,00H,0FFH

TAB4:

;流水灯4

DB0E7H,0C3H,81H,00H,0FFH

DB7EH,3CH,18H,00H,0FFH

TAB5:

;流水灯5

DB0FEH,0FCH,0F8H,0F0H,0FFH

DB0FDH,0F9H,0F1H,0E1H,0FFH

DB0FBH,0F3H,0E3H,0C3H,0FFH

DB0F7H,0E7H,0C7H,87H,0FFH

DB0EFH,0CFH,8FH,0FH,0FFH

DB0DFH,9FH,1FH,1EH,0FFH

DB0BFH,3FH,3EH,3CH,0FFH

DB7FH,7EH,7CH,78H,0FFH

 

附录2 

仿真电路图:

 

实验箱接线图:

 

流程图:

 

NNN

YYYY

 

N

 

Y

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

当前位置:首页 > 自然科学 > 物理

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

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