流水灯显示实验.docVIP

  • 3
  • 0
  • 约3.5千字
  • 约 7页
  • 2023-10-14 发布于湖北
  • 举报
PAGE PAGE 2 成绩: 课程设计报告 学院: 计算机与电子信息学院 题目: 8255并行接口应用 专业:电子信息科学与技术 班级:电子07-2 姓名: XXXX 学号: XXX 指导老师: XXXX 实验时间:2010年3月8日-2010年3月11日 微机原理及应用课程设计实验 一. 设计题目分析 1.设计题目 编写程序,使用8255的A口和B口均为输出,实现16位流水灯显示效果。 2.功能扩展 (1)、将流水灯设计成可以正着流水也可以选择倒着流水,两边向中间流,中间向两边流。 (2)、通过开关可以对流水灯闪烁的速度进行控制,高电平时为快,低电平时为慢速。 二. 总体方案设计分析 在本实验中要求我们用8255的A口和B口做为输出,接16个发光二极管,从而实现16位流水灯的显示效果,故基本的接线可以如下面图A所示。在C口的低两位接2个开关,实现2个扩展功能的控制。 1.基本流水灯显示电路 A和B两个端口不能同时赋值,从而在实验中我们可以用BX进行需要赋值的数据的存储,因为BX可以分从BH.BL两部分进行独立的操作,在本次实验中我们用BH对A口进行赋值,用BL对B口进行赋值,通过延时一段时间再对BH,BL进行移位和输出,实现了流水灯的效果。 2.正反方向选择 把PC.0口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.0为高电平的时候则灯进行左移,低电平的时候则进行右移。同时B口与A口相反。 3.快慢速度控制 把PC.1口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.1为高电平的时候则延时的时间缩短,使得流水灯的流水速度加快。低电平的时候则进行延时的时间变长,使得流水灯的流水速度加快。 三. 硬件原理图设计 1、该模块的WR、RD分别连到PC总线接口模块的IOWR、IORD。 2、该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到PC总线接口模块的数据(D0~D7)、地址线(A0~A7)。 3、8255模块选通线CS连到PC总线接口模块的IOY3。 4、8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16。5、8255的PC0、PC1分别连接在开关K0、K1 四. 软件流程框图及程序清单(汇编语言源程序必须加注释说明) 源程序编程: MY8255_A EQU 09860H MY8255_B EQU 09861H MY8255_C EQU 09862H MY8255_MODE EQU 09863H DATA SEGMENT NUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE START: MOV DX,MY8255_MODE MOV AL ;PC4-pc7为输出,pc0-pc3为输入 ;设置A口、B口方式0输出,C口低四位方式0输入 OUT DX MOV CX,7FFFH MOV BL,0FEH MOV BH,7FH JMP WOR A1: ROL BL,1 ROR BH,1 ;对BH、BL作出相应的移位 JMP A0 B1: ROR BL,1 ROL BH,1 JMP A0 C1: CALL PLAY1 ROL CX,1 JMP A10 WOR: MOV DX,MY8255_C IN AL,DX ;将C口的数据输入 CMP AL,02H ;查看PC0口是否有数据输入,改变流水灯的方向 JE A1 CMP AL,03H JE A1 ;结果为0,则跳转 CMP AL,04H JE B1 CMP AL,05H JE B1 CMP AL,06H JE C1 CMP AL,07H JE C1 CALL PLAY1 ROR CX,1 JMP A10 A0: CALL PLAY A10: J

文档评论(0)

1亿VIP精品文档

相关文档