- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计题目 流水灯控制
总体构想级基本设计方案
基本流水灯电路的设计(设计主体)
该项目中我们选用8255A作为控制芯片,因为它是并行接口的典型芯片,通过它的并行输入、输出功能,可以方便的实现对一组发光二极管的点亮与关断控制。
在该项目中我们选择PA口作为八个发光二极管的连接口,并且将PA口的数据,即控制八个发光二极管点亮与关断的一组八位二进制数,赋值到BX中的BH部分,用循环移位语句将这八位二进制数进行移位,延时一段时间后再输出,即可实现基本的流水灯效果。
正反方向的选择功能
把PC0口接在开关上,编程实现对PC0口数据的读取功能,并进行判断,当PC0为高电平时灯向左移动,当PC0为低电平时灯向右移动。
流水效果的选择功能
在该项目中我们定义了两种流水效果:第一种是基本流水效果,即每一次移动时只有一个发光二极管移动;第二种为每一次移动时有两个发光二极管移动。
该功能可以通过对循环移位指令中CL——循环位数的不同定义来实现。首先将PC2与一个开关相连,编程实现对PC2口数据的读取功能,并进行判断,当PC2为高电平时,将CL赋值为2,即实现第二种流水效果;当PC2为低电平时,将CL赋值为1,即实现第一种流水效果。
流水效果编号的显示功能
根据设计要求,选用数码管来显示流水效果编号。在该项目中8255A只有PB口未被定义,因此将PB口与一数码管相连接。在该功能中我们同样根据PC2口高低电平的判断来决定数码管的显示。当PC2为高电平时,将PB口赋值为DAH,使数码管显示为数字‘2’,当PC2为低电平时,将PB口赋值为60H, 使数码管显示为数字‘1’。
速度快慢的选择功能
在该功能中,我们定义了两种速度模式,即快速与慢速。并且通过PC1口的高低电平变化来实现。将BX,CX分别赋值并且自减一,在此我们假设BX减为零的时间为t1,CX减为零的时间为t2,当PC1为高电平时,通过编程将DELAY子程序的延时时间设置为t1,而当PC1为低电平时,将DELAY子程序的延迟时间设置为t1+t2,这样便实现了速度快慢的选择功能。
硬件原理图
程序流程图
主程序:
延时子程序:
程序:
M8255_A EQU 300H
M8255_B EQU 301H
M8255_C EQU 303H
M8255_MODE EQU 304H
CODE SEGMENT
ASSUME CS: CODE
START: MOV DX,M8255_MODE
MOV AL,81H 设置控制字,A,B口令方式输出,C口低四位零方式输入
OUT DX
MOV DX,M8255_C
IN DX
AND AL,04H 读入PC2的数据进行判断
JNZ A1 若PC2不为零,则执行A1
JMP A2
A1: MOV CL,1 对CL进行赋值
XOR BX,BX BX清零
MOV DX,M8255_B
MOV AL,60H
OUT DX,AL 对B口赋值为50H,使数码管显示数字‘1’
MOV DX,M8255_A
MOV AL,7FH
MOV BH,AL
OUT DX,AL 对A口进行赋值,设置流水灯初始状态
B1: ROR BH,CL 右移位
B3: PUSH BX 保护现场
CALL DELAY 调用延时程序
POP BX 恢复现场
MOV DX,M8255_A
MOV AL,BH
OUT DX,AL 送出移位结果
MOV DX,M8255_C
IN AL,DX
AND AL,01H 读取PC0并进行判断
JNZ B2 若不为零,则执行B2
JMP B1
B2: ROL BH,CL 左移位
JMP B3
A2: MOV CL,2 对CL赋值为2
XOR BX,BX
文档评论(0)