微机原理课程设计报告_5.docVIP

  • 1
  • 0
  • 约3.02千字
  • 约 6页
  • 2023-10-11 发布于未知
  • 举报
设计题目 流水灯控制 总体构想级基本设计方案 基本流水灯电路的设计(设计主体) 该项目中我们选用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)

1亿VIP精品文档

相关文档