8255扫描键盘
用8255实现的键盘扫描程序
DATA SEGMENTPA DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FHPCFE DW 0030H,0031H,0032H,0033H,0034H,0035H,4633H,4634H PCFD DW 0036H,0037H,0038H,0039H,0041H,0042HPCFB DW 0043H,0044H,0045H,0046H,4631H,4632HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,213H ;A口方式0,输入,C口方式0,输出MOV AL,10010000BOUT DX,AL;键盘扫描程序S1: MOV AL,0FEHMOV BL,AL ;BL保存C口值MOV CX,3S2: MOV DX,212HOUT DX,ALMOV DX,210HIN AL,DX ;读A口CMP AL,0FFHJNZ S3CALL DELAY6ROL BL,1MOV AL,BLLOOP S2JMP S1S3: CALL DELAY12 ;有键按下,则进行防抖动检测MOV AH,AL ;AH为第一次读的A口值IN AL,DX ;在PCi不变的情况下,重新读A口CMP AL,AHJNZ S1 ;两次所读A口不同,则为抖动,重新扫描MOV DI,OFFSET PAMOV SI,OFFSET PCFECMP BL,0FEHJZ S4MOV SI,OFFSET PCFDCMP BL,0FDHJZ S4MOV SI,OFFSET PCFBS4: MOV CX,8L: CMP AL,[DI]JZ S5INC DILOOP LJMP S1 ;未找到键码S5: MOV BX,8SUB BX,CXADD BX,BXADD SI,BXMOV BX,[SI] ;得到键值S6: IN AL,DX ;读A口,判断键是否释放CMP AL,0FFHJNZ S6CMP BH,00H ;显示JZ S7MOV DL,BHMOV AH,2INT 21HS7: MOV DL,BLMOV AH,2INT 21HCMP BX,46F4HJNZ S1MOV AH,4CH ;返回DOSINT 21HDELAY6 PROC NEAR ;延时1PUSH CXPUSH BXMOV CX,32000LOOP1: MOV BX,10000LOOP2: DEC BXCMP BX,0JNZ LOOP2LOOP LOOP1POP BXPOP CXRETDELAY6 ENDP ;延时2DELAY12 PROC NEARPUSH CXPUSH BXMOV CX,32000 LOOP3: MOV BX,20000 LOOP4: DEC BXCMP BX,0JNZ LOOP4LOOP LOOP3POP BXPOP CXRETDELAY12 ENDPCODE ENDSEND START。
8255C键盘显示器程序
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O 口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C 口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:(1)数据总线DB:编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:片选信号、复位信号RST、写信号、读信号。
当CPU 要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
2)与外设接口部分根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
各通道的引脚编号如下:(1)A口:编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
(2)B口:编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
(3)C口:编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
8255扫描键盘、显示实验
实验九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及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。
实验四 8255键盘及显示接口实验
实验四 8255键盘及显示接口实验一、实验目的了解键盘扫描及数码显示的基本原理,熟悉8255的编程/二、实验设备PC机一台,TD-PITE实验装置一套。
三、实验内容将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。
键盘采用4×4键盘,每个数码管显示值可为0-F共16个数,。
实验具体内容如下:将键盘进行编号,记作0—F,当按下一个键时,将该键对应的编号在下一个数码管上显示出来,再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。
实验内容:将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。
键盘采用4×4键盘,每个数码管显示值可为0~F共16个数。
实验具体内容如下:将键盘进行编号,记作0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。
8255键盘及显示实验参考接线图如图1所示。
键盘及数码管显示单元电路图如图4-1 所示。
图4-2 8255 键盘扫描及数码管显示实验线路图功能描述: 键盘及数码管显示实验,通过8255控制。
8255的B口控制数码管的段显示,A口控制键盘列扫描及数码管的位驱动,C口控制键盘的行扫描。
按下按键,该按键对应的位置将按顺序显示在数码管上。
实验程序: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 ;L4KCODE: ADD AL,CLCALL PUTBUFPUSH AXKON: CALL DISCALL CLEARCALL CCSCANJNZ KONPOP AXNEXT: INC CLMOV AL,CHTEST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUMKERR: JMP BEGIN CCSCAN: 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,3005HGOBACK: RETCODE ENDSEND START实验步骤:1. 按图4-1连接线路图;2. 编写实验程序,检查无误后编译、连接并装入系统;3. 运行程序,按下按键,观察数码管的显示,验证程序功能。
8255LCD 动态显示4X4键盘
南京邮电大学通达学院课程设计实验报告实验名称基于8255的LCD显示的动态显示器设计班级 080061 学号 08006129 姓名 _ 卓晓寒 _ _ ______ 指导老师 ___ 林建中 _____ ______ 开课时间 2011/2012学年,第一学期 _基于8255的LCD动态显示器设计一、设计要求能够学会利用Proteus软件的MCS51单片机仿真学习,根据提供的参考工程,在Proteus平台自己重新设计实验电路所需要的电气原理图,并在此基础上编写相对应的程序,实现其功能,学习Proteus软件的使用,其中包括原理图器件的选取、原理图的电气连接、程序的编写编译以及运行,并能查出其错误等。
二、实验内容设计一基于8255的LCD动态显示器三、实验要求1.用数码管或LCD正常显示数字“12345678”。
2.通过按键可改变显示方式。
3.设计显示屏的动态效果,用10个按键,每键对应一种滚动技术。
另注,实验发挥部分:1.设计所有动作的联合效果。
2.设计二个变速按键,可多级改变滚动速度。
3.设计一台魔术电子种,采用自动变换,随机组合,数据每10秒变换一次。
动态显示格式:0.静止1.整体闪烁2.单字闪烁3.整体向前、向后滚动4.单字移动5.两边向中间压缩6.中间向两边扩张7.上下压缩8.文字上下滚动9.组合动作(每一字符执行上述一个动作,并同时运动)四、实验仪器及实验环境(1)586微型计算机系统(2)proteus仿真软件(3)MEDWIN软件(4)单片机开发系统五、设计思路根据实验给出的要求,我们选择了LM016LLCD进行动态显示。
并通过按键切换不同的功能,来达到分别显示各种要求的动态效果。
实验要求进行检控式LCD动态显示。
定时器T0作为每0.01秒加一的定时器;题目中的要求是用十种动态效果,由于本人对单片机研究肤浅加之有直接可以输入的p1端口。
故将监控调为八种功能,对应的分别为:0.静止1.整体闪烁2.单字闪烁3.整体向前、向后滚动4.单字移动5.两边向中间压缩6.中间向两边扩张7.上下压缩8.文字上下滚动9.组合动作(每一字符执行上述一个动作,并同时运动)六、实验过程本次课程设计是在理论课程的基础上,目的在于培养我们的动手能力,通过电路设计、理论计算、实际编程、调试、测试、分析查找故障,解决在实际设计中的问题,使设计好的电路能正常工作,并可能结合实际的实验板进行下载测试。
键盘扫描显示实验报告
一、实验目的1. 理解键盘扫描的基本原理,掌握键盘扫描的方法。
2. 掌握数码管显示的基本原理,实现键盘扫描信息的实时显示。
3. 熟悉8255并行接口芯片在键盘扫描和数码管显示中的应用。
二、实验原理1. 键盘扫描原理:键盘扫描是指通过硬件电路对键盘按键进行检测,并将按键信息转换为可识别的数字信号的过程。
本实验采用行列式键盘,通过扫描键盘的行线和列线,判断按键是否被按下。
2. 数码管显示原理:数码管是一种用来显示数字和字符的显示器,由多个发光二极管(LED)组成。
本实验采用七段数码管,通过控制各个段(A、B、C、D、E、F、G)的亮灭,显示相应的数字或字符。
3. 8255并行接口芯片:8255是一款通用的并行接口芯片,具有三个8位并行I/O口(PA、PB、PC),可用于键盘扫描和数码管显示的控制。
三、实验设备1. 实验平台:PC机、8255并行接口芯片、行列式键盘、七段数码管、面包板、导线等。
2. 软件环境:汇编语言编程软件、仿真软件等。
四、实验步骤1. 硬件连接:将8255并行接口芯片、行列式键盘、七段数码管连接到实验平台上,按照电路图进行连线。
2. 编写程序:使用汇编语言编写键盘扫描和数码管显示的程序。
(1)初始化8255并行接口芯片:设置PA口为输出端口,PB口为输出端口,PC口为输入端口。
(2)扫描键盘:通过PC口读取键盘的行线状态,判断是否有按键被按下。
若检测到按键被按下,读取对应的列线状态,确定按键的位置。
(3)数码管显示:根据按键的位置,控制数码管的段(A、B、C、D、E、F、G)的亮灭,显示相应的数字。
3. 仿真调试:使用仿真软件对程序进行调试,确保程序能够正确扫描键盘和显示数字。
五、实验结果与分析1. 实验结果:成功实现了键盘扫描和数码管显示的功能。
当按下键盘上的任意按键时,数码管上会显示对应的数字。
2. 分析:(1)键盘扫描部分:通过读取PC口的行线状态,判断是否有按键被按下。
当检测到按键被按下时,读取PB口的列线状态,确定按键的位置。
8255并行接口键盘实验
keybd_event('0',0x71, KEYEVENTF_KEYUP, 0);} } }
运行
结果
按键被弹起发送KEYEVENTF_KEYUP事件
调试
分析
和体
会
通过8255并行键盘接口实验,对课本上的知识有了更深刻的理解,掌握8255A的功能及方式0、1的实现,熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。通过现实中的操作,让我对现在所学的知识产生了更大的兴趣,为以后的进一步学习定下了良好的基础。
方式0是基本型输入/输出。这种方式和外设交换数据时,8255端口与外设之间不使用联络线。
方式1为选通型输入/输出。用这种方式和外界交换数据时,端口和外设之间要有联络信号。
方式2是双向数据传送,仅A口有这项功能。当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。2.、工作方式选择字
2、熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。
3、利用09H型中断设计一个自己的键盘中断服务程序,程序设计应考虑在
退出时不破坏原有的设置。
实验
内容
1、8255的工作方式
一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。
while(!(v_pGPIOReg﹥GPLR_x & GPIO_13)) {//扫描矩阵键盘,判断按键列位置
if(num==1)//第1次连发延时400 ms Sleep(400); else
课程设计(论文)-8255扫描键盘(4X4)显示设计
课程设计(论文)-8255扫描键盘(4X4)显示设计目录8255扫描键盘,4X4,显示:一、设计要求………………………………………… 1 二、设计目的………………………………………… 1 三、主要芯片及器件介绍…………………………… 1 四、电路原理图………………………………………5 五、编程方法................................................ 7 六、设计体会................................................ 10 七、参考文献 (10)1系别:电子电气工程系专业名称:电子信息工程班级:电子,3,班学生姓名:学号:20048602115指导教师:2006 年 8 月 29 日2一、设计要求利用可编程并行接口8255芯片与MCS-51单片机相连做一个有输入/输出的并行接口。
输入端口接4×4的键盘,输出端口接8个七段数码管,作为输出显示。
二、设计目的1(理解MCS-51单片机输入输出的原理及工作方式。
2(掌握8255的编程方法。
3(掌握利用8279实现编码式键盘的连接和编程方法。
4(掌握多个七段数码管按位显示的实现方法。
三、主要芯片及器件介绍1(可编程并行接口 82558255是8位通用可编程并行输入输出接口芯片,它具有很强的功能,在使用时可利用软件编程来指定完成它的功能。
1(8255的外部引线如图1:D0~D7:双向数据信号线。
用来传送数据和控制字。
RD:读信号线。
通常接系统总线的IOR。
:写信号线。
通常接系统总线的IOW。
WD:片选输入端,低电平有效。
CSA0 A1:口地址选择信号线。
8255内部有3个口(即A口,B口,C口)还有一个控制寄存器,他们即可由程序寻址。
A0 A1 上的不同编码可分别寻址上述3个口号一个控制寄存器,具体规定如下:A0 A1 选择0 0 A口0 1 B口1 0 C口1 1 控制寄存器图 1 8255管脚图A0 A1与一起决定8255的接口地址。
单片机实验报告(相当不错,有具体实验结果分析哦)
学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。
二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。
以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。
2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。
六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
微机原理键盘扫描及显示完整实验报
实验9键盘扫描及显示实验
实验时间2019年12月18日
实验类型■验证性□设计性□综合性
1.实验目的
了解键盘扫描及数码显示的基本原理,熟悉8255的编程。
2.实验内容及过程(主要内容、操作步骤)
将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。
键盘采用4X4键盘,每个数码管显示值可为0~F 共16个数。
实验具体内容如下:将键盘进行编号,记作0~F,当按下其中-一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。
3.测试数据及实验结果
4.实验分析及总结(主要考察内容)
通过本次实验,我理解了键盘扫描及数码显示的基本原理,通过理解分析程序,自己对程序进行了一些总结和修改,并进行了验证,进一步掌握了微机接口的学习方法。
教师评阅
评价指标:实验目的、操作步骤、设计、算法、程序结构、实验结果、实验分析、实验总结
1/ 1。
8255A的功能与结构
8255A的功能与结构8255A可编程外围设备接⼝(programmable perphheral interface,PPI)是⼀种通⽤的可编程并⾏I/O接⼝器件。
它可以作为Intel系列微处理器或其它系列微处理器的接⼝器件,可以将任何与TTL兼容的I/O设备与微处理器连接。
在与主频不⾼于8MHz的微处理器⼀起⼯作时,不需要插⼊等待周期。
它有24个可编程I/O引脚,分为两组,每组12个,可以以3种不同的操作⽅式⼯作。
它的每个I/O引脚可以提供2.5mA的吸⼊电流,最⼤4mA。
8255A常常⽤作键盘和打印机端⼝。
它的价格低廉,使⽤⽅便,得到了⼴泛的应⽤。
8255A的功能结构由图可得:(1)数据总线缓冲器D7~D0与系统数据总线相连,负责与CPU进⾏数据交换。
包括输⼊输出数据、控制字和状态字。
(2)读/写控制逻辑接收来⾃CPU的地址信息和控制信息。
(3)A组控制和B组控制这两组控制逻辑电路接收来⾃CPU的控制字,控制两组端⼝的⼯作⽅式及读/写操作。
A组控制端⼝A和端⼝C的⾼4位,B组控制端⼝B和端⼝C的低4位。
(4)端⼝A、B、C8255A有3个8位数据输⼊/输出端⼝:端⼝A、端⼝B和端⼝C,分别简称为A⼝、B⼝和C⼝。
它们对外的引线分别是PA7~PA0、PB7~PB0和PC7~PC0。
C⼝可分成两个4位的端⼝:C⼝⾼4位(PC7~PC4)和C⼝低4位(PC3~PC0)。
三个端⼝按组编程端⼝A和端⼝B都有⼀个8位数据输⼊锁存器和⼀个8位数据输出锁存/缓冲器。
端⼝C有⼀个8位数据输⼊缓冲器和⼀个8位数据输出锁存/缓冲器。
端⼝C可以按位操作。
8255A的引脚功能双列直插,40根引脚D7~D0:数据信号线CS:⽚选信号输⼊引脚,低电平有效RD:读信号输⼊引脚,低电平有效WR:写信号输⼊引脚,低电平有效RESET:复位信号输⼊引脚,⾼电平有效。
⽤于将8255A控制字寄存器清“0”,并将A、B、C⼝置成输⼊状态A1、A0:端⼝选择信号输⼊引脚8255A的⼯作⽅式8255A可以⽆条件⽅式、查询⽅式和中断⽅式完成CPU与外设的数据交换。
课程设计8255A键盘输入
课程设计说明书课题名称:微机原理设计题目:设计一个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。
8255A的应用
;读B口 ;取低4位 ;比较 ;按键未释放,则继续等待 ;后续处理
对于图6.10的电路,还可以采用反转法读取按键的扫描码,即在已辨别出有 键按下,要读取行和列的扫描码时,可重新设置8255A的工作方式字,使A 口为输入,B口为输出。然后将刚才B口读入的列值从B口输出,再从A口读 入行值。这样,从A口读入的值为行扫描码,
微型计算机接口技术
8255A的应用
1.1 8255A的应用举例 1.2 8255A在PC机中的应用
2
§1.1 8255A的应用举例
【例6-5】8255A作为矩阵键盘接口,工作于方式0,如图6.10所示。试编程读
取矩阵键盘的按键扫描码。 矩阵式键盘是非编码键盘的一种,指按键开关按行列排列,形成二维矩阵
8
§1.1 8255A的应用举例
从B口读入的值为列扫描码。根据上述方法,读者可以自行编写出程序,这 里略过。
【例6-6】 8255A作为打印机接口,工作于方式0,如图6.11所示。试编写程
序实现:CPU用查询方式向打印机输出26个英文字母。8255A的端口地址为 80H~86H。 打印的工作过程如下:当主机要向打印机输出字符时,先查询打印机忙信
PC6自动成为A口的控制信号,但由于PC7(OBFA)产生的信号不能满足打 印机STB选通端的要求,故不用PC7端,而用软件在PC0端产生一个负脉冲, 提供给打印机的STB端。另外,C口的PC3作为中断请求信号送到中断控制 器8259A的IR3端,对应的中断类型号为0BH。
8255输入输出知识要点
8255输入输出知识要点8255输入输出是指使用8255芯片进行输入和输出操作的技术。
8255芯片是一种通用输入输出设备,可用于控制和监测外部设备。
本文将介绍8255输入输出的原理、应用和特点。
一、8255芯片的原理8255芯片是一种具有三个8位双向并行端口的设备,分别称为PortA、PortB和PortC。
PortA和PortB可以用作输入端口或输出端口,而PortC的8位则用作控制信号。
通过对PortC的控制,可以实现输入输出的选择和控制。
8255芯片的输入和输出方式有两种:模式0和模式1。
模式0是将PortA和PortB分别设置为输入和输出端口,而模式1则是将PortA设置为输入端口,PortB设置为输出端口。
二、8255芯片的应用1. 控制外部设备:8255芯片可以与各种外部设备连接,如LED显示器、数码管、键盘等。
通过对PortA和PortB的输入输出控制,可以实现对外部设备的控制和监测。
2. 数据采集和传输:8255芯片可以将外部设备采集到的数据输入到计算机中,也可以将计算机处理后的数据输出到外部设备中。
这在工业自动化和科学实验中非常常见。
3. 并行通信:8255芯片可以作为并行通信接口的一部分,实现计算机和外部设备之间的高速数据传输。
4. 扩展IO端口:由于计算机的IO端口有限,当需要连接更多的外部设备时,可以使用8255芯片扩展IO端口,从而实现更多的输入输出功能。
三、8255芯片的特点1. 灵活性强:8255芯片可以根据需要配置为不同的输入输出模式,适应各种应用场景。
2. 高速传输:8255芯片支持高速数据传输,可以满足对数据传输速度要求较高的应用。
3. 兼容性好:8255芯片与多种外部设备兼容,可以与各种通信协议和设备进行连接。
4. 易于编程:8255芯片的控制信号可以通过编程来实现,编程语言可以是汇编语言或高级语言。
5. 成本低廉:8255芯片是一种低成本的通用IO设备,适用于大规模生产和广泛应用。
键盘发展(XT、AT、PS2)
最早的个人计算机的键盘随着IBM在1981年正式发表IBM-PC以及随后的PC/XT而一起出现了,那是一个只有83个键的小型键盘,我们不妨把它叫做XT键盘。
XT键盘使用一种简单的串行协议和主机通讯。
最初的设计所有的通讯都是单向的,所以XT键盘只能发送数据到主机,却不能从主机接收数据。
XT键盘使用5-pin DIN接头,也就是我们后来俗称大头的,流行于AT结构主板之上的接口。
有一点必须注意的是,大头口和现在的PS2口仅仅是样子上的不同,在物理的电气特性上,两者完全一样。
也就是说,可以很容易的在这两种接口之中转换。
很快,在1984年,IBM又给我们带来了全新的键盘,那就是伴随着IBM PC/AT一起发表的AT键盘。
AT是Advanced Technology(高级技术)的意思。
当时看来,配备了Intel 最新的286处理器的AT计算机简直就是天上来的东西,这样的好东西自然需要一块全新的键盘,于是IBM设计了有AT键盘。
AT键盘是全新的设计,这首先表现在它开始支持主机与键盘之间的双向通讯,主机现在有8条命令可以发往键盘,并得到键盘的回应。
其次,AT键盘使用另一种扫描码,但这种设计带来了兼容性的问题:AT扫描码和过去的XT扫描码完全不同,许多软件(主要是操作系统和BIOS)将无法正常的工作在新系统上。
为此,IBM屏弃了XT主机上使用的8255键盘控制芯片,转而使用一片MCU(微控制器)8042来作为新的键盘控制器,通过给8042编程的方式,从而在8042上完成AT扫描码到XT 扫描码的转换。
这是一个重大的改进,并且相当的影响了后来的设计。
直到今天,虽然我们早已不在使用8042,但是所有的新发表PC芯片组都保持了与最初的8042的兼容性。
也正式在AT键盘上,出现了101键的设计,这种设计我们今天已经很熟悉了。
接着在1987年,IBM正式发表了PC/PS2系统。
按照之前的惯例,又一款新的键盘推出了,这已经是我们今日所使用的键盘原型,这就是PS2键盘。
单片机4X4键盘扫描和显示课程设计
单⽚机4X4键盘扫描和显⽰课程设计⼆、设计内容1、本设计利⽤各种器件设计,并利⽤原理图将8255单元与键盘及数码管显⽰单元连接,扫描键盘输⼊,最后将扫描结果送⼊数码管显⽰。
键盘采⽤4*4键盘,每个数码管可以显⽰0-F共16个数。
将键盘编号,记作0-F,当没按下其中⼀个键时,将该按键对应的编号在⼀个数码管上显⽰出来,当在按下⼀个键时,便将这个按键的编号在下⼀个数码管上显⽰,数码管上可以显⽰最近6次按下的按键编号。
设计并实现⼀4×4键盘的接⼝,并在两个数码管上显⽰键盘所在的⾏与列。
三、问题分析及⽅案的提出4×4键盘的每个按键均和单⽚机的P1⼝的两条相连。
若没有按键按下时,单⽚机P1⼝读得的引脚电平为“1”;若某⼀按键被按下,则该键所对应的端⼝线变为地电平。
单⽚机定时对P1⼝进⾏程序查询,即可发现键盘上是否有按键按下以及哪个按键被按下。
实现4×4键盘的接⼝需要⽤到单⽚机并编写相应的程序来识别键盘的⼗六个按键中哪个按键被按下。
因为此题⽬还要求将被按下的按键显⽰出来,因此可以⽤两个数码管来分别显⽰被按下的按键的⾏与列表⽰任意⼀个⼗六进制数)分别表⽰键盘的第⼆⾏、第三⾏、第四⾏;0xXE、0xXD、0xXB、0xX7(X表⽰任意⼀个⼗六进制数)则分别表⽰键盘的第⼀列、第⼆列、第三列和第四列。
例如0xD7是键盘的第⼆⾏第四列的按键对于数码管的连接,采⽤了共阳极的接法,其下拉电阻应保证芯⽚不会因为电流过⼤⽽烧坏。
五、电路设计及功能说明4×4键盘的⼗六个按键分成四⾏四列分别于P1端⼝的⼋条I/O数据线相连;两个七段数码管分别与单⽚机的P0⼝和P2⼝的低七位I/O数据线相连。
数码管采⽤共阳极的接法,所以需要下拉电阻来分流。
结合软件程序,即可实现4×4键盘的接⼝及显⽰的设计。
当按下键盘其中的⼀个按键时,数码管上会显⽰出该按键在4×4键盘上的⾏值和列值。
所以实现了数码管显⽰按键位置的功能四、设计思路及原因对于4×4键盘,共有⼗六个按键。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九8255扫描键盘、显示实验
一.实验要求
利用8255可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在由8279控制的七段数码管上。
8255PA口做键盘输入线,P B口作扫描线。
二.实验目的
1.掌握8255编程方法。
2.掌握扫描键盘和显示的编程方法。
三.实验电路及连线
CS8255接8500H,则命令字地址为8506H,PA口地址为8500H,P B口地址为8502H,PC口地址为8504H。
CS8279已固定接至8700H,则8279的状态口地址为8701H; 8279的数据口地址为8700H;
○29模块中的十个短路套都套在8255侧。
四.实验说明
在PA 口与P B 口组成的64点阵列上,把按键接在不同的点上,将得到不同的键码,本实验采用8×2的阵列,共可按16个键。
显示部分由8279控制,由7407驱动8位数码管显示。
五.
实验框图
入口
扫描第一行
有键按下
扫描第二行有键按下
返回计算键值
换算显示码
返回
N
无键标志Y
N
Y
P55KD.ASM 主程序框图 读键显示部分框图
程序
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 ;当前显示位置 KEYV AL EQU 09H ;读到的键码 ORG 0000H LJMP START ORG 0040H
START:
MOV SP ,#60H
LCALL DELAY ;延时
MOV DISPTR,#30H ;显示缓冲区头指针 MOV DPTR,#D8255
MOV A,#90H ;置8255状态
;方式0,PB,PC 口输出,PA 口输入
MOV DPTR,#Z8279 ;置8279命令字
MOV A,#0D3H
MOVX @DPTR,A;清LED显示
MOV A,#00H
MOVX @DPTR,A
MOV A,#38H
MOVX @DPTR,A
MOV A,#0D1H
KB_DIS:
LCALL RD_KB ;读键盘
MOV A,#0FFH
CJNE A,KEYV AL,DISBUF ;判读到键
SJMP KB_DIS ;没有则继续读键DISBUF:
LCALL DISP;把键移入显存
LCALL DELAY;延时消抖
LCALL DELAY
SJMP KB_DIS
DISP: ;显存依次前移
MOV R1,#31H ;在最后加入新键值MOVE:
MOV A,@R1
DEC R1
MOV @R1,A
INC R1
INC R1
CJNE R1,#38H,MOVE
MOV 37H,KEYV AL
MOV KEYV AL,#0FFH
MOV DPTR,#Z8279
MOV A,#90H
MOVX @DPTR,A
MOV R0,#08H
MOV R1,#30H
MOV DPTR,#D8279
LP: MOV A,@R1
MOVX @DPTR,A
INC R1
DJNZ R0,LP
RET
RD_KB: ;键盘扫描
MOV A,#02H ;扫描第一行
MOV DPTR,#D8255B
MOV DPTR,#D8255A
MOVX A,@DPTR
MOV R1,#00H
CJNE A,#0FFH,KEYCAL ;判键是否按下
MOV A,#01H ;扫描第二行
MOV DPTR,#D8255B
MOVX @DPTR,A
MOV DPTR,#D8255A
MOVX A,@DPTR
MOV R1,#08H
CJNE A,#0FFH,KEYCAL
SJMP NOKEY;无键按下
KEYCAL: ;计算键码
MOV R0,#08H
SHIFT:
RRC A
JNC CALC
INC R1
DJNZ R0,SHIFT
CALC: ;换算显示码
MOV DPTR,#DL_DA T
MOV A,R1
MOVC A,@A+DPTR
MOV KEYV AL,A
RET
NOKEY: MOV KEYV AL,#0FFH ;返回无键标志
RET
DELAY: MOV R0,#0H ;延时子程序
DELAY1: MOV R1,#0H
DJNZ R1,$
DJNZ R0,DELAY1
RET
DL_DA T: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,F
END。