基于8255键盘的设计Word文档格式.docx

上传人:b****2 文档编号:15380014 上传时间:2022-10-29 格式:DOCX 页数:10 大小:83.59KB
下载 相关 举报
基于8255键盘的设计Word文档格式.docx_第1页
第1页 / 共10页
基于8255键盘的设计Word文档格式.docx_第2页
第2页 / 共10页
基于8255键盘的设计Word文档格式.docx_第3页
第3页 / 共10页
基于8255键盘的设计Word文档格式.docx_第4页
第4页 / 共10页
基于8255键盘的设计Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

基于8255键盘的设计Word文档格式.docx

《基于8255键盘的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于8255键盘的设计Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

基于8255键盘的设计Word文档格式.docx

《16-32位微型计算机技术及应用》清华大学出版社戴梅萼史嘉权编著

《汇编语言程序设计》南京大学出版社姚君遗编著

《汇编语言程序设计教程》清华大学出版社杨基文编著

《微型计算机原理及接口技术》实验指导书

开题批注

【摘要】:

本设计以8086作为主控芯片,将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。

【关键词】:

8255A键盘扫描

 

一、总体概括3

二、方案的论证与比较4

1、主要电路硬件方案的选择4

2、显示设备的选择4

三、电路设计5

1、电路原理框图5

2、电路原理图5

四、软件设计6

1、程序流程图6

2、程序清单7

五、调试结果7

六、总结与体会7

一、总体概括

具体的系统方框图如下所示:

图1系统方框图

二、方案的论证与比较

1、主要电路硬件方案的选择

我们只想到了一个方案:

用译码器提供端口地址,8255A的PA0~PA3作输出端口,PB0~PB7作输入端口。

2、显示设备的选择

方案一:

采用传统数码管作为显示设备。

传统数码管具有低能耗、低损耗、低压、长寿命、耐老化、防晒、防潮、防火、防高(低)温的特点;

对外界环境要求低,易于维护;

同时其精度比较高,精确可靠,操作简单,程序编写容易,资源占用少。

方案二:

采用液晶显示屏(LCD)显示数字量。

液晶显示器具有功耗低、无辐射危险、平面直角显示以及影像稳定等,可视面积大,画面效果好,也可以显示汉字,分辨率高,抗干扰能力强,显示内容多等特点。

综合考虑我们选择方案二。

三、电路设计

1、电路原理框图

图2电路原理框图

2、电路原理图

图3电路原理框图

四、软件设计

1、程序流程图

图4主程序流程图

图5显示子程序流程图

2、程序清单

见附录1

五、调试结果

经过多次在星研上调试,最终我们得到了正确的显示结果。

六、总结与体会

经过我们三人的分工协作和不懈努力,终于完成了本设计题目中的基本要求。

本作品以8086作为主控芯片,将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。

在调试过程中,我们对星研的编程环境有了更深地了解。

在这次课程设计中,我们充分发挥团队协作精神,积极工作并最终完成了作品。

通关过这次实践使我们加深了对课本知识的理解,并从中受益匪浅。

参考文献

《微型计算机原理及接口技术》中国科技大学出版社吴秀清周荷琴编著

《16-32位微型计算机技术及应用》清华大学出版社戴梅萼史嘉权编著

《汇编语言程序设计》南京大学出版社姚君遗编著

《汇编语言程序设计教程》清华大学出版社杨记文编著

附录1:

;

端口地址

PORT_AEQU00F0H;

8255A口地址

PORT_BEQU00F1H;

8255B口地址

PORT_CTLEQU00F2H;

8255控制口地址

数据段

DATASEGMENT

DB100DUP(0)

DATAENDS

堆栈段

STACK1SEGMENTSTACK'

STACK'

DW50DUP(0)

TOP_STACKLABELWORD

STACK1ENDS

代码段

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK1

START:

MOVAX,STACK1

MOVSS,AX

LEASP,TOP_STACK

MOVAX,DATA

MOVDS,AX

初始化8255A,方式0,A口作输出,B口和C口为输入

MOVDX,PORT_CTL;

指向控制口

MOVAL,10000010B;

控制字

OUTDX,AL;

写入控制字

向所有行送0

MOVDX,PORT_A;

A口

MOVAL,00H

向A口各位输出0

读列,查看所有键是否均松开

MOVDX,PORT_B

WAIT_OPEN:

INAL,DX;

键盘状态读入B口

ANDAL,0FFH;

查8位列值

CMPAL,0FFH;

是否都为1(各键均松开)

JNEWAIT_OPEN

各键均已松开,再查列是否有0,即是否有键压下

WAIT_PRES:

读B口

是否有键压下

JEWAIT_PRES;

无,等待

有键压下,延时20ms,消抖动

MOVCX,16EAH;

延时20ms

DELAY:

LOOPDELAY

再查列,看键是否仍被压着

INAL,DX

ANDAL,0FFH

CMPAL,0FFH

已松开,转出等待键

判断哪一个键按下

START1:

MOVBL,4;

行数送BL

MOVBH,8;

列数送BH

MOVAL,0FEH;

D0=0,准备扫描0行

MOVCL,0FFH;

键盘屏蔽码送CL

MOVCH,0FFH;

CH中存放起始键号

LOP1:

OUT80H,AL;

A口输出,扫描一行

ROLAL,1;

修改扫描码,准备扫描下一行

MOVAH,AL;

暂时保存

INAL,81H;

读B口,以便确定所按键的列值

ANDAL,CL

CMPAL,CL

JNZLOP2;

有列线为0,转LOP2,找列值

ADDCH,BH;

无键按下,修改键号,以方便下一行找键号

MOVAL,AH;

恢复扫描码

DECBL;

行数减1

JNZLOP1;

行未扫描完转LOP1

JMPSTART;

重新扫描

LOP2:

INCCH;

键号加1

RORAL,1;

右移一位

JCLOP2;

无键按下,查下一列线

MOVAL,CH;

已找到,键号送AL,AL作入口参数

CALLNEARPTRSHOW;

调用显示子程序

SHOWPROCNEAR

PUSHAX

CREQU0DH

LFEQU0AH

MESDB'

你按下的键号为:

AL'

CR,LF,'

$'

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMES;

DS:

DX指向字符串MES

MOVAH,9;

9号功能调用

INT21H

SHOWENDP

CODEENDS

ENDSTART1

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

当前位置:首页 > 医药卫生 > 基础医学

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

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