课程设计8255A键盘输入.
- 格式:doc
- 大小:862.50 KB
- 文档页数:13
实验三开关量输入与显示
一、实验要求
编写程序,通过8255的A口读取开关的状态,并在C口所连接的LED灯上显示出来。
二、实验目的
通过使8255读取开关量,进一步掌握8255的编程方法。
三、连接图
图1
四、实验程序框图
五实验过程及步骤
1 按实验要求连接线,将K1~K8连PA0~PA7,PC0~PC7连DL1~DL8,CS连200~207H。
连线结果如上图1所示。
2 对8255进行初始化:方式控制字为90h
3 读入A口状态:
mov dx,200h
in al,dx
4 写入C口
not al
mov dx,202h
out dx,al
5延迟代码段
mov cx,0fffh
lop:loop lop ;延迟,便于观察实验现象
6 运行程序,观察实验结果。
并改变开关的状态,再运行,观察不同开关状态下,LED灯的亮灭情况。
六实验结果
开关打开,相应的LED灯会亮;开关关闭,相应的LED会熄灭。
实验源代码
code segment
assume cs:code
start:
mov dx,203h;对8255进行初始化
mov al,90h
out dx,al
gg:
mov dx,200h ;写入A口
in al,dx
not al
mov dx,202h ;从C口输出
out dx,al
mov cx,0fffh
lop:loop lop ;延迟,便于观察实验现象
jmp gg
code ends
end start。
8255a课程设计一、课程目标知识目标:1. 让学生掌握8255A可编程并行接口芯片的基本工作原理和应用方法。
2. 使学生了解8255A的内部结构,掌握其控制字的作用及设置方法。
3. 让学生掌握8255A与微处理器之间的数据传输方式。
技能目标:1. 培养学生运用8255A进行并行接口设计的实际操作能力。
2. 培养学生分析、解决8255A接口电路中存在的问题,提高故障排查能力。
情感态度价值观目标:1. 培养学生对计算机硬件接口技术的学习兴趣,激发他们的求知欲。
2. 培养学生具备团队协作、共同探讨问题的良好习惯,提高沟通表达能力。
3. 使学生认识到计算机硬件接口技术在现实生活中的应用价值,增强实践意识。
分析课程性质、学生特点和教学要求,将课程目标分解为以下具体学习成果:1. 学生能够描述8255A的基本工作原理,并解释其内部结构。
2. 学生能够正确编写8255A的控制字,完成接口电路设计。
3. 学生能够使用8255A实现与微处理器之间的数据传输,完成实际操作。
4. 学生能够分析8255A接口电路中可能出现的故障,并提出解决方案。
5. 学生在课程学习过程中,展现出积极的学习态度,主动参与团队讨论,提高沟通表达能力。
二、教学内容本节教学内容围绕8255A可编程并行接口芯片展开,依据课程目标,选择以下内容:1. 8255A芯片的基本原理:包括内部结构、工作模式、控制字设置等。
- 教材章节:第二章第五节2. 8255A接口电路设计:介绍如何利用8255A进行并行接口设计,包括数据传输、接口连接等。
- 教材章节:第二章第六节3. 8255A与微处理器的连接:讲解8255A与微处理器之间的数据传输方式,包括I/O地址译码、数据线连接等。
- 教材章节:第二章第七节4. 8255A应用实例:通过实际案例,使学生了解8255A在计算机硬件系统中的应用。
- 教材章节:第二章第八节5. 故障分析与排查:教授如何分析、解决8255A接口电路中可能出现的故障。
课程设计8255键盘输入一、课程目标知识目标:1. 理解并掌握8255键盘输入的基本原理及其在计算机系统中的应用;2. 学习并记忆8255键盘输入的相关概念,如I/O端口、中断处理等;3. 了解8255键盘输入编程的基本流程和关键步骤。
技能目标:1. 能够正确连接并配置8255键盘输入电路;2. 能够编写简单的8255键盘输入程序,实现数据接收和处理;3. 能够运用所学知识解决实际问题,如设计简单的键盘输入应用案例。
情感态度价值观目标:1. 培养学生对计算机硬件和接口技术的兴趣,激发探索精神;2. 培养学生的团队协作意识和沟通能力,提高问题解决能力;3. 引导学生认识到技术发展对社会进步的重要性,增强学生的社会责任感。
分析课程性质、学生特点和教学要求:本课程为计算机硬件接口技术课程的一部分,适用于高年级学生。
学生已具备一定的计算机硬件知识和编程基础,具有较强的动手能力和逻辑思维能力。
本课程旨在让学生深入了解8255键盘输入原理,掌握相关技术,提高实际应用能力。
课程目标分解为具体学习成果:1. 知识目标:学生能够解释8255键盘输入原理,列出相关概念,并描述编程流程;2. 技能目标:学生能够独立完成8255键盘输入电路的搭建和编程,实现基本功能;3. 情感态度价值观目标:学生在课程学习过程中表现出积极的学习态度,主动参与团队讨论和协作,关注技术发展对社会的影响。
二、教学内容1. 8255键盘输入原理及特性- 介绍8255芯片的基本功能和工作原理- 分析8255键盘输入接口的电路连接方法- 讲解8255键盘输入的中断处理过程2. 8255键盘输入编程- 梳理编程基本流程,包括初始化、中断处理和数据处理- 详解关键编程步骤,如I/O端口操作、中断向量设置等- 分析典型编程案例,帮助学生理解并掌握编程方法3. 8255键盘输入应用实践- 设计简单的键盘输入应用案例,如数字输入、字符输入等- 引导学生动手实践,搭建电路、编写程序并调试- 分组讨论,分享实践经验,提高学生的问题解决能力教学大纲安排与进度:1. 第1周:8255键盘输入原理及特性2. 第2周:8255键盘输入编程3. 第3周:8255键盘输入应用实践教材章节及内容:第1章 计算机硬件接口技术基础- 1.3 8255键盘输入原理及特性第2章 8255键盘输入编程- 2.1 编程基本流程- 2.2 关键编程步骤- 2.3 典型编程案例第3章 8255键盘输入应用实践- 3.1 应用案例设计- 3.2 动手实践- 3.3 经验分享与讨论教学内容确保科学性和系统性,结合课程目标,注重理论与实践相结合,使学生能够掌握8255键盘输入技术,提高实际应用能力。
可编程并行接口实验(8255A方式1)实验目的掌握8255A工作方式1的使用方法;进一步掌握编写中断服务程序的方法。
实验内容1.8255A选通行输出实验,具体要求:(1)设置8255A的A 口工作在方式1输出;(2)每按一次单脉冲按钮产生一个正脉冲使8255A产生一次中断;(3)设计中断服务程序:依次输出01H,02H,04H,08H,10H,20H,40H,80H。
使L0—L7依次发光。
2.8255A选通行输入实验,具体要求:(1)设置8255A的A 口工作在方式1输入;(2)每按一次单脉冲按钮产生一个正脉冲使8255A产生一次中断;(3)设计中断服务程序:读取开关表示的ASCII码,在屏幕上显示其对应的字符。
实验连线1实验内容1连线(1)8255A芯片的A口PA7~PA0连发光二极管L7~L0;(2)PC3连接IRQ;(3)PC6连接单脉冲发生器。
2实验内容2连线(1)8255A芯片的A口PA7~PA0连逻辑开关K7~K0;(2)PC3连接IRQ;(3)PC4连接单脉冲发生。
流程图这是试验2的流程图,实验1相似实验代码试验2的代码是在试验1的代码基础上稍作改动,这里只列出试验2的代码:ASSUME CS:CODE,DS:DATADATA SEGMENT ;数据段定义IOPORT EQU 5400H-280HIOPORT_CENT EQU 5000H ;9054芯片的I/O起始地址MASKZ EQU 0FBH ;8259A主片屏蔽码MASKC EQU 0F7H ;8259A从片屏蔽码INTNUM DW 0 ;保存ES的定义量INTNUMSE DW 0 ;保存BX的定义量DA TA ENDSSTACK1 SEGMENT STACK ‘STACK1’DB 50 DUP(?)STACK1 ENDSCODE SEGMENT ;代码段定义START:MOV DX,IOPORT+28BH ;根据实验连线,此次实验控制口为540BH MOV AL,0B0H ; 设置8255A的控制关键字(设置成方式1,端口A输入) OUT DX,ALCLI ;关中断MOV DX,IOPORT_CENT+68H ;设置9054芯片使能寄存器IN AX,DXOR AX,0900HOUT DX,AX;得到原中断向量并保存MOV AH,35H ;取中段向量MOV AL,73H ;针对本台计算机查表得出中断类型号为73HINT 21HMOV INTNUMSE,BX ;保存BXMOV AX, ES ;保存ESMOV INTNUM, AX;设置新中断向量MOV AX,CSMOV DS,AXMOV DX,OFFSET INTPROC ;设置新的中断向量MOV AL,073HMOV AH,25HINT 21H;设置中断屏蔽寄存器IN AL,21H ;8259A主片的中断屏蔽寄存器端口地址为21HAND AL,MASKZ ;中断屏蔽寄存器中主片相应位置1,本实验中第三位置1 OUT 21H,ALIN AL,0A1H ;8259A从片的中断屏蔽寄存器端口地址为0A1HAND AL,MASKCOUT 0A1H,AL ;中断屏蔽寄存器中从片相应位置1,本实验中第四位置1 STI ;开中断MOV AL,00001001B ;设置PC4为1MOV DX,IOPORT+28BHOUT DX,ALOUTER:MOV AH,01H ;判断是否有任意键按下INT 16HJZ OUTER ;没有键按下程序重复MOV AX, INTNUM ;恢复原中断向量MOV DS,AXMOV DX, INTNUMSEMOV AL,073HMOV AH,25HINT 21H;恢复中断屏蔽寄存器IN AL,21HOR AL,04HOUT 21H,ALIN AL,0A1HOR AL,08HOUT 0A1H,ALMOV DX,IOPORT_CENT+68H ;关闭9054IN AX,DXOR AX,0F6FFHOUT DX,AXMOV AH,4CH ;有键按下,程序结束,返回DOS界面INT 21H;中断服务子程序INTPROC:PUSH AX ;寄存器入栈保护PUSH BXPUSH CXPUSH DXPUSH DSSTI ;开中断MOV CX,0FFFFHH: LOOP HMOV DX,IOPORT+288H ;A口输入IN AL,DXMOV DL,AL ;输出开关所对应的字符MOV AH,02HINT 21HMOV AL,20H ;发出EOI结束中断OUT 20H,ALOUT 0A0H,ALCLI ;关中断POP DS ;寄存器出栈POP DXPOP CXPOP BXPOP AXIRET ;中断返回CODE ENDSEND START结果描述试验1:每按一次单脉冲,L0~L7依次发光。
运用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。
8255接口键盘及显示综合设计实验(曹建文2009年10月10日)一、实验目的1、掌握8255的工作方式及应用编程。
2、自行设计、制作和连接基于8255并行接口的键盘及显示实验电路。
3、实现扫描式矩阵键盘的功能和作用。
二、实验设备PC机1台,TD-PIT实验台1台,实验元器件若干。
三、实验内容1、使用8255实现键盘按键和七段LED数码显示管显示功能。
2、根据实验要求自行设计实验线路图,制作和焊接实验电路板和实验元器件。
3、按照实验要求和实验电路图编写实验程序,使得按下不同的数字按键后数码管显示相应的数字值(4位数码管)。
4、按照实验要求设计和编写实验程序,实现普通计算器的加/减法功能。
四、实验原理1、8255结构及原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图-2所示。
图-1:8255内部结构及引脚图(a)工作方式控制字(b)c口按位置位/复位控制字图-2:8255控制字格式(1)8255的内部结构如图-1所示,8255的内部结构由以下4个部分组成:(1)输入/输出端口A、B、C 。
这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。
A口和B口是一个独立的8位I/O口。
C口可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。
(2)A组和B组控制电路。
这是两组根据CPU命令控制8255工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255的工作方式,也可以根据编程命令来对C口的指定位进行置位/复位的操作。
8255应用课程设计一、课程目标知识目标:1. 理解并掌握8255可编程并行接口芯片的基本工作原理及应用方法;2. 学习8255芯片在微机接口电路中的应用,并能结合具体实例进行分析;3. 掌握8255芯片与其他接口设备的连接方式,了解其接口特性。
技能目标:1. 能够正确运用8255芯片进行简单的接口电路设计,实现数据输入/输出功能;2. 学会利用8255芯片进行并行通信,具备实际操作和调试能力;3. 能够针对实际问题,运用所学知识进行接口电路设计和调试,提高解决问题的能力。
情感态度价值观目标:1. 培养学生对待科学技术的严谨态度,激发学生对电子技术的兴趣和热情;2. 培养学生的团队协作精神,学会与他人共同分析问题、解决问题;3. 增强学生的创新意识,鼓励学生勇于尝试,提高学生的实践能力。
课程性质:本课程为电子技术专业课程,以实践性为主,注重理论与实践相结合。
学生特点:学生已具备一定的电子技术基础,具有较强的学习能力和动手能力。
教学要求:教师应引导学生掌握8255芯片的基本原理和应用方法,注重培养学生的实践操作能力和创新能力。
在教学过程中,关注学生的学习进度,确保课程目标的实现。
通过课程学习,使学生能够将所学知识应用于实际问题的解决中。
二、教学内容本课程教学内容主要包括以下几部分:1. 8255可编程并行接口芯片基本原理:介绍8255芯片的结构、工作模式、控制字等基本概念,使学生掌握8255芯片的基本原理。
教材章节:第二章第五节“8255可编程并行接口芯片”2. 8255芯片的应用实例:分析8255芯片在微机接口电路中的应用,如键盘输入、LED显示等,帮助学生了解8255芯片在实际电路中的应用。
教材章节:第二章第六节“8255芯片的应用实例”3. 并行通信原理及接口设计:讲解并行通信的原理,以及8255芯片在并行通信中的应用,指导学生进行接口电路设计。
教材章节:第三章第一节“并行通信原理及接口设计”4. 8255芯片与其他接口设备的连接:分析8255芯片与其他接口设备的连接方法,如ADC、DAC等,拓展学生的知识面。
实验九8255扫描键盘、显示实验一.实验要求利用8255可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在由8279控制的七段数码管上。
8255PA口做键盘输入线,PB口作扫描线。
二.实验目的1.掌握8255编程方法。
2.掌握扫描键盘和显示的编程方法。
三.实验电路及连线CS8255接8500H,则命令字地址为8506H,PA口地址为8500H,PB口地址为8502H,PC口地址为8504H。
CS8279接8700H,则8279的状态口地址为8701H; 8279的数据口地址为8700H;模块中的十个短路套都套在8255侧。
四.实验说明在PA口与PB口组成的64点阵列上,把按键接在不同的点上,将得到不同的键码,本实验采用8×2的阵列,共可按16个键。
显示部分由8279控制,由7407驱动8位数码管显示。
五.实验程序框图主程序框图读键显示部分框图六.实验程序:D8255 EQU 8506H ;8255状态/数据口地址D8255A EQU 8500H ;8255 PA口地址D8255B EQU 8502H ;8255 PB口地址Z8279 EQU 8701H ;8279状态口地址D8279 EQU 8700H ;8279数据口地址DISPTR EQU 08H ;当前显示位置KEYVAL EQU 09H ;读到的键码ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL DELAY ;延时MOV DISPTR,#30H ;显示缓冲区头指针MOV DPTR,#D8255MOV A,#90H ;置8255状态;方式0,PB,PC口输出,PA口输入MOVX DPTR,AMOV DPTR,#Z8279 ;置8279命令字MOV A,#0D3HMOVX DPTR,A ;清LED显示MOV A,#00HMOVX DPTR,AMOV A,#38HMOVX DPTR,AMOV A,#0D1HKB_DIS:LCALL RD_KB ;读键盘MOV A,#0FFHCJNE A,KEYVAL,DISBUF ;判读到键SJMP KB_DIS ;没有则继续读键DISBUF:LCALL DISP ;把键移入显存LCALL DELAY ;延时消抖LCALL DELAYSJMP KB_DISDISP: ;显存依次前移MOV R1,#31H ;在最后加入新键值MOVE:MOV A,R1DEC R1MOV R1,AINC R1INC R1CJNE R1,#38H,MOVEMOV 37H,KEYVALMOV KEYVAL,#0FFHMOV DPTR,#Z8279MOV A,#90HMOVX DPTR,AMOV R0,#08HMOV R1,#30HMOV DPTR,#D8279LP: MOV A,R1MOVX DPTR,AINC R1DJNZ R0,LPRETRD_KB: ;键盘扫描MOV A,#02H ;扫描第一行MOV DPTR,#D8255BMOVX DPTR,AMOV DPTR,#D8255AMOVX A,DPTRMOV R1,#00HCJNE A,#0FFH,KEYCAL ;判键是否按下MOV A,#01H ;扫描第二行MOV DPTR,#D8255BMOVX DPTR,AMOV DPTR,#D8255AMOVX A,DPTRMOV R1,#08HCJNE A,#0FFH,KEYCALSJMP NOKEY ;无键按下KEYCAL: ;计算键码MOV R0,#08HSHIFT:RRC AJNC CALCINC R1DJNZ R0,SHIFTCALC: ;换算显示码MOV DPTR,#DL_DATMOV A,R1MOVC A,A+DPTRMOV KEYVAL,ARETNOKEY: MOV KEYVAL,#0FFH ;返回无键标志RETDELAY: MOV R0,#0H ;延时子程序DELAY1: MOV R1,#0HDJNZ R1,$DJNZ R0,DELAY1RETDL_DAT: 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,FEND实验十8279显示实验一.实验要求编制程序,利用8279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。
课程设计说明书课题名称:微机原理设计题目:设计一个16键的键盘系统专业班级:学生姓名:学号:目录第1章设计目的第2章设计原理与分析第3章所选元件清单第4章课程设计心得第1章课程设计目的1.了解键盘电路的工作原理。
本实验要求在实验台上,用并行接口实验卡PPI8255为PC机扩展可编程并行接口;利用实验卡上的8位拨动开关提供输入数据,用8个LED指示灯显示输出结果;用单脉冲按钮PI提供输入选通脉冲/STBA模拟输入设备送数,用单脉冲按钮PO提供输出应答脉冲/ACKA和/ACKB模拟输出设备取数。
2.掌握键盘接口电路的编程方法。
设计人机界面接口,要求在微机屏幕上动态地显示当前实验的内容和实验的结果,包括8255A的工作方式,输入的数据和输出的结果设计人机界面接口,要求在微机屏幕上,以菜单方式列出并行接口8255A原理实验的内容,并根据实验内容设置好工作方式选择跳线开关,用户可以通过键盘选择实验的内容。
方式08255为方式0、A口输入、B口输出,可用无条件传送方式控制输入/出。
方式1其它要求同方式0,改用查询方式控制输入/出,用中断方式也可以,通过读取C口的状态字来获取状态。
方式2使A口既能接受开关状态又能控制LED指示灯显示;要求先接收A口的开关数据,可用查询方式控制输入/出。
第2章设计原理与分析2.1、实验原理:1、识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
本实验例程采用的是行反转法。
行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。
然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。
这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。
2、程序设计时,要学会灵活地对8255A的各端口进行方式设置。
可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。
3、利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。
2.2、实验步骤:将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。
2.3、实验电路:图2-1实验电路图2.4、程序框图:图2-2程序框图2.5、程序接线图:键盘 RL10接 8255A PB0键盘 RL11接 8255A PB1键盘 RL12接 8255A PB2键盘 RL13接 8255A PB3键盘 RL14接 8255A PB4键盘 RL15接 8255A PB5键盘 RL16接 8255A PB6键盘 RL17接 8255A PB7键盘KA10接 8255A PA0键盘KA12接 8255A PA1键盘KA12接 8255A PA28键盘PC0 发光二极管L1键盘PC1 发光二极管 L2键盘PC2 发光二极管 L3键盘PC3 发光二极管 L4键盘PC4 发光二极管 L5键盘PC5 发光二极管 L6键盘PC6 发光二极管 L7键盘PC7 发光二极管 L88255A芯片的片选信号8255CS接CS02.6、参考程序:T8.ASMNAME t8 ;8255键盘实验PA EQU 0CFA0HPB EQU PA+1PC0 EQU PB+1PCTL EQU PC0+1CSEG AT 4000HLJMP STARTCSEG AT 4100HSTART: MOV 42H,#0FFH ;42H中放显示的字符码,初值为0FFH STA1: MOV DPTR,#PCTL ;设置控制字,ABC口工作于方式0;AC口输出而B口用于输入MOV A,#82HMOVX @DPTR,ALINE: MOV DPTR,#PC0 ;将字符码从C口输出显示MOV A,42HCPL AMOVX @DPTR,AMOV DPTR,#PA ;从A口输出全零到键盘的列线MOVX @DPTR,AMOV DPTR,#PB ;从B口读入键盘行线值MOVX A,@DPTRMOV 40H,A ;行线值存于40H中CPL A ;取反后如为全零;表示没有键闭合,继续扫描JZ LINEMOV R7,#10H ;有键按下,延时10MS去抖动DL0: MOV R6,#0FFHDL1: DJNZ R6,DL1DJNZ R7,DL0MOV DPTR,#PCTL ;重置控制字,让A为输入,BC为输出 MOV A,#90HMOVX @DPTR,AMOV A,40HMOV DPTR,#PB ;刚才读入的行线值取出从B口送出MOVX @DPTR,AMOV DPTR,#PA ;从A口读入列线值MOVX A,@DPTRMOV 41H,A ;列线值存于41H中CPL A ;取反后如为全零JZ STA1 ;表示没有键按下MOV DPTR,#TABLE ;TABLE表首地址送DPTRMOV R7,#18H ;R7中置计数值16MOV R6,#00H ;R6中放偏移量初值TT: MOVX A,@DPTR ;从表中取键码前半段字节,行线值与实 CJNE A,40H,NN1 ;际输入的行线值相等吗?不等转NN1 INC DPTR ;相等,指针指向后半字节,即列线值MOVX A,@DPTR ;列线值与实际输入的列线值CJNE A,41H,NN2 ;相等吗?不等转NN2MOV DPTR,#CHAR ;相等,CHAR表基址和R6中的偏移量 MOV A,R6 ;取出相应的字符码MOVC A,@A+DPTRMOV 42H,A ;字符码存于42HBBB: MOV DPTR,#PCTL ;重置控制字,让AC为输出,B为输入 MOV A,#82HMOVX @DPTR,AAAA: MOV A,42H ;将字符码从C口送到二极管显示MOV DPTR,#PC0CPL AMOVX @DPTR,AMOV DPTR,#PA ;判断按下的键是否释放CLR AMOVX @DPTR,AMOV DPTR,#PBMOVX A,@DPTRCPL AJNZ AAA ;没释放转AAAMOV R5,#2 ;已释放则延时0.2秒,减少总线负担DEL1: MOV R4,#200DEL2: MOV R3,#126DEL3: DJNZ R3,DEL3DJNZ R4,DEL2DJNZ R5,DEL1JMP START ;转STARTNN1: INC DPTR ;指针指向后半字节即列线值NN2: INC DPTR ;指针指向下一键码前半字节即行线值INC R6 ;CHAR表偏移量加一DJNZ R7,TT ;计数值减一,不为零则转TT继续查找JMP BBBTABLE:DW 0FE06H,0FD06H,0FB06H,0F706H;TABLE为键值表,每个键位占 DW 0BF06H,07F06H,0FE05H,0FD05H; 两个字节,第一个字节为行 DW 0EF05H,0DF05H,0BF05H,07F05H ;线值,第二个为列线值DW 0FB03H,0F703H,0EF03H,0DF03H;CHAR: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ;字符码表DB 0AH,0BH,0CH,0DH,0EH,0FH,10H,11H,12H,13HDB 14H,15H,16H,17HEND第3章所选元件清单3.1元件清单:表3-1元件清单原件数量电源座 17805 1IN4007 4100UF/16V 1按键932.768KHZ 112MHZ 11UF电容 5红色发光二极管 5绿色发光二级管 4数码管8DIP40 1DIP16 1DIP 8 2DIP20 19013 9IN4148 4 STC89C51或STC89C52 174HC244或74LS244 1MAX232 124CO2 110K排阻 4100电阻81K电阻92K 电阻 110K 电阻 2单排针 20.1UF电容 215PF电容 23.2 程序实际接线数码管的不同笔段的组合构成了不同字符的字形。
为了获得不同的字形,各笔段所加的电平也不同,因此各个字形所形成的编码是不一样的。
例如,对于共阳极数码管,如果要显示字符2,则笔段a、b、g、e、d发光,对应的引脚为低电平;其余各笔段不发光,对应的引脚为该电平。
所以字符2的字形编码为如 dp gfedcba=10100100B=A4H。
阴极数码管的字形编码与用阳极数码管的字形编码是逻辑“非”的关系。
根据上述编码方法可以得出数码管显示的字符与对应的字形编码的关系,如表3-2所示表3-2 数码表的字形编码表第4章课程设计心得通过这次单片机课设,我更加清晰的认识了到了单片机内的引脚。
单片机的40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。
⒈电源:⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;(用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。
但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v 之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。
)⒉时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。
⒊控制线:控制线共有4根,⒋ I/O线 :⑴80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
⑵P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)5.P3口第二功能P30 RXD 串行输入口、P31 TXD 串行输出口、P32 INT0 外部中断0(低电平有效)、P33 INT1 外部中断1(低电平有效)、P34 T0 定时计数器0 、P35 T1 定时计数器1 、P36 WR 外部数据存储器写选通(低电平有效)、P37 RD 外部数据存储器读选通(低电平。