天津商业大学通信专业2010级
微机原理及接口技术
课程设计说明书
设计题目: 动态方向箭头控制及显示接口设计
学号: 20104253
姓名: 范吟雪
完成时间:
总评成绩:
指导教师签章:
设计题目:
设计任务要求:
利用试验箱上的小键盘控制8×8点阵LED显示箭头向上或向下移动。画出8255连接4×4小键盘(参考附录1)和8×8点阵LED显示接口电路图。画出8255的地址译码电路,8255的端口地址为A口0E860H、B口0E861、C口0E862H、命令寄存器0E863H
二、电路设计
8255A由数据端口,组控制电路,数据总线缓冲器,读写逻辑部件几部分组成。三个8位的I/O端口A,B,C,三个端口都可以作为数据I/O口使用,其中,A口和B口都可以既作为输出端口又作为输入端口,只有C口可以作为控制端口实用,并实现8位中的任何一位的置位和复位功能。有时,A,B口作为数据I/O,而C口作为控制或状态端口,分为上、下两部分,配合A,B口工作。
(1)静态箭头显示原理我们选择将A,B口都作为输出,分别控制8行8列的发光二极管的行和列的电平,经试验得知,PA口口控制的列是低电平有效,即给列低电平0时,该列的发光二极管亮1则灭,而PB口控制的行为高电平有效,给行1时,该行所在的发光二极管亮0灭。当某二极管所对应的行和列的电平均有效时,该二极管亮。依据上部分内容,可以写出上下两种箭头的静态初始化控制字。C口的高四位做输出,低四位做输入,分别控制4行4列的键盘。同样可以写出初始化程序来选择第一行的2个键有效,以此控制两种箭头的切换。然后设置8255A的工作方式控制字,各口工作方式均为0,确定为1000001B,写入其控制端口。完善程序后,再加入时间延时程序,每个初始化都调用该程序,选择合适的时间,并在每次子程序(如向上的箭头)结尾加上循环跳转到程序开头,不断地重复每一个初始化过程,这样,不停地运行,看起来就是连接起来的似乎是不变的静态的两种箭头
(2)动态箭头显示原理接下来考虑实现动态两种箭头显示。本环节主要是改变程序,应用程序控制来实现动态。在子程序中加入循环,使每一行或列的同样的初始字在不同的循环次数时显示在不同的行或列,并保证所有的同步循环,以保持箭头的形状,再一次加入延时程序,使完成每次移动的时间适中,不要太快也不要太慢。这样就实现了各行各列同步移动的现象,也就是动态显示的过程。
(3)键控功能实现原理最后要实现键控功能。同样是修改汇编程序,首先写入初始字,是第一行的两个键有效,不断地扫描两个键的电平,并从端口中读入信息,由于每次仅有一个键按下去,因此读入的两位码中只有一个是高电平,如是1000的时候,我们将其分别于1,2,4,8进行比较,当相等时则转到相应的箭头程序,判断后等于8,可确定是3键按下,因此转去执行向上的箭头程序,直到下一次的比较成立,则转去相应的程序,以此实现了键控的功能。
三、设计调试总结(包括对设计的目的和意义的认识、本人完成情况、设计中的主要收获和不足)
通过本次微机原理与接口技术的课程设计,进行程序设计编程和技能的基本训练,巩固在课堂上学到的有关软件程序设计的基本知识和方法,通过动手能力的培养,进一步熟练汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。但是,在课程设计过程中也遇到了很多问题,充分了解了自己对课程掌握的不足,不过后来也通过自己的进一步学习和老师同学的帮助解决了问题,最后完成了动态方向箭头控制及显示接口设计,掌握了试验箱上小键盘控制点矩阵的原理,也进一步掌握了8255的工作原理。
程序清单
(注:程序清单使用5号字体,单倍行距排版)
STACK1 SEGMENT STACK
DB 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
DIS0 DB 'PRESS ANY OF THE KEYS TO QUIT!$' ;提示信息
I8255TYPE DW 0003H ;8255控制字的地址
I8255ADDA DW 0000H ;8255的A口地址
I8255ADDB DW 0001H ;8255的B口地址
I8255ADDC DW 0002H ; 8255的C口地址
KEY_SV DB 0,0,1,0,2,0,0,0,3
KEY_V_BUF DB ?
SCAN_V DB ?
KEY_HV DB ?
DIS1 DB 'PCI ADDRESS 0 $' ;
DIS2 DB 'PCI ADDRESS 1 $'
DIS3 DB 'PCI MEMORY ADDRESS $'
DIS4 DB 'PCI INTERR
关于动态方向箭头控制及显示接口设计微机原理课程设计... 来自淘豆网m.daumloan.com转载请标明出处.