代码输入器课程设计说明书

上传人:re****.1 文档编号:564570257 上传时间:2022-10-28 格式:DOC 页数:20 大小:271KB
返回 下载 相关 举报
代码输入器课程设计说明书_第1页
第1页 / 共20页
代码输入器课程设计说明书_第2页
第2页 / 共20页
代码输入器课程设计说明书_第3页
第3页 / 共20页
代码输入器课程设计说明书_第4页
第4页 / 共20页
代码输入器课程设计说明书_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《代码输入器课程设计说明书》由会员分享,可在线阅读,更多相关《代码输入器课程设计说明书(20页珍藏版)》请在金锄头文库上搜索。

1、微机原理与接口技术课程设计说明书代码输入器设计起止日期: 2021年12月22日 至 2021年12月28日学生姓名班级学号成绩指导教师(签字)计算机与通信学院2021年 12月28 日课题名称微机原理与接口技术课程设计人 数5组 长同组人员课题的主要内容和要求一、 设计目的 通过该设计,掌握8255并行接口芯片的使用,普通键盘的设计和数码管的使用,并掌握相应的程序设计和电路设计的技能。是对8255并行接口芯片章节理论学习的总结和补充,为后续的硬件课程的学习打下根底。二、 设计内容 利用开发板KB-C中的18个按钮中的前16个作为代码键,即代表:0、1、2、9、A、B、C、D、E、F,最后2个

2、键,1个为删除键S24,一个为回车键S25,实现以下功能:每按1个键,那么在屏幕上显示相应该键代表的字符,按S25键结束输入,每个代码为4个16进制代码组成。 再利用KB-C上的6个数码管中最后面的4个,在输入代码时不在屏幕上显示,而在数码管上显示,即输第1个时,在最后1位显示,输第2个时,前的那个在倒数第2个显示,而刚刚输入的那个在最后1位显示,如此等等,4个代码输完后,按S25结束输入,并在屏幕上显示出来。具体任务 分析课题,汇总,调试,修正程序错误等时间安排与完成情况一、 时间安排:1、 12月22日:分组、任务分配、课题理解。2、 6月23日-6月24日:功能分析、程序设计。3、 6月

3、25日-6月27日:实验验证和测试。4、 6月28日:总结、书写实验报告。二、 完成情况: 在大家的共同努力下我们在安排的时间里顺利完成了相应的任务,同时我们也在课程设计过程中学到了很多。一、根本原理1、按钮的原理: 在KB-C板上,端口A负责发按键扫描信息,端口C的低3位,即PC0、PC1、PC2,负责接收扫描结果,如以下图所示,先定时通过端口APA0,PA1,PA2,PA3,PA4,PA5扫描各按钮,即先PA0=0,其它为1发信号,然后PA1=0,其它为1,端口发出1个信号后,即读端口C,如果PC0,PC1,PC2全为高电平,说明无按钮按下,如果PC0为低电平PC1,PC2肯定为高电平,且

4、此时,端口扫描的情况是:PA0=1,PA1=0,PA2=1,那么说明SW1被按下。2、数码管显示原理数码管由8255端口B和端口C联合控制,端口负责控制某个数码管中的那些段码的显示和小数点的显示PB7。端口C的PC4,PC5,PC6发送的信号通过译码后,负责选择6个数码管中的1个显示,即某时刻只有1个数码显示,如果要让几个同时显示,那么采用来回扫描显示的方法,且当某个数码管显示时,必须要有一定的延时,约在100ms左右,太短显示不明显发光不够,太长会产生闪烁。数码管的控制如以下图所示:键盘对应的ASCII码表键盘012345678910ASCII30H31H32H33H34H35H36H37H

5、38H39H41H键盘1112131415ASCII42H43H44H45H46H键盘对应发光二极管表键盘012345678发光二极管3FH06H5BH4FH66H6DH7DH07H7FH键盘9101112131415发光二极管67H77H7CH39H5EH79H71H二、 设计步骤1、程序流程图 1、程序一流程图: 8255A的初始化开始始判断是否有键按下 回车结束在屏幕上显示YYNN 流程图说明:8255初始化后,程序一直扫描键盘,如果没有按键按下那么直接继续扫描键盘,如果有按键按下,那么判断按键是否是回车键,如果是回车那么结束程序,否那么显示出按键所对应的十六进制字符到电脑屏幕上。 2、

6、程序二流程图 回车在四个发光二极管上显示相应的按键值按第一个在最右端显示,按第二个第一个左移,第二个在最右端显示 在屏幕上显示发光二极管上的信息开始8255的初始化扫描键盘结束YN 程序二流程图说明:8255初始化后程序开始扫描键盘,如果没有按键按下那么继续扫描键盘,如果有按键按下那么判断是不是回车键,如果是回车键那么把输入的最后四个字符输出到电脑屏幕上显示,如果不是那么把数码管和屏幕显示对应的第三位左移到第四位,第二位左移到第三位,第一位左移到第二位,再把新输入进来的存到第一位。2.8255的初始化 1、程序一: MOV AL,81H MOV DX,CON_8255;CON_8255即303

7、H OUT DX,AL2、程序2: mov al,10000001b mov dx,303h out dx,al程序一和程序二初始化相同,但是程序一只需要端口A和端口C低三位输入。而程序二需要端口A和端口C低三位输入和端口B和端口C的第五六七位输出才可以。3.程序设计 根据课程设计要求和上面整个程序的流程图以及我们对程序的分析有以下程序段:1) 、数据段 程序1: DATA SEGMENT PC_0 DB 0 1 2 3 4 5 ;在屏幕上显示的数据 PC_1 DB 6 7 8 9 A B PC_2 DB C D E F DATA ENDS 程序2: data segment pc_0 db

8、3fh,06h,5bh,4fh,66h,6dh;发光二极管 pc_1 db 7dh,07h,7fh,67h,77h,7ch pc_2 db 39h,5eh,79h,71h pcA_0 db 30h,31h,32h,33h,34h,35h;DOS字符ASCII值 pcA_1 db 36h,37h,38h,39h,41h,42h pcA_2 db 43h,44h,45h,46h temp db 00h,00h,00h,00h;四个灯的变量 temp1 db 30h,30h,30h,30h;DOS字符的值 data ends2) 、键盘扫描 两个程序的键盘扫描根本上是一样的: WAIT1: MOV

9、AL,0FEH MOV BH,0D WAIT2: MOV DX,300H OUT DX,AL MOV BL,AL MOV DX,302H IN AL,DX TEST AL,00000001B ;测试D0位是否为1 JZ PC0 TEST AL,00000010B ;测试D1位是否为1 JZ PC1 TEST AL,00000100B ;测试D2位是否为1 JZ PC2 MOV AL,BL ROL AL,1 INC BH INC BH CMP BH,12 JZ WAIT1 JMP WAIT2 PC0: MOV SI,OFFSET PC_0 ;响应第一排键盘的某个按钮 CALL KEYB_HAND

10、LING CALL DELAY JMP WAIT1 PC1: MOV SI,OFFSET PC_1 ;响应第二排键盘的某个按钮 CALL KEYB_HANDLING CALL DELAY JMP WAIT1 PC2: MOV SI,OFFSET PC_2 ;响应第三排键盘的某个按钮 CMP BH,8 JL NEXT1 JNZ NEXT CALL BACKSPACE JMP WR3) 、屏幕显示 程序1: KEYB_HANDLING PROC ;键盘响应 MOV BL,BH MOV BH,00H MOV AL,SI+BX mov dl,al mov ah,02h int 21h CALL DEL

11、AY RETKEYB_HANDLING ENDP 程序2:input proc ;输入到显示在屏幕上的值 call shift_e mov al,si+bx mov si,offset temp1 mov si,al retinput endp4) 、数码管显示 show proc ;显示在发光二极管 push ax push bx mov si,offset temp mov cx,4 mov bx,0 mov ah,00hbbb:mov al,ah mov dx,302h out dx,al mov al,si+bx inc bx mov dx,301h out dx,al add ah,10h call delay1loop bbb pop bx pop ax ret show endp5) 、数码管数字和电脑屏幕字符的移动 数码管数字移动:shift_l proc ;二极管的灯左移动 push si push ax push cx push bx mov si,offset temp mov cx,3 mov bx,2 mov al,2bsss:mov bl,al mov

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号