多路流水灯的控制程序设计Word文档下载推荐.docx

上传人:b****6 文档编号:20835899 上传时间:2023-01-25 格式:DOCX 页数:18 大小:388.47KB
下载 相关 举报
多路流水灯的控制程序设计Word文档下载推荐.docx_第1页
第1页 / 共18页
多路流水灯的控制程序设计Word文档下载推荐.docx_第2页
第2页 / 共18页
多路流水灯的控制程序设计Word文档下载推荐.docx_第3页
第3页 / 共18页
多路流水灯的控制程序设计Word文档下载推荐.docx_第4页
第4页 / 共18页
多路流水灯的控制程序设计Word文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

多路流水灯的控制程序设计Word文档下载推荐.docx

《多路流水灯的控制程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《多路流水灯的控制程序设计Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

多路流水灯的控制程序设计Word文档下载推荐.docx

1.4学习程序设计的基本思路和方法。

2、设计要求

2.1以8086CPU为核心、并行接口芯片8255A和3个逻辑电平开关设计——多路流水灯控制程序;

2.2该多路流水灯控制程序能实现模拟水滴下落、左向移动流水灯和右向移动流水灯三种不同的模拟流水形式;

2.3该多路流水灯控制程序在输入有效代码时才能产生所需的流水形式,否则,小灯全灭。

3、设计思路

总体方案设计分析

在本实验中要求用8255A的B口做为输出,接8个发光二极管,从而实现8位流水灯的显示效果,故基本的接线可以如下面图2所示。

在C口的低三位接3个开关,实现3个扩展功能的控制,在PC0-PC7口分别对应的接八个发光二极管。

3.1模拟水滴下落

(1)现象

模拟水滴下落分为两个过程:

其一,水滴形成(渐变效果),即最左位的小灯的亮度逐渐增强;

其二,水滴掉下(加速与拖尾效果),即小灯移动的速度逐渐加快以及渐隐效果。

(2)原理

水滴形成是在一个周期内,我们可以调节亮和灭的时间,达到调节亮度的目的。

因为一次亮灭为一个周期,由于人眼对时间的分辨率有限,变化较快的的闪烁频率无法识别,只要周期够短,人眼就看不出闪烁了。

因此利用此原理,亮的时间长一点,灭的时间短一点,看起来就亮一些,否则就暗一些从而实现渐变的效果及水滴的形成,给人的感觉是D0位小灯的亮度逐渐增大。

水滴掉下过程是首先定义一些时间数组,然后通过数组所定义的时间的逐渐变化来使硬件产生小灯的加速移动的效果。

拖尾效果是首先定义一些时间数组,然后通过数组所定义的时间的逐渐变化来使硬件产生小灯的渐隐的效果。

3.2左向移动流水灯

左向移动流水灯的实验现象是首先最左边的灯亮,然后是最左边的灯灭,此时左起第二个灯亮,依次轮流亮,直到第八个灯亮。

然后循环上述过程。

左向移动流水灯是根据发光二极管的显示原理,首先点亮最右的二极管,然后进位置一,通过带进位的循环左移指令编写程序以实现模拟流水灯的左向移动。

3.3右向移动流水灯

右向移动流水灯的实验现象是首先最右边的灯亮,然后是最右边的灯灭,此时右起第二个灯亮,依次轮流亮,直到第八个灯亮。

右向移动流水灯是根据发光二极管的显示原理,首先点亮最左的二极管,然后进位置一,通过带进位的循环右移指令编写程序以实现模拟流水灯的右向移动。

4、电路及连线设计

图4.1系统逻辑框图

图4.2系统硬件连接图

图4.38255A与8086CPU连接及外部接线图

图4.48255A与LED及开关的连接及外部接线图

5、程序设计

5.1主程序流程

图5.1主程序流程图

5.2子程序流程图

(1)模拟水滴子程序

水滴形成(渐变效果):

图5.2水滴形成过程子程序图

水滴掉下(加速与拖尾效果):

图5.3水滴掉下过程子程序图

(2)左向移动流水灯

图5.4左向移动流水灯子程序图

(3)右向移动流水灯

图5.5左向移动流水灯子程序图

5.3源程序设计(见附录)

5.4仿真实物连接图

图5.6硬件仿真图

6、设计总结

这次微机原理课程设计我学到了很多在书本上所没有学到过的知识。

以前在上课的时候对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以及当寄存器不够用时如何用存储单元代替寄存器、怎么去使用循环嵌套、怎么去正确使用8255芯片等方面都有了很大程度的提高。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,但总的来说还是圆满的

7、参考文献

[1]楼顺天,周佳社.微机原理与接口技术[M].北京:

科学出版社,2006:

25-71,163-164,295-305

[2]周明德.微机原理与接口技术[M].北京:

人民邮电出版社,2007.225-243

附录:

CODESEGMENT

ASSUMECS:

CODE

ORG11e0H

START:

JMPSTART0

IOCONPTEQU0FF2BH

IOAPTEQU0FF28H

IOBPTEQU0FF29H

IOCPTEQU0FF2AH

BUFDB?

?

DATA0:

DB00H,01H,02H,04H,06H,10H,20H,40H;

亮度数组以实现拖尾效果

DATA1:

DB00H,22H,30H,3BH,44H,4CH,54H,5BH,61H,67H,6AH,72H,77H,7BH,7EH;

时间数组以实现加速效果

DATA2:

DB7H,6H,5H,4H,3H,2EH,1H,00H,8H,9H,0AH,0BH,0CH,0DH,0EH,0FH

START0:

MOVAL,81H;

写8255A方式控制字

MOVDX,IOCONPT

OUTDX,AL

MO:

MOVDX,IOCPT;

检测开关信号

INAL,DX

CMPAL,01H;

检测按键1是否被按下

JZK1

CMPAL,02H;

检测按键2是否被按下

JZK2

CMPAL,04H;

检测按键3是否被按下

JZK3

JMPTHEEND;

检测是否按键1,2,3均未被按下

K1:

JMPL1

K2:

JMPL2

K3:

JMPL3

L1:

MOVDX,IOBPT

MOVAL,0FFH

OUTDX,AL

LL1:

XORDX,DX

XORBX,BX

MOVCX,0FDH

L1_0:

;

水滴形成(渐变效果)

PUSHAX;

嵌套循环来控制灯亮灭的时间

PUSHDX;

使实现模拟水滴形成的渐变效果

MOVDL,4;

即感觉D0位小灯的亮度逐渐增大

MOVAX,BX

DIVDL

MOV[SI+6],AH;

判断BX除以4后的余数是否为0,

POPDX;

若不为0则调转到L1_1

POPAX

CMP[SI+6],00H

JNZL1_1

INCDL

L1_1:

PUSHCX

PUSHBX

XORBX,BX

MOVCX,11H

L1_100:

MOVDX,IOBPT;

从B口输出7FH

MOVAL,7FH

MOVCX,41H

L1_2:

CMPBL,DL

JNZL1_22

从B口输出0FFH

L1_22:

INCBL

LOOPL1_2;

第三次循环

POPBX

POPCX

LOOPL1_100;

第二次循环

POPCX

L1_00:

LOOPL1_0;

第一次循环

水滴形成(渐变效果)程序结束,水滴掉下(加速与拖尾效果)

PUSHCX;

保护现场

PUSHBX

MOVCX,0FFH

L1_3:

;

MOVSI,4000H;

使实现模拟水滴的加速掉下及拖尾效果

PUSHAX

MOVAX,00H

MOV[SI],AX

MOV[SI+2],AX;

存储单元清零

MOV[SI+4],AX

POPAX

PUSHCX;

PUSHDX

XORDX,DX

MOVCX,10H

L1_4:

PUSHAX;

保护现场,依次取DATA1的内容

MOVBX,OFFSETDATA1

ADDBX,DX

MOVAL,[BX]

CMPBL,AL

POPAX

JNZL1_40

依次取DATA2的内容

MOVBX,OFFSETDATA2

MOV[SI+2],AL

L1_40:

INCDX

LOOPL1_4

POPBX

XX:

MOVCX,041H

L1_5:

MOVCX,08H

L1_6:

PUSHBX;

依次取DATA0的内容

MOVBX,OFFSETDATA0

MOVAX,[BX]

CMPBX,AX

JNZL1_60

MOVCL,DL

MOVBX,1

SHLBX,CL

OR[SI],BX

MOVAX,[SI]

NOTAX

MOV[SI],AX

MOV[SI+4],AX

PUSHAX

MOVAX,[SI+2]

CMPAX,08H

JNAL1_600

PUSHAX;

MOVAX,[SI+4]

MOVCL,[SI+2]

SUBCL,8H

SHLAX,CL

NOTAX

MOVDX,IOBPT;

从B口输出

POPCX;

恢复现场

L1_600:

保护现场

PUSHCX

MOVCX,[SI+2]

SHRAX,CL

POPCX

NOTAX

MOVDX,IOBPT;

POPAX;

L1_60:

LOOPT2

T2:

JMPL1_6

POPDX;

INCBX

LOOPT1

POPBX;

T1:

JMPL1_5

INCBX

T3:

JMPL1

RET;

水滴掉下(加速与拖尾效果)程序结束

L2:

;

模拟流水灯左移

MOVDX,IOBPT;

设置B口输出

STC;

进位置1

MOVAL,0FEH

L2_0:

OUTDX,AL;

B口输出

RCLAL,1;

AL带进位左移一位

CALLDELAY;

调用延时子程序

JMPL2_0

RET

L3:

MOVAL,07FH;

进位置1

L3_0:

RCRAL,1;

JMPL3_0

DELAY:

;

延时子程序

MOVCX,0030H

DEALY_1:

CALLDELAY_2

LOOPDEALY_1

RET

DELAY_2:

MOVCX,100H

DELAY_3:

LOOPDELAY_3

THEEND:

MOVAL,00H;

无有效按键时输出

MOVDX,IOBPT

OUTDX,AL

JMPMO

CODEENDS

ENDSTART

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

当前位置:首页 > 职业教育 > 其它

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

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