接口课程设计实现特定功能的键盘及LED显

合集下载

键盘控制LED灯数码管

键盘控制LED灯数码管

代码编写
总结词
代码编写是实现键盘控制LED灯数码管功能的核心环节,需要遵循一定的编程规范和逻 辑。
详细描述
在编写代码时,需要遵循良好的编程规范,如变量命名规范、注释清晰等,以提高代码 的可读性和可维护性。同时,需要确保代码逻辑正确,能够实现预期的功能。在键盘控 制LED灯数码管的实现中,需要编写代码以读取键盘输入,并根据输入控制LED灯数码
•·
• 数码管损坏:可能是数 码管本身损坏,需要更 换新的数码管。 • 程序错误:可能是程序 中存在错误,导致数码 管显示异常,需要检查 程序代码并修正错误。
• 连接问题:检查数码管 的连接线是否牢固,确 保连接线没有短路或断 路。
按键无响应
•·
• 按键损坏:可能是按键本身损 坏,需要更换新的按键。
管的显示。
代码测试
总结词
代码测试是确保键盘控制LED灯数码管功能正常的重要步骤,通过测试可以发现和修复潜在的错误。
详细描述
在完成代码编写后,需要进行充分的测试,以验证功能的正确性和稳定性。测试过程中应涵盖各种可 能的输入情况,包括正常输入和异常输入。通过测试可以发现潜在的错误并及时修复,从而提高整个 项目的质量。
输入。
硬件组装
将各元件按照设计好 的电路图进行连接。
将微控制器与电源连 接,为微控制器供电。
检查连接是否正确, 确保没有任何短路或 断路。
03
软件编程
编程语言选择
总结词
编程语言选择是键盘控制LED灯数码管的关键步骤,需要根据项目需求和开发者技能选择合适的编程语言。
详细描述
在实现键盘控制LED灯数码管的功能时,有多种编程语言可供选择,如C、C、Python等。这些语言各有优缺点, 需要根据项目需求和开发者的编程技能进行选择。例如,C语言具有高效、可控性强的优点,适用于对性能要求 较高的场合;Python则易于学习、语法简洁,适合初学者和快速开发。

独立按键控制led课程设计

独立按键控制led课程设计

独立按键控制led课程设计一、课程目标知识目标:1. 学生能理解独立按键的工作原理,掌握其电路连接方式。

2. 学生能掌握LED的基本特性,了解其在电路中的应用。

3. 学生能理解独立按键控制LED的原理,掌握相关编程方法。

技能目标:1. 学生能独立完成独立按键与LED的电路连接,并进行功能测试。

2. 学生能编写简单的程序,实现独立按键控制LED的亮灭、闪烁等功能。

3. 学生能运用所学知识解决实际问题,具备一定的创新意识和动手能力。

情感态度价值观目标:1. 学生通过课程学习,培养对电子技术的兴趣,提高学习积极性。

2. 学生在团队合作中,学会沟通、协作,培养团队精神。

3. 学生在实践过程中,树立正确的价值观,认识到科技对生活的影响。

课程性质:本课程为实践性课程,结合理论教学,注重培养学生的动手能力、创新意识和实际应用能力。

学生特点:学生处于初中阶段,具有一定的物理知识和动手能力,对电子技术有一定的好奇心和兴趣。

教学要求:教师应注重理论与实践相结合,引导学生主动参与实践,鼓励学生创新思维,提高解决问题的能力。

同时,关注学生的情感态度价值观培养,使学生在掌握知识技能的同时,形成良好的综合素质。

通过分解课程目标为具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容1. 理论知识:- 介绍独立按键的原理、功能及其在电路中的应用。

- 讲解LED的基本结构、特性以及在电路中的作用。

- 分析独立按键控制LED的电路原理及编程方法。

2. 实践操作:- 指导学生进行独立按键与LED的电路连接,确保正确无误。

- 帮助学生编写程序,实现独立按键控制LED的亮灭、闪烁等功能。

- 引导学生进行功能测试,分析并解决可能出现的故障。

3. 教学大纲:- 第一课时:介绍独立按键和LED的基本概念、原理及应用。

- 第二课时:讲解独立按键控制LED的电路原理及编程方法。

- 第三课时:指导学生进行电路连接和程序编写,实现功能。

- 第四课时:进行功能测试,总结问题,提高实践能力。

dspled键盘按键显示课程设计

dspled键盘按键显示课程设计

dspled键盘按键显示课程设计一、课程目标知识目标:1. 学生能理解dspled键盘按键显示的基本原理,掌握其与计算机硬件和软件的关联性。

2. 学生能掌握dspled键盘按键显示的相关术语和概念,如背光、扫描码、映射等。

3. 学生能了解dspled键盘按键显示在不同应用场景中的作用和重要性。

技能目标:1. 学生能够独立进行dspled键盘按键显示的组装和调试。

2. 学生能够运用dspled键盘按键显示进行基本的编程操作,实现简单的功能。

3. 学生能够运用dspled键盘按键显示解决实际问题,提高实际操作能力。

情感态度价值观目标:1. 培养学生对计算机硬件和软件的兴趣,激发学习热情。

2. 培养学生的团队合作意识,学会在小组合作中分享、交流和协作。

3. 培养学生勇于尝试、不断探索的精神,提高面对问题的解决能力。

课程性质:本课程属于实践性较强的学科,注重理论知识与实际操作的相结合。

学生特点:学生处于好奇心强、求知欲旺盛的年级,具备一定的计算机基础,但对硬件和软件的结合尚需深入了解。

教学要求:教师应注重启发式教学,引导学生主动探究,关注学生的个体差异,提供个性化的指导。

同时,注重理论与实践相结合,提高学生的实际操作能力。

通过本课程的学习,使学生达到课程目标,为后续相关课程打下坚实基础。

二、教学内容1. dspled键盘按键显示原理:介绍dspled的工作原理,包括背光技术、扫描码的生成与传输、映射过程等,对应教材第3章“键盘与显示技术”。

2. dspled键盘按键显示组件:讲解键盘按键显示的各个组件,如LED、电路板、驱动程序等,以及它们的组装方法,对应教材第4章“计算机硬件组成”。

3. dspled编程操作:介绍如何通过编程实现键盘按键显示的功能,包括编程语言的选择、编程技巧等,对应教材第6章“计算机编程基础”。

4. dspled应用案例:分析dspled在实际应用场景中的使用,如游戏开发、嵌入式系统等,对应教材第8章“计算机硬件应用实例”。

(整理)接口课程设计实现特定功能的键盘及LED显示

(整理)接口课程设计实现特定功能的键盘及LED显示

实现特定功能的键盘及LED显示了解键盘及LED显示接口原理,设计实验电路图完成以下功能:1. 按1键显示年;2. 按2键显示月日;3. 按3键显示GOOD ;4. 按4键数码管由左到右字符“0”循环显示。

5.自行设计特效显示功能。

CODE SEGMENTASSUME CS:CODE,DS:CODESTART: MOV AX,CSMOV DS,AXINPUT: CALL KEYBOARDLEA SI,KEYBUFFER;取按键的值MOV AL,[SI]CMP AL,1JNZ L0JMP SHOW_YEAR ;显示年L0:CMP AL,2JNZ L1JMP SHOW_MD ;显示月日L1:CMP AL,3JNZ L2JMP SHOW_GOOD ;显示GOODL2:CMP AL,4JNZ L3JMP SHOW_0 ;由左到右字符“0”循环显示L3:CMP AL,7JNZ L4JMP SHOW_SUN ;显示SUNL4:JMP SHOW_HERO;显示HERO;----------------------------------结束---------------------------------------------;--------------------------------显示年开始----------------------------------------SHOW_YEAR:MOV CH,01111111B ;初始化位选码01111111BMOV BH,11110111B ;显示位选结束位LEA SI,YEARBUFFERCALL DISPLAYDEC COUNT ;重复显示COUNT次JNZ SHOW_YEARMOV COUNT,250JMP INPUT;--------------------------------------结束-------------------------------------------;-----------------------------------显示月开始---------------------------------------SHOW_MD:MOV CH,01111111B ;初始化位选码01111111BMOV BH,11110111B ;显示位选结束位LEA SI,MDBUFFERCALL DISPLAYDEC COUNT ;重复显示COUNT次JNZ SHOW_MDMOV COUNT,250JMP INPUT;---------------------------------结束--------------------------------------------------;---------------------------------显示GOOD-----------------------------------------------SHOW_GOOD:MOV CH,01111111B ;初始化位选码01111111BMOV BH,11110111B ;显示位选结束位LEA SI,GOODBUFFERCALL DISPLAYDEC COUNT ;重复显示COUNT次JNZ SHOW_GOODMOV COUNT,250JMP INPUT;----------------------------------结束--------------------------------------------------;---------------------------------显示HERO-----------------------------------------------SHOW_HERO:DE: MOV CH,01111111B ;初始化位选码01111111B LEA SI, HEROBUFFERMOV BH,11110111B ;显示位选结束位CALL DISPLAYDEC COUNT ;重复显示COUNT次JNZ SHOW_HEROMOV COUNT,10DEC XUNMOV COUNT,10CALL SHOWDELAY_HCMP XUN,00H ;闪光显示JNZ DEMOV XUN ,15MOV COUNT ,250JMP INPUT;----------------------------------结束-------------------------------------------------;---------------------------显示由左到右字符“0”循环------------------------------------SHOW_0: MOV BX,3LSHOW0:MOV CH,01111111B ;初始化位选码01111111LEA DI,LINBUFFERMOV AL,80HMOV DX,203HOUT DX,AL ;再次初始化8255DISPLAY_0:MOV AL,CHMOV DX,202HOUT DX,AL;位选码送PC口MOV AL,[DI]MOV DX,200H;MOV AL,5BHOUT DX,AL ;显示段码CALL SHOWDELAY0ROR CH,1 ;指向下一个数码管CMP CH,11110111BJNZ DISPLAY_0DEC BX ;重复显示3次JNZ LSHOW0JMP INPUT;----------------------------------结束-------------------------------------------------;-----------------------------显示SUN-------------------------------------------SHOW_SUN:MOV CH,01111111B ;初始化位选码01111111BMOV BH,11101111B ;显示位选结束位LEA SI,SUNBUFFERCALL DISPLAYDEC COUNT ;重复显示COUNT次JNZ SHOW_SUNMOV COUNT,250JMP INPUT;-----------------------------------结束------------------------------------------------;----------------------------------显示延时----------------------------------------------- SHOWDELAY PROC NEARPUSH BXPUSH CXMOV BX,10SHOWDEL1:MOV CX,100SHOWDEL2:LOOP SHOWDEL2DEC BXJNZ SHOWDEL1POP CXPOP BXRETSHOWDELAY ENDP;-----------------------------------结束-----------------------------------------------;----------------------------------显示延时0--------------------------------------------SHOWDELAY0 PROC NEARPUSH BXPUSH CXMOV BX,100SHOW0DEL1:MOV CX,2000SHOW0DEL2:LOOP SHOW0DEL2DEC BXJNZ SHOW0DEL1POP CXPOP BXRETSHOWDELAY0 ENDP;-----------------------------------结束---------------------------------------------SHOWDELAY_H PROC NEARPUSH BXPUSH CXMOV BX,10SHOW_HDEL1:MOV CX,2000SHOW_HDEL2:LOOP SHOW_HDEL2DEC BXJNZ SHOW_HDEL1POP CXPOP BXRETSHOWDELAY_H ENDP;---------------------------------显示程序------------------------------------------DISPLAY PROC NEARMOV AL,80HMOV DX,203HOUT DX,AL ;再次初始化8255DISPLAY1:MOV AL,CHMOV DX,202HOUT DX,AL ;位选码送PC口MOV AL,[SI]MOV DX,200HOUT DX,AL ;显示段码CALL SHOWDELAY ;延时INC SIROR CH,1 ;指向下一个数码管CMP CH,BHJNZ DISPLAY1RETDISPLAY ENDP;-----------------------------------结束---------------------------------------------;---------------------------------读取按键盘------------------------------------------KEYBOARD PROC NEARLEA SI,KEYBUFFERMOV AL,10000001B ;初始化8255控制字MOV DX,203HOUT DX,ALKS1:CALL KS ;读取按键CMP AL,0FH ;判断有无按键JZ KS1CALL DELAYCALL KSCMP AL,0FHJZ KS1MOV BL,0EFH ;初始化列码MOV BH,0 ;初始化列计数器AGAIN:MOV DX,202HMOV AL,BLOUT DX,AL ;输出列码IN AL,DX ;读取行码AND AL,0FHCMP AL,0FHJZ NEXT ;该列无键闭合,准备下一列扫描CMP AL,0DH ;判断列是否是第一个键闭合?JNZ TWOMOV AL,1JMP FREETWO: ;判断列是否是第二个键闭合?CMP AL,0BHJNZ THREEMOV AL,4JMP FREETHREE: ;判断列是否是第三个键闭合?CMP AL,07HJNZ NEXTMOV AL,7FREE:PUSH AXWAIT1:CALL KSCMP AL,0FHJNZ WAIT1POP AXADD AL,BHMOV [SI],AL ;保存键值,并返回JMP RETURNNEXT:INC BHROL BL,1CMP BL,0FEHJNZ AGAINJMP KS1KS PROC NEARMOV DX,202HMOV AL,0FHOUT DX,ALIN AL,DXAND AL,0FHRETKS ENDPDELAY PROC NEARPUSH BXPUSH CXMOV BX,2000 DEL1:MOV CX,10DEL2:LOOP DEL2DEC BXJNZ DEL1POP CXPOP BXRETDELAY ENDP RETURN:RET KEYBOARD ENDPEXIT:MOV AH,4CHINT 21HXUN DB 15YEARBUFFER DB 5BH,3FH,3FH,6FH ;存放年2009MDBUFFER DB 3FH,6FH,3FH,66H ;存放月日0904GOODBUFFER DB 6FH,5CH,5CH,5EH ;GOODKEYBUFFER DB 1LINBUFFER DB 3FHHEROBUFFER DB 76H,79H,77H,3FH ;HEROSUNBUFFER DB 6DH,3EH,37H ;SUNCOUNT DB 250 ;显示次数----------------------------------结束-----------------------------------------CODE ENDSEND START。

实现特定功能的键盘及LED显示_课程设计

实现特定功能的键盘及LED显示_课程设计

实现特定功能的键盘及LED显示_课程设计微机原理与接口技术课程设计题目:实现特定功能的键盘及LED显示目录一、实验目的……………………………………二、实验内容……………………………………三、总体设计……………………………………四、实验电路……………………………………五、实验框图……………………………………六、实验程序……………………………………七、实验心得……………………………………1、课程设计目的课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。

它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。

2、实验设计内容:本次实验的主要内容是在了解键盘及LED显示接口原理的基础上,设计出相应的实验电路,以实现特定功能的键盘及LED显示。

需要完成以下功能:1. 按1键显示年;2. 按2键显示月日;3. 按3键显示GOOD ;4. 按4键数码管由左到右字符“0”循环显示。

5.自行设计特效显示功能。

实验主要涉及可编程的键盘、显示接口芯片8279和可编程中断控制器8259A。

功能1至4是在可编程的键盘、显示接口芯片8279的基础上通过程序实现的。

在功能5中,加入了中断,通过边沿触发产生中断,执行中断服务子程序,以此来时现功能5的特效(在数码管上从左、从右依次显示0—9的数字)。

3、试验设计原理及方案:(含电路原理图、硬件连接示意图、系统功能框图、程序流程图等)3.1 电路原理图3.2 系统功能框图3.3 程序流程图3.4 各功能实现方案3.4.1 功能一按1键显示年当可编程的键盘、显示接口芯片8279扫描寄存器AL=02H时,说明按键为1号键。

关于显示年份,首先定义一个显示缓冲区,用于存储表示年份的数字。

然后依次读取其值,经过换码,再通过8279以左端入口方式显示与数码管上。

实现特定功能的键盘及LED显示 接口课程设计

实现特定功能的键盘及LED显示  接口课程设计

河北科技大学《接口技术》课程设计报告学生姓名:学号:专业班级:课程名称:学年学期:2 0 —2 0 学年第学期指导教师:2 0 年月课程设计成绩评定表目录一、设计题目:--------------------------------------------------------------------------------------------- 1二、设计目的:--------------------------------------------------------------------------------------------- 1三、设计原理及方案: ----------------------------------------------------------------------------------- 11、实验电路图---------------------------------------------------------------------------------------- 12、实验框图 ------------------------------------------------------------------------------------------- 23、各功能实现方案---------------------------------------------------------------------------------- 34、实验程序 ------------------------------------------------------------------------------------------- 3四、实验方法------------------------------------------------------------------------------------------------ 81、实验电路测试------------------------------------------------------------------------------------- 82、软件测试 ------------------------------------------------------------------------------------------- 8五、实验结果------------------------------------------------------------------------------------------------ 8六、改进意见及建议 -------------------------------------------------------------------------------------- 8七、设计体会------------------------------------------------------------------------------------------------ 8一、设计题目:实现特定功能的键盘及LED显示。

微机原理与接口技术-键盘LED显示【课程设计报告】

微机原理与接口技术-键盘LED显示【课程设计报告】

微机原理与接口技术-键盘LED 显示【课程设计报告】重庆大学课程设计报告课程名称:微机原理与接口技术设计题目:键盘LED显示院系:电气信息学院班级:2007级设计时间:2009年12月第一章概述 (2)1.1学习目的 (2)1.2 计算机的应用 (3)1.3学习计算机的意义 (3)1.4课程设计目的 (4)第二章总体方案设计 (4)2.1 设计注意问题 (4)2.2 总体思路 (5)第三章硬件设计 (5)3.1 8255工作原理 (5)3.2 键盘工作原理 (7)3.3 键特征值的形成 (8)3.4段值的形成 (9)3.5 8255接线图 (11)第四章软件设计 (12)4.1 8255初始化 (12)4.2 键盘扫描的处理方法 (12)4.2.1. 判断是否有键被按下的方法 (12)4.2.2. 判断是否有键被按下的源程序 (13)4.2.3 防抖动 (13)4.2.4.防抖动的延时子程序 (14)4.3 程序核心部分 (14)4.3.1 逐行扫描 (14)4.3.2逐行扫描的源程序 (15)第五章源程序代码 (15)5.1 根据整体思路以及软件设计得到的代码. 155.2 以上代码存在问题分析 (19)第六章难点分析 (20)第七章体会感慨建议 (25)第八章参考文献 (26)第一章概述1.1学习目的“微机原理与接口技术”是电气工程及其自动化专业的一门重要的专业基础课程。

我们通过该门课的学习,知道了微机的工作原理,微型计算机的基本结构,接口技术及汇编语言程序设计,为后续的课程的学习和今后的工作打下坚实的基础。

通过实验可以培养学生利用计算机技术和编程手段分析,解决专业领域的各种问题的能力和意识,并进一步感受微机发展的微机发展的新技术和新方法。

1.2 计算机的应用目前计算机的应用已经遍布各个行业,如科学计算、数据处理、过程控制、人工智能、网络应用等。

科学和工程计算:科学和工程计算的特点是计算量大,而逻辑关系相对简单,它是计算机重要应用领域之一。

接口课程设计_实现特定功能的键盘及LED显示2

接口课程设计_实现特定功能的键盘及LED显示2

题目三实现特定功能的键盘及LED显示1.了解键盘及LED显示接口设计,绘制出原理图。

2.根据实验箱上提供的硬件资源完成:a、按1键显示年b、按2键显示月日c、按3键显示GOODd、按4键数码管由左到右8字循环显示。

3.设计电路并在实验台上连接线路。

OUTBIT EQU 08002H ; 位控制口OUTSEG EQU 08004H ; 段控制口IN_KEY EQU 08001H ; 键盘读入口DATA SEGMENTLEDBUF DB 6 DUP(?) ; 显示缓冲NUM DB 1 DUP(?) ; 显示的数据DELAYT DB 1 DUP(?)LEDMAP: ; 八段管显示码DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H ;0,1,2,3,4,5,6,7DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H,71H ;8,9,A,b,C,d,E,FKEYTABLE: ; 键码定义DB 16H, 15H, 14H, 0FFHDB 13H, 12H, 11H, 10HDB 0DH, 0CH, 0BH, 0AHDB 0EH, 03H, 06H, 09HDB 0FH, 02H, 05H, 08HDB 00H, 01H, 04H, 07HDATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATADELAY PROC NEAR ; 延时子程序PUSH AXPUSH CXMOV AL, 0MOV CX,AXLOOP $POP CXPOP AXRETDELAY ENDPDISPLAYLED PROC NEARMOV BX, OFFSET LEDBUFMOV CL, 6 ; 共6个八段管MOV AH, 00100000B ;从左边开始显示DLOOP:MOV DX, OUTBITMOV AL, 0OUT DX,AL ; 关所有八段管MOV AL, [BX]MOV DX, OUTSEGOUT DX,ALMOV DX, OUTBITMOV AL, AHOUT DX, AL ; 显示一位八段管PUSH AXMOV AH, 1CALL DELAYPOP AXSHR AH, 1INC BXDEC CLJNZ DLOOPMOV DX, OUTBITMOV AL, 0OUT DX,AL ; 关所有八段管RETDISPLAYLED ENDPDISPLAYLED1 PROC NEARMOV CL, 6 ; 共6个八段管;MOV AH, 00000001B ; 从左边开始显示MOV AH,00100000BDLOOP1:MOV DX, OUTBITMOV AL, 0OUT DX,AL ; 关所有八段管MOV AL,7FHMOV DX, OUTSEGOUT DX,ALMOV DX, OUTBITMOV AL, AHOUT DX, AL ; 显示一位八段管PUSH AXMOV AH, 120CALL DELAYPOP AXSHR AH, 1DEC CLJNZ DLOOP1MOV DX, OUTBITMOV AL, 0OUT DX,AL ; 关所有八段管R ETDISPLAYLED1 ENDPTESTKEY PROC NEARMOV DX, OUTBITMOV AL, 0OUT DX, AL ; 输出线置为0 关所有八段管MOV DX, IN_KEYIN AL, DX ; 读入键状态NOT ALAND AL, 0FH ; 高四位不用RETTESTKEY ENDPGETKEY PROC NEARMOV CH, 00100000BMOV CL, 6KLOOP:MOV DX, OUTBITMOV AL, CH ; 找出键所在列SHR CH, 1MOV DX, IN_KEYIN AL, DXNOT ALAND AL, 0FHJNE GOON_ ; 该列有键入DEC CLJNZ KLOOPMOV CL, 0FFH ; 没有键按下, 返回0FFHJMP EXIT1GOON_:DEC CLSHL CL, 2 ; 键值= 列X 4 + 行MOV CH, 4LOOPC:TEST AL, 1JNZ EXIT1SHR AL, 1INC CLDEC CHJNZ LOOPCEXIT1:MOV DX, OUTBITMOV AL, 0OUT DX, ALMOV CH, 0MOV BX, OFFSET KEYTABLEADD BX, CXMOV AL, [BX] ; 取出键码MOV BL, ALWAITRELEASE:MOV DX, OUTBITMOV AL, 0OUT DX, AL ; 等键释放MOV AH, 10JNE WAITRELEASEMOV AL, BLRETGETKEY ENDPSTART PROC NEARMOV AX, DATAMOV DS, AXB:MOV LEDBUF, 0 ;不显示MOV LEDBUF+1, 0MOV LEDBUF+2, 0MOV LEDBUF+3, 0MOV LEDBUF+4, 0MOV LEDBUF+5, 0MLOOP:CALL DISPLAYLED ; 显示CALL TESTKEY ; 有键入?JE MLOOP ; 无键入, 继续显示T1:CALL GETKEY ; 读入键码AND AL, 0FH ; 显示键码MOV AH, 0CMP AL,01HJZ P1CMP AL,02HJZ P2CMP AL,03HJZ P3CMP AL,04HJZ P4JMP BP1:MOV BX, OFFSET LEDMAPADD BX, AXMOV AL, [BX]MOV LEDBUF,5BHMOV LEDBUF+1,3FHMOV LEDBUF+2,06HMOV LEDBUF+3,5BHMOV LEDBUF+4,0MOV LEDBUF+5,0JMP MLOOPP2:MOV BX,OFFSET LEDMAPADD BX,AXMOV AL,[BX]MOV LEDBUF,3FHMOV LEDBUF+1,7DHMOV LEDBUF+2,3FHMOV LEDBUF+3,66HMOV LEDBUF+4,0MOV LEDBUF+5,0JMP MLOOPP3:MOV BX,OFFSET LEDMAPADD BX,AXMOV AL,[BX]MOV LEDBUF,6FHMOV LEDBUF+1,5CHMOV LEDBUF+2,5CHMOV LEDBUF+3,5EHMOV LEDBUF+4,0MOV LEDBUF+5,0JMP MLOOPP4:CALL DISPLAYLED1CALL TESTKEY ; 有键入?JE P4 ; 无键入, 继续显示JMP T1START ENDPCODE ENDSEND START。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实现特定功能的键盘及LED显示
了解键盘及LED显示接口原理,设计实验电路图完成以下功能:
1. 按1键显示年;
2. 按2键显示月日;
3. 按3键显示GOOD ;
4. 按4键数码管由左到右字符“0”循环显示。

5.自行设计特效显示功能。

CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START: MOV AX,CS
MOV DS,AX
INPUT: CALL KEYBOARD
LEA SI,KEYBUFFER;取按键的值
MOV AL,[SI]
CMP AL,1
JNZ L0
JMP SHOW_YEAR ;显示年
L0:
CMP AL,2
JNZ L1
JMP SHOW_MD ;显示月日
L1:
CMP AL,3
JNZ L2
JMP SHOW_GOOD ;显示GOOD
L2:
CMP AL,4
JNZ L3
JMP SHOW_0 ;由左到右字符“0”循环显示
L3:
CMP AL,7
JNZ L4
JMP SHOW_SUN ;显示SUN
L4:
JMP SHOW_HERO;显示HERO
;----------------------------------结束---------------------------------------------
;--------------------------------显示年开始----------------------------------------
SHOW_YEAR:
MOV CH,01111111B ;初始化位选码01111111B
MOV BH,11110111B ;显示位选结束位
LEA SI,YEARBUFFER
CALL DISPLAY
DEC COUNT ;重复显示COUNT次
JNZ SHOW_YEAR
MOV COUNT,250
JMP INPUT
;--------------------------------------结束-------------------------------------------
;-----------------------------------显示月开始---------------------------------------
SHOW_MD:
MOV CH,01111111B ;初始化位选码01111111B
MOV BH,11110111B ;显示位选结束位
LEA SI,MDBUFFER
CALL DISPLAY
DEC COUNT ;重复显示COUNT次
JNZ SHOW_MD
MOV COUNT,250
JMP INPUT
;---------------------------------结束--------------------------------------------------
;---------------------------------显示GOOD-----------------------------------------------
SHOW_GOOD:MOV CH,01111111B ;初始化位选码01111111B
MOV BH,11110111B ;显示位选结束位
LEA SI,GOODBUFFER
CALL DISPLAY
DEC COUNT ;重复显示COUNT次
JNZ SHOW_GOOD
MOV COUNT,250
JMP INPUT
;----------------------------------结束--------------------------------------------------
;---------------------------------显示HERO-----------------------------------------------
SHOW_HERO:
DE: MOV CH,01111111B ;初始化位选码01111111B LEA SI, HEROBUFFER
MOV BH,11110111B ;显示位选结束位
CALL DISPLAY
DEC COUNT ;重复显示COUNT次
JNZ SHOW_HERO
MOV COUNT,10
DEC XUN
MOV COUNT,10
CALL SHOWDELAY_H
CMP XUN,00H ;闪光显示
JNZ DE
MOV XUN ,15
MOV COUNT ,250
JMP INPUT
;----------------------------------结束-------------------------------------------------
;---------------------------显示由左到右字符“0”循环------------------------------------
SHOW_0: MOV BX,3
LSHOW0:
MOV CH,01111111B ;初始化位选码01111111
LEA DI,LINBUFFER
MOV AL,80H
MOV DX,203H
OUT DX,AL ;再次初始化8255
DISPLAY_0:MOV AL,CH
MOV DX,202H
OUT DX,AL
;位选码送PC口
MOV AL,[DI]
MOV DX,200H
;MOV AL,5BH
OUT DX,AL ;显示段码
CALL SHOWDELAY0
ROR CH,1 ;指向下一个数码管
CMP CH,11110111B
JNZ DISPLAY_0
DEC BX ;重复显示3次
JNZ LSHOW0
JMP INPUT
;----------------------------------结束-------------------------------------------------
;-----------------------------显示SUN-------------------------------------------
SHOW_SUN:
MOV CH,01111111B ;初始化位选码01111111B
MOV BH,11101111B ;显示位选结束位
LEA SI,SUNBUFFER
CALL DISPLAY
DEC COUNT ;重复显示COUNT次
JNZ SHOW_SUN
MOV COUNT,250
JMP INPUT
;-----------------------------------结束------------------------------------------------
;----------------------------------显示延时-----------------------------------------------SHOWDELAY PROC NEAR
PUSH BX
PUSH CX
MOV BX,10
SHOWDEL1:
MOV CX,100
SHOWDEL2:
LOOP SHOWDEL2
DEC BX
JNZ SHOWDEL1
POP CX
POP BX
RET
SHOWDELAY ENDP
;-----------------------------------结束-----------------------------------------------
;----------------------------------显示延时0--------------------------------------------
SHOWDELAY0 PROC NEAR
PUSH BX
PUSH CX
MOV BX,100
SHOW0DEL1:
MOV CX,2000
SHOW0DEL2:
LOOP SHOW0DEL2
DEC BX
JNZ SHOW0DEL1
POP CX
POP BX。

相关文档
最新文档