闪烁LED灯的设计单片机课程设计Word文档格式.docx

上传人:b****5 文档编号:19309686 上传时间:2023-01-05 格式:DOCX 页数:9 大小:281.29KB
下载 相关 举报
闪烁LED灯的设计单片机课程设计Word文档格式.docx_第1页
第1页 / 共9页
闪烁LED灯的设计单片机课程设计Word文档格式.docx_第2页
第2页 / 共9页
闪烁LED灯的设计单片机课程设计Word文档格式.docx_第3页
第3页 / 共9页
闪烁LED灯的设计单片机课程设计Word文档格式.docx_第4页
第4页 / 共9页
闪烁LED灯的设计单片机课程设计Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

闪烁LED灯的设计单片机课程设计Word文档格式.docx

《闪烁LED灯的设计单片机课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《闪烁LED灯的设计单片机课程设计Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

闪烁LED灯的设计单片机课程设计Word文档格式.docx

图2主程序流程图

3、闪烁控制程序

闪烁控制程序用来控制P1口的发光管发光变化方式,其中:

执行功能程序0(FUN0)时的P1口输出值变化为11111110→延时→11111101→延时→11111011→延时→11110111→延时→11101111→延时→11011111→延时→10111111→延时→01111111→延时→结束转主程序。

执行功能程序1(FUN1)时的P1口输出变化为11111110→延时→11111100→延时→11111000→延时→11110000→延时→11100000→延时→11000000→延时→10000000→延时→00000000→延时→结束转主程序。

执行功能程序2(FUN2)时的P1口输出变化为10101010→延时→01010101→延时→结束转主程序。

4、延时子程序

延时子程序有10ms和0.5s两个,用作键扫描消抖及发光管闪烁延时。

发光管闪烁的快慢可由R4寄存器内的初值进行改变。

本控制器在使用中,如果要改变闪烁的方式,可按下相应的功能按键。

当一个完整的闪烁循环结束后,即可转入新的闪烁方式。

由于键扫描是在闪烁循环结束时进行,因此,功能开关按下的时间应较长才能被读入。

改进的方法是把DL05S延时子程序用键扫描子程序来代替,这样,只要按下按键即可被键扫描程序读入。

三、汇编语言

以下是闪烁LED小灯控制器完整的汇编程序清单:

小灯控制程序

中断入口程序

ORG0000H;

程序执行开始地址

LJMPSTART;

跳到START执行

ORG0003H;

外中断0中断入口地址

RETI;

中断返回(不开中断)

ORG000BH;

定时器T0中断入口地址

ORG0013H;

外中断1中断入口地址

ORG001BH;

定时器T1中断入口地址

ORG0023H;

串行口中断入口地址

初始化程序

CLEAR:

MOV20H,#00H;

20H单元内存清0(闪烁标志清0)

SETB00H;

20H.0位置1(上电时自动执行闪烁功能1)

RET;

子程序返回

主程序

START:

ACALLCLEAR;

调用初始化子程序

MAIN:

LCALLKEYWORK;

调用键扫描子程序

JB00H,FUN0;

20H.0位为1时执行FUN0

JB01H,FUN1;

20H.1位为1时执行FUN1

JB02H,FUN2;

20H.2位为1时执行FUN2

JB03H,MAIN;

备用

AJMPMAIN;

返回主程序MAIN

功能程序

第1种闪烁功能程序

FUN0:

MOVA,#0FEH;

累加器赋初值

FUN00:

MOVP1,A;

累加器值送至P1口

LCALLDL05S;

延时

JNBACC.7,MAIN;

累加器最高位为0时转MAIN

RLA;

累加器A中数据循环左移1位

AJMPFUN00;

转FUN00循环

第2种闪烁功能程序

FUN1:

FUN11:

JZMAIN;

A为0转MAIN

ANLA,P1;

A同P1口值相“与”

AJMPFUN11;

转FUN11循环

第3种闪烁功能程序

FUN2:

MOVA,#0AAH;

CPLA;

A中各位取“反”

转MAIN

扫描程序

KEYWORK:

MOVP3,#0FFH;

置P3口为输入状态

JNBP3.0,KEY0;

读P3.0口,若为0转KEY0

JNBP3.1,KEY1;

读P3.1口,若为0转KEY1

JNBP3.2,KEY2;

读P3.2口,若为0转KEY2

JNBP3.3,KEY3;

读P3.3口,若为0转KEY3

闪烁功能0键处理程序

KEY0:

LCALLDL10MS;

延时10ms消抖

JBP3.0,OUT0;

P3.0为1,子程序返回(干扰)

20H.0位置1(执行闪烁功能1标志)

CLR01H;

20H.1位清0

CLR02H;

20H.2清0

CLR03H;

20H.3位清0

OUT0:

闪烁功能1键处理程序

KEY1:

LCALLDL10MS

JBP3.1,OUT1

SETB01H;

20H.1位置1(执行闪烁功能2标志)

CLR00H

CLR02H

CLR03H

OUT1:

RET

闪烁功能2键处理程序

KEY2:

JBP3.2,OUT2

SETB02H;

20H.2位置1(执行闪烁功能3标志)

CLR01H

OUT2:

闪烁功能(备用)键处理程序

KEY3:

JBP3.3,OUT3;

20H.3位置1(执行备用闪烁功能标志)

SETB03H

OUT3:

延时程序

延时子程序,执行一次时间为513μs

DL512:

MOVR2,#0FFH

LOOP1:

DJNZR2,LOOP1

10ms延时子程序(调用20次0.5ms延时子程序)

DL10MS:

MOVR3,#14H

LOOP2:

LCALLDL512

DLNZR3,LOOP2

延时子程序,改变R4寄存器初值可改变闪烁的快慢(时间为25ms×

15)

DL05S:

MOVR4,#0FH

LOOP3:

LCALLDL25MS

DLNZR4,LOOP3

25ms延时子程序,调用扫键子程序延时,可快速读出功能按键值

DL25MS:

MOVR5,#0FFH

LOOP4:

LCALLKEYWORK

DJNZR5,LOOP4

END;

程序结束

四、程序仿真调试

基于单片机的闪烁LED灯的设计,我们小组使用了keiluvision3和Proteus两种单片机开发软件进行仿真调试。

KeiluVision3是德国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。

KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。

Proteus是世界上著名的EDA工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,Proteus集成了原理图捕获、SPICE电路仿真和PCB设计,形成一个完整的电子设计系统。

1、汇编程序,建立源程序

使用KeiluVision3软件编写闪烁LED灯控制程序,调试程序

图3汇编程序

图4调试程序

2、闪烁LED电路仿真

使用Proteus进行电路仿真,利用上面已编好的源程序对设计电子电路进行虚拟模型仿真

图5电路仿真

 

五、设计总结

LED灯具有使用低压电源、耗能少、适用性强、稳定性高、响应时间短、对环境无污染、多色发光等的优点,LED灯广泛使用于我们的生活中,给我们带来了色彩丰富的世界。

本设计的闪烁LED灯的控制原理,广泛应用在广告彩灯控制器和舞台灯光控制器等领域,关于LED灯产品的商业效益有着不错的发展前途。

经过这次的设计,我们小组对单片机有了更进一步的了解,知道了它的内部结构的程序的运行过程,同时对汇编语言有了进一步的了解,能用它实现简单功能的单片机设计。

在本次设计中,使用到了Keil和Proteus两种单片机仿真软件,逐步深入了解这两个软件的使用,对以后关于单片机的电子设计有着

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

当前位置:首页 > 成人教育 > 专升本

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

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