实现特定功能的键盘及LED显示 接口课程设计
运用8255设计的键盘及显示接口-实验报告(含接线图+源程序)

运用8255设计的键盘及显示接口图中用并行接口8255A作为微机与键盘间的接口,采用逐行扫描法识别键。
将键盘中的列与PA0—PA3相连,A口为输出;将行与C口的PC0—PC1相连,C 口为输入口; PB0—PB7与七段代码显示器连接B口为输出。
程序执行过程如下:识别是否有键按下,方法是使PA0一PA3输出全0,读C 口(行值) 中只要有一位为0,就说明有键按下,在检测到有键按下后,延迟一段时间,根据找到的键号,转去执行显示七段代码显示器的程序,这时七段代码显示器就显示与该键相同的数值。
实验步骤8255接口的应用键盘及显示接线图注:圆圈处是要求接的连线。
(1)按图4接线。
(2)输入源程序,汇编、连接后装入系统。
(3)执行程序后,按一下键盘,7段代码就会显示相应的数字。
程序STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENTTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDATA 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 DI,3003HMOV AL,81H ;8255方式字定义选择0方式,A口为输出;OUT 63H,AL;B口为输出;C口为输入BEGIN: CALL DIS ;显示七段代码管数据的子程序CALL CLEAR ;七段代码管清0子程序CALL CCSCAN ;检测是否有键按下子程序JNZ INK1 ;JMP BEGININK1: CALL DISCALL DALLY ;子程序为延时,消抖动CALL DALLYCALL CLEARCALL CCSCANJNZ INK2JMP BEGININK2: MOV CH,0FEHMOV CL,00HCOLUM: MOV AL,CHOUT 60H,ALIN AL,62HTEST AL,01HJNZ LONEMOV AL,00HJMP KCODELONE: TEST AL,02HJNZ NEXTMOV AL,04HKCODE: ADD AL,CLCALL PUTBUFPUSH AXKON: CALL DISCALL CLEARCALL CCSCANJNZ KONPOP AX NEXT: INC CLMOV AL,CHTEST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUM KERR: JMP BEGIN CCSCAN: MOV AL,00HOUT 60H,ALIN AL,62HNOT ALAND AL,03HRET CLEAR: MOV AL,00HOUT 61H,ALRETDIS: PUSH AXMOV SI,3000HMOV DL,0F7HMOV AL,DLAGAIN: OUT 60H,ALMOV AL,[SI]MOV BX,OFFSET TABLE ;取七段代码首址AND AX,00FFHADD BX,AXMOV AL,[BX]OUT 61H,ALCALL DALLYINC SIMOV AL,DLTEST AL,01HJZ OUTROR AL,1MOV DL,ALJMP AGAINOUT: POP AXRETDALLY: PUSH CXMOV CX,0010HT1: MOV AX,0010HT2: DEC AXJNZ T2LOOP T1POP CXRETPUTBUF: MOV SI,DIMOV [SI],ALDEC DICMP DI,2FFFHJNZ GOBACKMOV DI,3003H GOBACK: RETCODE ENDSEND START。
4.3键盘和LED显示实例

二、利用8051的串行口实现键盘/显示器接口
显示子程序:
DIR: SETB P3.3 MOV R7,#08H MOV R0,#7FH DL0: MOV A,@R0 ADD A,#0DH MOVC A,@A+PC MOV SBUF,A DL1: JNB TI,DL1 CLR TI DEC R0 DJNZ R7,DL0 CLR P3.3 RET ;开放显示输出 ;8位显示器计数 ;7FH~78H为显示缓冲器 ;取出要显示的数 ;加上偏移量 ;查表取出字形数据 ;送出显示 ;输出完否? ;完,清中断标志 ;准备再取下一个数 ;关闭显示器输出 ;返回
8155芯片实现键盘/显示器接口程序
LK2: MOV R2,#0FEH MOV R4,#00H LK4: MOV DPTR,#7F01H MOV A,R2 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.0,LONE MOV A,#00H AJMP LKP ;扫描模式→R2 ;列计数器置初值 ;扫描模式→8155PA口
(一)8279的引脚及内部结构
5. FIFO RAM和显示缓冲器RAM
IRQ为中断请求输出线,高电平有效。当 FIFO RAM缓冲器中存有键盘上闭合键的信息时, IRQ线升高,向CPU请求中断,当CPU将缓冲器 中的输入键信息全部读取时,中断请求线下降为 低电平。
显示子程序清单: DIR: MOV DPTR,#7F00H ;8155初始化 MOV A,#03H MOVX @DPTR,A MOV R0,#79H ;置缓冲器指针初值 MOV R3,#01H ;扫描位初值 LD0: MOV DPTR,#7F02H ;关显示 MOV A,#00H MOVX @DPTR,A MOV DPTR,#7F01H ;扫描模式→8155PA口 MOV A,R3
8x8点阵LED显示键盘输入字母A~F.

课程设计报告课程设计名称:微机原理与接口技术系别:三系学生姓名:缪广东班级:10计本(1)学号:20100303130成绩:指导教师:巫宗宾开课时间:2012—2013 学年 1 学期一.设计题目LED显示系统设计二.主要内容课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。
它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。
通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。
让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。
通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。
在课程设计时,1人一组,设计报告由学生独立完成,不得互相抄袭。
教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。
学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。
学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。
学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。
第7章 LED数码显示器和键盘接口电路

DJNZ R7,DL1
DJNZ R6,DL2
RET
TAB1:db 06H,5BH,4FH,66H,6DH ; “1~5”的字形码
TAB2:db 76H,79H,38H,38H,3FH ; “HELLO”的字形码
7.2用并行口设计LED键盘电路
键盘是计算机系统中不可缺少的输入设备, 当按键少时可接成线性键盘,当按键较多时,这 样的接法占用口线较多。将按键接成矩阵的形式, 可以节省口线,例如两个接口可按8*8的形式接 64个按键。每个按键有它的行值和列值,行值和 列值的组合就是识别这个按键的编码。矩阵的行 线和列线分别通过两并行接口和CPU通信。每个 按键的状态同样需变成数字量“0”和“1”,开 关的一端通过电阻接Vcc(列)、而接地是通过程 序输出数字“0”实现的。
动态接口采用各数码管循环轮流显示的方法,当循环 显示频率较高时,利用人眼的暂留特性 ,看不出闪烁显 示现象,这种显示需要一个接口完成字形码的输出(字形 选择),另一接口完成各数码管的轮流点亮(数位选择)。
7.1用并行口设计LED显示电路
例:如图是接有五个共阴极数码管的动态显示接口电 路,用74LS373接成直通的方式作驱动电路,阴极用非 门74LS04反相门驱动,字形选择由P1口提供,位选择 P3口控制。
零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组
合称之为字形码(段码),如显示”0”,字形码为3fh.
g f ab
com
10 9 8 7 6
a
a
b
c
f
b
g
d
e
e
c
d
f
g
1 2 34 5
com
dp
e d c dp
键盘控制显示课程设计

键盘控制显示课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握键盘控制显示的基本原理和编程方法;技能目标要求学生能够独立完成键盘控制显示的实验,并具备一定的创新能力;情感态度价值观目标要求学生在学习过程中培养团队合作意识,增强对计算机科学的兴趣和责任感。
通过分析课程性质、学生特点和教学要求,我们将目标分解为具体的学习成果。
首先,学生需要理解键盘控制显示的基本概念,包括键盘的工作原理和显示技术的演变。
其次,学生应掌握键盘控制显示的编程方法,包括键盘扫描、按键消抖和显示控制等。
最后,学生需要具备实际操作能力,能够通过编程实现键盘控制显示的功能,并在此基础上进行创新设计。
二、教学内容根据课程目标,我们选择和了以下教学内容。
首先,介绍键盘控制显示的基本原理,包括键盘的工作原理和显示技术的演变。
其次,讲解键盘控制显示的编程方法,包括键盘扫描、按键消抖和显示控制等。
接着,通过实例分析,让学生了解键盘控制显示在实际应用中的重要性。
最后,安排学生进行实验,让他们亲自动手实现键盘控制显示的功能,并鼓励他们进行创新设计。
三、教学方法为了实现课程目标,我们将采用多种教学方法。
首先,通过讲授法,向学生传授键盘控制显示的基本原理和编程方法。
其次,利用讨论法,引导学生思考键盘控制显示在实际应用中的价值和挑战。
接着,采用案例分析法,让学生通过分析实际案例,深入理解键盘控制显示的应用场景。
最后,运用实验法,让学生在动手实践中掌握键盘控制显示的编程技巧,并培养他们的创新能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源。
首先,选用合适的教材,为学生提供系统的学习材料。
其次,提供参考书籍,拓展学生的知识视野。
接着,收集多媒体资料,丰富学生的学习体验。
最后,准备实验设备,确保学生能够顺利进行实验操作。
同时,我们还将利用网络资源,为学生提供更多的学习资料和交流平台。
单片机键盘显示接口电路设计

中北大学单片机及其接口技术课程设计说明书学生姓名:学号:学院:专业:题目:单片机键盘显示接口电路设计指导教师:沈小林职称:副教授2012年6月17日中北大学单片机及其接口技术课程设计任务书11/12学年第二学期学院:专业:学生姓名:学号:课程设计题目:单片机键盘显示接口电路设计起迄日期:6月11日~6月17日课程设计地点:中北大学指导教师:沈小林系主任:王忠庆下达任务书日期:2012年06月11日课程设计任务书课程设计任务书第一章、绪论89C51是一种带4KB闪烁可编程可擦除只读存储器(FPEROM-Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
在本次课程设计中,便采用89C51单片机。
第二章、设计内容一、4×4键盘原理:4行行行行图1电路原理图见附图一本次设计为4×4的矩阵键盘,这样的设计可以有效的减少键盘与单片机接口时所占用的I/O接口。
在这种非编码键盘的单片机系统中,键盘处理程序首先执行有无按键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键被按下,对键的识别常采用逐行(逐列)扫描的方法。
首先判断有无按键按下。
方法是:向行线输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入到累加器A中,如果有按键按下,会使列线电平被拉至低电平,是列输入不全为1。
判断键盘哪一个键被按下。
方法是:一次给行线送低电平,然后查所有列线状态,称为行扫描,如果全为1,则所按下键不在此行,如果不全为1,则所按下键必在此行,而且是在与零电平列线相交的交点上的那个键。
1与键盘、显示器的接口设计

+5V V
MCS51
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
74LS07
1008 +5V
8155
共阴极 显示器
COM5 COM4 COM3 COM2 COM1 COM0
PC1
12 11 10 9 8 7
+5V
PC0
65
74LS06
43
2
1 4.7k2
PA5
PA4
PA3
X1
输入口,列线接单片机的输出口,X0405 16 2
7 3
则可在单片机的控制下,先使
Y0 Y1 Y2 Y3
44行列式未编码键盘结构图
列线Y0为低电平,其它列线为高电平,读行线状态, 如所有行线均为高电平,则表明Y0这一列没有键闭合;如读 出的行线状态不全为高电平,则为低电平的行线和Y0相交的 键闭合。依次类推可获得与其它列线相交的闭合键。
键按下 闭合稳定 键释放
释放稳定
前沿抖动
后沿抖动
图27 按键时的抖动
消除键抖动可用硬件和软
件两种方法
Vcc ( +5V )
A
输
出
B
Vcc(+5V) RS触发器消抖电路
一、独立式未编码键盘接口及处理程序
独立式键盘是各按 键相互独立地接通一条 输入数据线 。
MCS51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 独立式未编码键盘
+5V
START: MOV MOV
K0: K1:
K7:
MOV JNB JNB JNB JNB JNB JNB JNB JNB JMP LJMP LJMP … LJMP
计算机应用课程设计报告-8279键盘显示接口电路设计及程序设计

计算机应用课程设计报告“计算机应用课程设计”任务书课题名:8279键盘显示接口电路设计及程序设计第一部分硬件部分一.1)8279键盘显示接口电路要求:1)掌握8279键盘显示接口电路的扩展方法2)熟悉8279的工作原理和编程方法3)编制8279动态显示和键盘扫描程序4)熟悉8086CPU与PC机的连接和应用5)键入数据同时在PC机和显示模块上显示6)画出硬件结构原理图7)操作系统DOS6.228) 调试程序9) VB6.0 版软件2)设计题目、要求硬件条件:计算机、AEDK8688ET实验装置一套。
其主要目的在于培养学生的可视化语言的实际应用能力,掌握面向对象,基于Windows98的32位环境基本可视化编程方法,尤其是运用可视化编程语言对输入/输出端口的输入/输出的操作,为面向输入/输出控制的集成监控软件的设计打下基础。
内容:1.实时监倥系统的设计:(VB、VC、Delphi任选)1.VB、VC或Delphi环境下对输入/输出的操作实践2.通过A/D器件实验数据的采集、校核、滤波。
3.实时数据刷新,曲线描绘及趋势显示。
2.串行通讯系统的设计:(VB、VC、Delphi任选)实现计算机硬件接口之间的串行通讯。
要求:1.学习并初步掌握可视化编程语言VB、VC、Delphi的编程方法;2.并开发一个具有可视化界面,具备外设端口输入/输出功能的程序;3.课程设计完成后,每人必须提交磁盘文件和一份设计说明书。
3)指导老师:黄运生、李志民4 )考核及成绩评定:由全体指导老师及研究生师兄于最后一次上机(2005年1月15日)对每位同学的设计结果逐个观看演示、考核、并将相关文件及源文件一并交于指定文件夹。
汇编语言是一种运行速度最快,能使用所有机器特殊硬件功能的语言。
对速度要求很高的程序,如实时响应处理,图形图象处理等都离不开汇编语言。
目前在计算机系统中,无论是操作系统、编译系统、图形处理系统及大量应用系统中都还不能完全离开汇编语言编制的程序模块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河北科技大学 《接口技术》课程设计报告
学生姓名: 学 号: 专业班级: 课程名称: 学年学期: 2 0 —2 0 学年第 学期
指导教师: 2 0 年 月 课程设计成绩评定表 学生姓名 学 号 成绩 专业班级 起止时间
设计题目
验 收 内 容
课程设计小组验收结果: 硬件设计:优秀□ 良好□ 中等□ 及格□ 需努力□ 程序设计:优秀□ 良好□ 中等□ 及格□ 需努力□ 实验结果:优秀□ 良好□ 中等□ 及格□ 需努力□
课程设计个人验收结果: 操作能力:优秀□ 良好□ 中等□ 及格□ 需努力□ 软件理解:优秀□ 良好□ 中等□ 及格□ 需努力□ 硬件理解:优秀□ 良好□ 中等□ 及格□ 需努力□
指导教师: 年 月 日 1
目 录 一、设计题目:--------------------------------------------------------------------------------------------- 2 二、设计目的:--------------------------------------------------------------------------------------------- 2 三、设计原理及方案: ----------------------------------------------------------------------------------- 2 1、实验电路图 ---------------------------------------------------------------------------------------- 2 2、实验框图 ------------------------------------------------------------------------------------------- 3 3、各功能实现方案 ---------------------------------------------------------------------------------- 4 4、实验程序 ------------------------------------------------------------------------------------------- 4 四、实验方法 ------------------------------------------------------------------------------------------------ 9 1、实验电路测试 ------------------------------------------------------------------------------------- 9 2、软件测试 ------------------------------------------------------------------------------------------- 9 五、实验结果 ------------------------------------------------------------------------------------------------ 9 六、改进意见及建议 -------------------------------------------------------------------------------------- 9 七、设计体会 ------------------------------------------------------------------------------------------------ 9 2
一、设计题目: 实现特定功能的键盘及LED显示。 二、设计目的:
1、掌握键盘和显示器的接口方法和编程方法。 2、掌握键盘扫描和LED八段码显示器的工作原理。
三、设计原理及方案:
1、实验电路图 3 说明:使用PC机与伟福lab8000实验箱连接起来,安装好相应驱动,做好接线分析,由于lab8000实验箱已经将部分电路接线内置,所以接线仅需要将KEY/LED_CS选通端口与CS0相连即可。
2、实验框图
开始 显示缓冲区初始化 LED显示
读取键值 键值转换为显示数据
有键输入? 是
否
主程序框图 是 是 否
开始 输出列扫描信号 列扫描信号移位
该列有键输入? 读入行信号
返回 6列扫描完?
初始化地址参数
读键输入子程序框图(接下页) 4
(接上页) 3、各功能实现方案 (1)功能1:按1键显示年 当读取到寄存器AL=02H时,说明按键为1号键。关于显示年份,首先定义一个显示缓冲区,用于存储表示年份的数字。然后依次读取其值,再显示到数码管上。 (2)功能2:按2显示月日 当读取到寄存器AL=0AH时,说明按键为2号键。显示月日方法和显示年份一样,首先定义一个显示缓冲区,用于存储表示月日的数字。然后依次读取其值,再显示与数码管上。 (3)功能3:按3显示GOOD 将G,O,O,D分别以七段代码6FH,3FH,3FH,5EH代替,以显示GOOD字样。然后清空LED数码管的显示,通过延时,让GOOD字样显示与数码管。 (4)功能4:按4键数码管由左到右8字循环显示 当8279扫描寄存器AL=01H时,说明按键为4号键。通过设置循环及延迟及上述相似的方法显示出指定效果。
4、实验程序 OUTBIT equ 08002h ; 位控制口 OUTSEG equ 08004h ; 段控制口 IN_KEY equ 08001h ; 键盘读入口
data segment LEDBuf db 6 dup(?) ; 显示缓冲 Num db 1 dup(?) ; 显示的数据 DelayT db 1 dup(?) LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
KeyTable: ; 键码定义 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07h data ends
按照行列计算键值 查表得键码 等待按键释放 返回 5 code segment assume cs:code, ds:data
Delay proc near push ax ; 延时子程序 push cx
mov al, 0 mov cx,ax loop $
pop cx pop ax ret Delay endp
Delay1 proc near push ax ; 延时子程序 push cx
mov al, 0 mov cx,38000 loop $
pop cx pop ax ret Delay1 endp
DisplayLED proc near mov bx, offset LEDBuf mov cl, 6 ; 共6个八段管 mov ah, 00100000b ; 从左边开始显示 DLoop: mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 mov al, [bx] mov dx, OUTSEG out dx,al
mov dx, OUTBIT mov al, ah out dx, al ; 显示一位八段管
push ax 6
mov ah, 1 call Delay pop ax
shr ah, 1 inc bx dec cl jnz DLoop
mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 ret DisplayLED endp
TestKey proc near mov dx, OUTBIT mov al, 0 out dx, al ; 输出线置为0 mov dx, IN_KEY in al, dx ; 读入键状态
not al and al, 0fh ; 高四位不用 ret TestKey endp
GetKey proc near mov ch, 00100000b mov cl, 6 KLoop: mov dx, OUTBIT mov al, ch ; 找出键所在列 not al out dx, al shr ch, 1
mov dx, IN_KEY in al, dx not al and al, 0fh jne Goon_ ; 该列有键入 dec cl jnz KLoop