小键盘按键识别(微机原理课程设计)
认识键盘——键盘的使用微课教学设计

认识键盘——键盘的使用微课教学设计课前准备:一、教学目标1、知识与能力目标:了解键盘的分区,掌握主键盘区字母键、数字键、符号键的名称和分布规律;学会使用几个常用的控制键,能在“写字板”中输入字符;2、能力目标:通过听取讲解和互相协作完成任务驱动。
3、情感态度与价值观目标:通过认识键盘,感受成功,让学生体验到学习计算机的快乐,从而激发学生学习计算机的浓厚兴趣。
二、教学内容分析:1、学生通过学习《认识键盘》这节内容,应该达到正确的输入字母及数字,并且会使用控制键。
本节内容知识体系为:认识键盘的分区,字母、数字和符号的输入,控制键的使用。
本节内容在本册教材中具有非常重要的基础性作用,如果对键盘的掌握不到位,就会为在后面的学习造成障碍,如不能正确的输入文字,同时本节内容也是建立在学生对计算机有了一定了解基础上的。
2、本节内容的功能是为以后的学习做铺垫,因为文字的输入是学生应该掌握的最基本的技能。
三、学情分析:1.学生对计算机已有了一个粗略的认识。
2.学生已能够使用鼠标,能对窗口进行操作。
3.学生认知障碍点:控制键的使用。
四、教学重、难点:1、教学重点:认识使用主键区的几个控制键──Enter、BackSpace、Shift和Capslock。
2、教学难点:双字符键,Shift和Backspace五、教学手段:多媒体课中:教学过程:一、谈话激趣,揭示课题同学们已经能够熟练地使用鼠标来控制计算机了,实际上,除了鼠标之外,键盘也是我们使用计算机的一个重要的输入设备。
我们可以通过键盘将命令、数字和文字等输入到计算机中,因此,熟练地操作键盘,是使用计算机最基本的技能之一。
我们今天就来学习第6课:认识键盘(板书)二、演示观察,认识四区(出示键盘分区图)师:同学们,刚才我们了解了键盘是我们最常用的输入设备,那么,大家观察一下老师出示的这幅键盘图,你能看出它由几部分组成的吗?生:四个部分。
师:同学们很聪明,现在老师给出了它们的名称,你能把它们对号入座吗?师指出相应键盘分区区域,让生分别在出示的主键盘区、光标控制区、小键盘区、功能键区名称中对应的作选择。
小学信息技术《认识键盘》微课

05
03
编辑键区
包含方向键、Home、End、Page Up、Page Down等编辑键,用于文 本编辑。
04
小键盘区
包含数字键和运算符号键,用于快速 输入数字。
主键盘区功能介绍
字母键
输入英文字母,配合Shift键可输 入大写字母。
数字键
输入数字,配合Shift键可输入符 号。
符号键
输入常用符号,如逗号、句号、 问号等。
总结回顾与拓展延伸
REPORTING
总结本次微课重点内容
键盘的基本构造
手指的分工与击键方法
介绍了键盘的分区,包括主键盘区、功能键 区、编辑键区、小键盘区等,以及各区域的 功能和常用键。
讲解了正确的打字姿势和手指分工,以及击 键的方法和技巧,包括力度、节奏和准确性 等。
输入字母和数字
常用功能键的使用
课程总结与延伸
回顾本课重点内容,引导学生 进行自我评价,并提供相关学 习资源与拓展建议。
PART 02
键盘基础知识
REPORTING
键盘的组成部分
主键盘区
包含字母键、数字键、符号键等,用 于输入字符。
02
功能键区
包含F1-F12等功能键,用于实现特定 功能。
01
状态指示灯区
显示Caps Lock、Num Lock等状态。
自定义快捷键
引导学生探索如何自定义快捷键, 将常用的操作或命令设置为快捷 键,进一步提高操作效率。
特殊符号的输入
演示如何输入特殊符号,如标点 符号、数学符号等,满足学生在 不同场合下的输入需求。
键盘维护与保养
介绍键盘的维护与保养方法,如 定期清洁键盘、避免液体溅入等,
延长键盘的使用寿命。
钢琴小键盘课程设计

钢琴小键盘课程设计一、课程目标知识目标:1. 学生能掌握钢琴小键盘的基本结构和音阶排列,理解五线谱的基本知识。
2. 学生能学会至少两种钢琴小键盘的指法,并能独立演奏简单的儿歌。
3. 学生能了解钢琴音乐的基本历史,知道几位著名钢琴家的代表作品。
技能目标:1. 学生能熟练运用钢琴小键盘演奏简单曲目,培养良好的手型和坐姿。
2. 学生通过钢琴演奏,提高音乐表现力和节奏感,培养音乐欣赏能力。
3. 学生能运用所学的音乐知识,创作简单的钢琴小曲。
情感态度价值观目标:1. 学生培养对音乐的热爱,激发学习钢琴的兴趣,增强自信心和自我表达能力。
2. 学生通过合作演奏,培养团队协作精神,尊重他人,提高人际沟通能力。
3. 学生通过学习钢琴小键盘,体验音乐的魅力,陶冶情操,提升审美能力。
课程性质:本课程以实践操作为主,结合理论知识,培养学生的音乐素养和钢琴演奏技能。
学生特点:三年级学生具有一定的音乐基础和认知能力,好奇心强,善于模仿,对钢琴演奏有浓厚兴趣。
教学要求:教师应关注学生的个体差异,因材施教,以鼓励为主,注重培养学生的动手能力和音乐欣赏能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 钢琴小键盘基础知识:- 钢琴小键盘的结构与功能- 五线谱基础知识- 音名、音高、音长的认识- 音阶与调性2. 钢琴演奏技巧:- 基本坐姿与手型- 两种指法的练习与应用- 简单儿歌的演奏- 节奏与速度的控制3. 音乐欣赏与创作:- 著名钢琴家的介绍与代表作品欣赏- 钢琴音乐发展简史- 简单钢琴曲的创作尝试4. 教学内容的安排与进度:- 第一周:钢琴小键盘基础知识学习,五线谱的认识- 第二周:音阶与调性学习,基本坐姿与手型的训练- 第三周:指法练习,简单儿歌的演奏- 第四周:节奏与速度的控制,音乐欣赏与创作尝试教材关联章节:1. 钢琴小键盘基础知识:第三章《钢琴基础知识》2. 钢琴演奏技巧:第四章《钢琴演奏基本技巧》3. 音乐欣赏与创作:第五章《音乐欣赏》与第六章《音乐创作》教学内容的选择和组织遵循科学性和系统性原则,确保学生在学习过程中能够逐步掌握钢琴演奏技能,提高音乐素养。
按键识别和数码管显示微机系统实验

1.设计内容用系统小键盘输入控制数码管的位移显示。
2.设计目的掌握:“行扫描”按键识别的原理,掌握行扫描按键识别的编程设计技术。
3:设计任务与要求用行扫描技术识别小键盘,将小键盘入得任意长度的有0~9组成的数字串,采用左移位显示的方法显示在数码管上(仿照移动电话显示屏的显示效果),当小键盘按下F键时,程序结束。
4:设计思想1:程序中应设置七段码表和显示缓冲区,并调用显示子程序进行显示。
该子程序访问显示缓冲区并进行数码显示。
例如,若显示“0123”,则显缓内应置入数据0、1、2、3;当显缓中数据改为10、11、12、13时,可显示数码“AbCd”。
由于实验中的数码管为共阴结构,且“段”和“位”分别采用74LS240反相驱动和7407同相驱动,故二者均低电平有效(点亮)。
程序应采用共阳形式的七段码表(即“0”的七段码为0C0H)。
2: 用8255的C口作4*4键盘接口,采用行列反转法所示的硬件电路其行、列结构完全对称)识别按键,将按键键值(0~F)送串行口、以字符形式将它显示在PC机的屏幕上。
注意,按键键值应转成ASCII码后再用INT 14H的AH=1子功能上传到PC机进行显示。
5:主要元器件介绍MUT—Ⅲ型实验箱,8086CPU模块,8255、LED数码管1、8255的内部结构数据总线缓冲器读/写控制部件A组控制部件B组控制部件A组端口A(8)A组端口C上半部(4)B组端口C上半部(4)B组端口B(8)双向数据总线D7~D0RDWRA1A0 RESETCS 8位内部数据总线I/OPA7~PA0I/OPC7~PC4I/OPC3~PC0I/OPB7~PB02、LED数码管共阴极的情况下定义字形码:FECDBA9876543210 6:硬件连线1、实验接线CS0 CS8255(地址为04A0H);PA0~PA7(输入) RL10~RL17(列选择线);PB0~PB7(输出) 发光二极管LED-A~LED-DP ;PC0~PC2(输出) KA10~KA12(行选择线)PC3(输出) LED14*4键盘7:程序流程图8255的电路连接8:程序源代码MY8255_A EQU 0600HMY8255_B EQU 0602HMY8255_C EQU 0604HMY8255_CON EQU 0606HSSTACK SEGMENT STACKDW 16 DUP(?)SSTACK ENDSDATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,3000HMOV AL,00HMOV [SI],AL ;清显示缓冲MOV [SI+1],ALMOV [SI+2],ALMOV [SI+3],ALMOV [SI+4],ALMOV [SI+5],ALMOV DI,3005HMOV DX,MY8255_CON ;写8255控制字MOV AL,81HOUT DX,ALBEGIN: CALL DIS ;调用显示子程序CALL CLEAR ;清屏CALL CCSCAN ;扫描JNZ INK1JMP BEGININK1: CALL DISCALL DALLYCALL DALLYCALL CLEARCALL CCSCANJNZ INK2 ;有键按下,转到INK2JMP BEGININK2: MOV CH,0FEHMOV CL,00HCOLUM: MOV AL,CHMOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_CIN AL,DXL1: TEST AL,01H ;is L1? JNZ L2MOV AL,00H ;L1JMP KCODEL2: TEST AL,02H ;is L2? JNZ L3MOV AL,04H ;L2JMP KCODEL3: TEST AL,04H ;is L3? JNZ L4MOV AL,08H ;L3JMP KCODEL4: TEST AL,08H ;is L4? JNZ NEXTMOV AL,0CH ;L4 KCODE: ADD AL,CLCALL PUTBUFPUSH AXKON: CALL DISCALL CLEARCALL CCSCANJNZ KONPOP AXNEXT: INC CLMOV AL,CHTEST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUMKERR: JMP BEGINCCSCAN: MOV AL,00HMOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_CIN AL,DXNOT ALAND AL,0FHRETCLEAR: MOV DX,MY8255_BMOV AL,00HOUT DX,ALRETDIS: PUSH AXMOV SI,3000HMOV DL,0DFHMOV AL,DLAGAIN: PUSH DXMOV DX,MY8255_AOUT DX,ALMOV AL,[SI]MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AXMOV AL,[BX]MOV DX,MY8255_BOUT DX,ALCALL DALLYINC SIPOP DXMOV AL,DLTEST AL,01HJZ OUT1ROR AL,1MOV DL,ALJMP AGAINOUT1: POP AXRETDALLY: PUSH CXMOV CX,0006HT1: MOV AX,009FHT2: DEC AXJNZ T2LOOP T1POP CXRETPUTBUF: MOV SI,DIMOV [SI],ALDEC DICMP DI,2FFFHJNZ GOBACKMOV DI,3005H GOBACK: RETCODE ENDSEND START。
二年级上信息技术教案-认识小键盘_北京版

二年级上信息技术教案-认识小键盘_北京版(北京版)二年级信息技术上册教案认识小键盘一、教材分析本课是北京出版社出版的信息技术基础小学二年级(上册)教材中的第二课《认识小键盘》。
本节课的主要内容是了解并掌握小键盘的主要功能和它的基本指法。
小键盘的功能之一就是它可以输入数字,具有强大的计算功能,另外它可以取代鼠标来操作电脑里的计算器,再有除了计算功能之外,它和编辑键区有异曲同工之处就是它也具有较强的编辑功能。
在确定了主要教学内容之后,我们就可以确定这节课的主要教学目标及重点、难点。
本课的教学目标是:(1)了解小键盘分区。
(2)掌握小键盘区数字键、运算符号键、英文符号键的名称和分布规律。
(3)掌握NumLock数字切换键的主要功能及使用方法。
(4)掌握小键盘的基本指法。
本课的重点、难点是:(1)重点:如何使用小键盘,熟练运用NumLock数字切换键实现小键盘的两个主要功能。
(2)难点:数字双字符键的使用及小键盘指法。
二、学情分析本课的教学对象是小学二年级的学生,从年龄特点上看,学生更乐于接受的是相对直观生动的教学方式,所以在教法上就要相应的灵活机动,找学生感兴趣的内容去直观的引入教学。
另外,在讲这节课之前,学生已经学过了《主键盘》和《学用计算器》这两课,在一定程度上已经掌握了主键盘的基本指法和计算器的基本共36台计算机,全部连网,多媒体演示课件五、设计思路<创设情景,导入新课><巧设问题,理清思路><实践演示,共同研究 ><尝试学习,完成任务><竞赛激励,学中有乐><教学总结,完成建构>六、教学过程<创设情景,导入新课>导入语同学们,这是一张键盘分区图(课件演示),在键盘这个大家庭里,我们已经学过了键盘中最常用也是最重要的一部分,那就是主键盘区,在这节课,我们来认识键盘里的一个新朋友,同学们看:(演示课件)在银行的窗口、超市、商场的收银台,我们会经常看到在那里工作的叔叔阿姨用键盘向电脑里输入数据来进行收款,那么你们知道他们用的是键盘里的哪些键子吗?这些键子主要位于我们键盘的哪个区呢?通过以上情境的创设来导入新课,同时也引发了学生对本课学习的积极性。
《小键盘实训》课程标准

《小键盘实训》课程标准一、课程概述1.课程基本信息课程代码:43102课程学分:2课程学时:34学时(其中,理论课0学时,实践课34学时)开设学期数:1适用专业:会计2.课程性质《小键盘实训》是技工院校财会专业操作实践性、岗位需求性极强的课程,是财会类专业学生必修的综合实践类课程。
借助爱丁数码平板,可以强化学生的文字、数字输入技能、全面提高学生的综合素质。
小键盘实训融理论与实践于一体、可以使学生在参与、体验中完成理论知识到实践技能的转化。
3.设计思路《小键盘实训》课程所授内容:数字键录入,传票录入、传票翻打,最终以传票翻打为主要授课及考核内容。
结合省市级技能大赛文件要求,要求学生必须做到盲打,日常加强训练数字键盘录入、拼音键盘录入,从而达到综合文字录入优秀水平,最终提高岗位适应能力。
二、课程目标1.总体目标数字录入技能考核标准一览表传票翻打等级鉴定标准一览表找页准度和速度评价标准表翻页速度评价标准表2.具体目标(1)知识了解小键盘录入对岗位工作的重要性,让学生在游戏中找到传票算测试的乐趣,锻炼学生的抗干扰能力,同时提高学生对数据测试的适应性。
(2)能力掌握小键盘录入技巧,在掌握小键盘功能基础上,对接技能考证。
(3)素质正确合理使用平板、小键盘,掌握小键盘数字输入技巧,为今后比赛、工作打下坚实的基础。
三、课程内容和要求课程教学内容和要求安排表四、教学实施建议1.教材选用(或教材参考书选用)选用教材:《小键盘指法训练》 上海交通大学出版社张萍萍主编 2.教学建议教学资料需要教师自己准备。
本课程教案采用与兄弟院校合作编写的教材, 此教案是随着比赛的更新而不断补充完善,同时其也成为重要的教学资源。
3.教学评价 (1)评价办法采取过程评价和结果评价相结合的原则。
总体评价=过程评价占60%+结果评价占40%(平时30%、期中30%、期末40%)。
课程综合评价表 (2)过程评价采取学生自评和互评相结合的原则,具体评价内容、评价形式见下表: 学生学习成绩评价与考核表(3)结果评价本课程最终考核成绩将按照平时成绩30%,期中成绩30%和期末成绩40%折合计算。
小键盘按键识别

小键盘按键识别(微机原理课程设计)(共13页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--微机原理与接口技术课程设计报告专业:班级:姓名:学号:小键盘按键识别一.课题任务与要求实验箱上有一个24键小键盘,出厂时按键接点已经按图所示连接。
小键盘有8根横向引出线。
实验前将8根横向引出线与PA0~PA7相连,3根纵向引出线与PB0~PB2相连,再从“I/O口地址译码器”选择一个译码器输出连接到8255的片选端,做好上述连接之后,就构成了以8255为核心的键盘输入电路要求:在实际的自动控制系统中,键盘输入电路的作用是输入数据(0~9,A~F)或者输入控制信号(G,M,P,R,W,X,Y,S)。
实现上述功能的核心程序是“按键识别”。
本实验要求设计按键识别程序,当按下小键盘上某一个键的时候,主机屏幕显示闭合键的键名,按下小键盘“R”键之后停止演示。
二.完成任务的方法或方案简介本程序显示数字0到9,刚刚开始提出两中解决方案一是用跳转法直接显示数值,二是用查找法间接显示数值,本程序是用第一种方案,虽然程序多了些,但直观容易理解,故采纳第一种方案。
DISPLAY函数用来将BUFFER中的键值显示在数码管上。
设定A口方式0输出,B口方式0输入。
GETINPUT函数通过行值和列值查出输入的键值,并将它保存在AL中,如果输入是R,则AL赋值为FFH;如果输入非法字符,则AL赋值为0AH。
设定如果是R则退出程序.CHANGE函数用来改变BUFFER中保存的键值,将BUFFER中的键值移位,最后一位加入AL中的新键值。
CLOSEALL此函数用在退出程序时将数码管关闭.以上是主题函数,在设计过程中还碰到了一些细节问题,例数码管的显示才用延迟20MS的办法解决,具体方案在DISPLAY函数中。
三.实现系统1、程序框图:2、实验电路图:3、8255方式选择控制字 1 D6D5D4D3D2D1D04、源程序: TITLE LITTLEKEYBOARDSSEG SEGMENT PARA STACK 'STACK'方式选择控制字标志 A 组方式: 00=方式0 01=方式1 A 口 IO1=输入C 上半口IO : 1=输入B 组方式: 0=方式0B 口IO : 1=输C 下半口 IO : 1=输入 0=输出DB 256 DUP (0)SSEG ENDSDSEG SEGMENTA_8255 EQU 210HB_8255 EQU 211HCON_8255 EQU 213HBUFFER DB 6 DUP(0)HANG DBLIE DBNEWHANG DBNEWLIE DBTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,DSEG ENDSCSEG SEGMENTASSUME CS:CSEG, DS:DSEG,SS:SSEGSTART PROC NEARMOV AX,DSEGMOV DS,AXCALL CLOSEALL(关掉数码管,防止因为最初数码管有显示而使程序执行不正常。
微机原理课程设计打字

微机原理课程设计打字一、课程目标知识目标:1. 理解微机原理的基本概念,掌握计算机硬件的基本组成及其工作原理;2. 学习并掌握打字的基本技巧,熟悉键盘布局,了解打字的正确姿势及指法;3. 了解打字软件的基本功能,能够运用软件进行打字练习和测试。
技能目标:1. 培养学生具备一定的打字速度和准确性,提高信息处理能力;2. 学会使用打字软件进行自主练习,养成独立学习的良好习惯;3. 能够运用所学知识,解决实际打字过程中遇到的问题。
情感态度价值观目标:1. 培养学生对计算机科学的兴趣和好奇心,激发学习积极性;2. 培养学生具备耐心、细心的品质,提高克服困难的自信心;3. 增强团队合作意识,学会在小组合作中互相学习、互相帮助;4. 培养学生遵守网络道德规范,养成良好的计算机使用习惯。
课程性质:本课程为实践性较强的课程,注重理论知识与实际操作相结合。
学生特点:学生处于掌握基本计算机知识的阶段,对新鲜事物充满好奇,但学习耐心和自律性有待提高。
教学要求:结合学生特点,注重启发式教学,以学生为主体,教师为主导,培养学生的实际操作能力。
在教学过程中,关注学生的个体差异,因材施教,确保每个学生都能达到课程目标。
将目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 计算机硬件基本组成:讲解微机原理中的CPU、内存、输入输出设备等硬件组成,及其工作原理;相关教材章节:第一章 计算机硬件基本组成2. 键盘指法训练:介绍键盘布局,教授打字的正确姿势及指法,进行基础指法练习;相关教材章节:第二章 键盘与指法3. 打字技巧与练习:讲解打字的基本技巧,如盲打、连打等,组织学生进行打字练习;相关教材章节:第三章 打字技巧与练习4. 打字软件的使用:介绍打字软件的基本功能,教授如何使用软件进行打字练习和测试;相关教材章节:第四章 打字软件的使用5. 实践操作与提高:组织学生进行实际打字操作,提高打字速度和准确性,针对学生个体差异进行指导;相关教材章节:第五章 实践操作与提高教学内容安排与进度:第一周:计算机硬件基本组成学习;第二周:键盘指法训练;第三周:打字技巧与练习;第四周:打字软件的使用;第五周:实践操作与提高,进行总结测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术课程设计报告专业:班级:姓名:学号:小键盘按键识别一.课题任务与要求实验箱上有一个24键小键盘,出厂时按键接点已经按图所示连接。
小键盘有8根横向引出线。
实验前将8根横向引出线与PA0~PA7相连,3根纵向引出线与PB0~PB2相连,再从“I/O口地址译码器”选择一个译码器输出连接到8255的片选端,做好上述连接之后,就构成了以8255为核心的键盘输入电路要求:在实际的自动控制系统中,键盘输入电路的作用是输入数据(0~9,A~F)或者输入控制信号(G,M,P,R,W,X,Y,S)。
实现上述功能的核心程序是“按键识别”。
本实验要求设计按键识别程序,当按下小键盘上某一个键的时候,主机屏幕显示闭合键的键名,按下小键盘“R”键之后停止演示。
二.完成任务的方法或方案简介本程序显示数字0到9,刚刚开始提出两中解决方案一是用跳转法直接显示数值,二是用查找法间接显示数值,本程序是用第一种方案,虽然程序多了些,但直观容易理解,故采纳第一种方案。
DISPLAY函数用来将BUFFER中的键值显示在数码管上。
设定A口方式0输出,B口方式0输入。
GETINPUT函数通过行值和列值查出输入的键值,并将它保存在AL中,如果输入是R,则AL赋值为FFH;如果输入非法字符,则AL赋值为0AH。
设定如果是R则退出程序.CHANGE函数用来改变BUFFER中保存的键值,将BUFFER中的键值移位,最后一位加入AL中的新键值。
CLOSEALL此函数用在退出程序时将数码管关闭.以上是主题函数,在设计过程中还碰到了一些细节问题,例数码管的显示才用延迟20MS的办法解决,具体方案在DISPLAY函数中。
三.实现系统1、程序框图:2、实验电路图:3、8255方式选择控制字 1 D6 D5 D4 D3 D2 D1 D04、源程序:TITLE LITTLEKEYBOARD方式选择控制A 组方式: 00=方式0 01=方式1A 口 IO 1=输入C 上半口IO : 1=输入B 组方式: 0=方式0B 口IO : 1=输入C 下半口 IO : 1=输入SSEG SEGMENT PARA STACK 'STACK'DB 256 DUP (0)SSEG ENDSDSEG SEGMENTA_8255 EQU 210HB_8255 EQU 211HCON_8255 EQU 213HBUFFER DB 6 DUP(0)HANG DBLIE DBNEWHANG DBNEWLIE DBTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH, DSEG ENDSCSEG SEGMENTASSUME CS:CSEG, DS:DSEG,SS:SSEGSTART PROC NEARMOV AX,DSEGMOV DS,AXCALL CLOSEALL(关掉数码管,防止因为最初数码管有显示而使程序执行不正常。
) CMPAGAIN:CALL DISPLAY(DISPLAY函数用来将BUFFER中的键值显示在数码管上。
) MOV DX,CON_8255MOV AL,BOUT DX,AL(设定A口方式0输出,B口方式0输入)AGAIN:CALL DISPLAYMOV DX,A_8255MOV AL,0OUT DX,AL (0->PA7---PA0)MOV DX,B_8255IN AL,DXAND AL,00000111B (取出PB0-PB2CMP AL,00000111BJE AGAINMOV LIE,AL(将列值保存)CALL DELAY1(延时20ms)MOV DX,CON_8255MOV AL,BOUT DX,AL(预置A口方式0输入,B口方式0输入)MOV DX,A_8255IN AL,DXMOV HANG,AL(将行值保存)CALL GETINPUT(GETINPUT函数通过行值和列值查出输入的键值,并将它保存在AL中,如果输入是R,则AL赋值为FFH;如果输入非法字符,则AL赋值为0AH。
)CMP AL,0AHJE CMPAGAIN(如果是非法字符则跳回)CMP AL,0FFHJNE CONTINUE(如果是R则退出程序.)CALL CLOSEALLMOV AH,4CHINT 21HCONTINUE:CALL CHANGE(CHANGE函数用来改变BUFFER中保存的键值)MOV DX,CON_8255MOV AL,BOUT DX,AL(设定A口方式0输出,B口方式0输入)LLL:CALL DISPLAYMOV DX,B_8255IN AL,DXAND AL,00000111B(取出PB0-PB2)CMP AL,00000111BJNE LLLJMP CMPAGAIN(不断扫描,如果不松开按键,那么就循环等待;直到按键松开就跳回。
) RETSTART ENDP;*********************************(此函数用以延时20MS)DELAY1 PROC NEARPUSH AXPUSH CXPUSH DXMOV AH,86HMOV CX,0MOV DX,20000INT 15HPOP DXPOP CXPOP AXRETDELAY1 ENDP;********************************(GETINPUT函数通过行值和列值查出输入的键值,并将它保存在AL中,如果输入是R,则AL赋值为FFH;如果输入非法字符,则AL赋值为0AH。
)GETINPUT PROC NEARCMP LIE,00000110BJE LIE0CMP LIE,00000101BJE LIE1CMP LIE,00000011BJE LIE2MOV AL,0AHRETLIE2:CMP HANG,00010000BJE NEXTMOV AL,0AHRETNEXT:MOV AL,0FFHRETLIE0:CMP HANG,01111111B JE KEY8CMP HANG,BJE KEY9MOV AL,0AHRETKEY8:MOV AL,8RETKEY9:MOV AL,9RETLIE1:CMP HANG,01111111B JE KEY0CMP HANG,BJE KEY1CMP HANG,BJE KEY2CMP HANG,BJE KEY3CMP HANG,BJE KEY4CMP HANG,BJE KEY5CMP HANG,BJE KEY6CMP HANG,BJE KEY7MOV AL,0AHRETKEY0:MOV AL,0RETKEY1:MOV AL,1RETKEY2:MOV AL,2RETKEY3:MOV AL,3RETKEY4:MOV AL,4RETKEY5:MOV AL,5RETKEY6:MOV AL,6RETKEY7:MOV AL,7RETGETINPUT ENDP;**********************************(CHANGE函数用来改变BUFFER中保存的键值,将BUFFER中的键值移位,最后一位加入AL 中的新键值。
)CHANGE PROC NEARPUSH AXPUSH SIMOV SI,OFFSET BUFFERMOV AH,[SI+1]MOV [SI],AHMOV AH,[SI+2]MOV [SI+1],AHMOV AH,[SI+3]MOV [SI+2],AHMOV AH,[SI+4]MOV [SI+3],AHMOV AH,[SI+5]MOV [SI+4],AHMOV [SI+5],ALPOP SIPOP AXRETCHANGE ENDP;**********************************(DISPLAY函数用来将BUFFER中的键值显示在数码管上。
) DISPLAY PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH SIMOV BX,OFFSET TABLEMOV SI,OFFSET BUFFERMOV CL,1XUNHUAN:MOV AL,[SI]XLATMOV DX,201HOUT DX,ALMOV DX,200HMOV AL,CLOUT DX,ALMOV DX,200HMOV AL,0OUT DX,ALINC SISHL CL,1CMP CL,40HJNE XUNHUANPOP SIPOP DXPOP CXPOP BXPOP AXRETDISPLAY ENDP;*********************************(此函数用在退出程序时将数码管关闭.)CLOSEALL PROC NEARPUSH AXPUSH CXPUSH DXMOV CL,1XUNHUAN1:MOV DX,200HMOV AL,CLOUT DX,ALMOV AL,0OUT DX,ALSHL CL,1CMP CL,20HJNE XUNHUAN1POP DXPOP CXPOP AXRETCLOSEALL ENDPCSEG ENDEND START四、程序运行结果分析:六.实验总结:1.实验电路板上8255的端口地址位210H-213H,这与书上给的不一样,开始时在这方面花费了较多时间。
2.通过此次程序设计,我对计算机读取键盘值的过程有了一定的认识。
最开始编程序时并没有想到如果始终按同一个键不放,数码管上就会一下子出来很多字符。
调试时发现了这个问题,想到的解决方法有两种,一种是每一次按键后检测键是否松开,直到松开后再继续执行下一次判断;另一种是按键后延缓一个固定的时间(大约秒)再判断(计算机的键盘就是采取这样的方法)。
本程序采用的是第一种方法。
3.编程序要养成好的习惯,我最初的程序结束时并没有关掉数码管,以致下次用时数码管显示不正确。
好的程序应该各方面想得周到一些,例如我后来在开始和结束时都加了关闭数码管程序(CLOSEALL),这就避免了上述问题。
4.我并没有采用查表得方法来获得键值,我觉得用跳转的方法能使程序的可读性强一些。
当然,程序代码会长许多,但此法由于思路清楚,比较容易查错。