运用8255设计的键盘及显示接口-实验报告(含接线图+源程序)

合集下载

实验四可编程并行接口(8255方式0)

实验四可编程并行接口(8255方式0)

物理与电子科学系实验报告 课程名称 微机原理与接口技术 实验班级 B11电子班 实验名称 实验四 可编程接口(一) (8255方式0) 学生姓名 学生学号

一、实验题目:可编程并行接口(8255方式0)

二、实验目的 掌握8255方式0的工作原理及使用方法。

三、实验内容 1、按下图连线。 2、编程从8255C口输入数据,再从A口输出.

四、程序流程图 五、源程序 ioport equ 0d400h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh io8255c equ ioport+28ah code segment assume cs:code start: mov dx,0ef0bh ;设8255为C口输入,A口输出 mov al,8bh out dx,al inout: mov dx,0ef2ah ;从C口输入一数据 in al,dx mov dx,0ef28h ;从A口输出刚才自C口 out dx,al ;所输入的数据 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则继续自C口输入,A口输出 mov ah,4ch ;否则返回DOS int 21h code ends end start

六、实验结果分析 按上述的代码执行,观察LED灯的状态,可以发现实验结果和预期的相同: 打开K0,关闭K1、K2、K3、K4、K5、K6、K7,L0亮; 打开K1,关闭K0、K2、K3、K4、K5、K6、K7,L1亮; 打开K2,关闭K0、K1、K3、K4、K5、K6、K7,L2亮; 打开K3,关闭K0、K1、K2、K4、K5、K6、K7,L3亮; 打开K4,关闭K0、K1、K2、K3、K5、K6、K7,L4亮; 打开K5,关闭K0、K1、K2、K3、K4、K6、K7,L5亮; 打开K6,关闭K0、K1、K2、K3、K4、K5、K7,L6亮; 打开K7,关闭K0、K1、K2、K3、K4、K5、K6,L7亮; 按任意键,退出该实验。

单片机可编程8255接口实验报告

单片机可编程8255接口实验报告

单片机可编程8255接口实验报告可编程8255接口实验报告㈠实验目的1.掌握可编程并行接口芯片的基本工作原理及其使用方,熟悉8255可编程并行I/O扩展接口。

2.掌握8255可编程并行I/O扩展接口方法,能够利用8255可编程并行接口芯片设计简单应用系统。

㈡实验器材1. G6W仿真器一台2. MCS-51实验板一台3. PC机一台4.电源一台㈢实验内容及要求1.声光报警器实验8255是可编程的通用并行输入输出扩展接口。

8255芯片的片选信号CS4 及口地址选择线AA0、AA1分别由8051的地址线提供。

8255的A口设置为输入数据端口,B口设置为输出数据端口,通过控制位操作控制字将C口某一位置位或复位,B口与发光二极管LED相连,C口与蜂鸣器相连,读取A 口数据,只要有一位为“1”,则点亮发光二极管LED(B口输出为低,LED 亮,反之,LED 灭),同时蜂鸣器响(若 C口某一位置1,蜂鸣器不响)。

2.交通灯控制实验通过并行接口8255实现十字路nb 口交通灯的模拟控制。

L6~L8与PC5~PC7相连,作为南北路口的交通灯,L1~L3与PC0~PC2相连,作为东西路口的交通等。

编程使六个灯按以下规律变化:南北路口的“绿”灯(L8)、东西路口的“红”灯(L1)同时亮30秒(要求有倒计时显示);南北路口的“黄”灯(L7)闪烁若干次,同时东西路口“红”灯(L1)继续亮;南北路口的“红”灯(L6)、东西路口的“绿”灯(L3)同时亮30秒(要求有倒计时显示);东西路口的“黄”灯(L2)闪烁若干次,南北路口的“红”灯(L6)继续亮;重复以上步骤。

㈣实验步骤1.连接8255芯片的片选信号CS4及口地址选择线AA0、AA1,并根据片选信号及口地址选择线确定8255的各I/O口地址和控制字寄存器的地址。

2.声光报警器实验的连线①8255的A口的8位根据需要接入高低电平。

②8255的B口中任一口与TEST相连,运行程序,即可观察L9发光二极管。

8255控制键盘与显示

8255控制键盘与显示

2011-2012学年第一学期电信学院计算机系实验报告课程名称微机原理及接口技术实验名称8255控制键盘与显示班级学号姓名一、实验目的1、掌握8255输入、输出编程方法。

2、掌握阵列键盘和数码管动态扫描显示的控制方法。

二、实验内容用8255可编程并行口做一个键盘、显示扫描实验,把按键输入的键值,显示在8255控制的七段数码管上。

8255 PB口做键盘的输入线,PC 口显示扫描线,PA口做显示数据线。

三、实验要求根据实验内容编写一个程序,并在实验仪器上调试和验证。

四、实验电路工作原理本实验需要用到CPU模块(F3区)、8255模块(C6区)、8279键盘与显示模块(E7区)。

8255键盘与显示电路原理图参见图。

CS_8255接8000H,则8255状态/命令口地址8003H,PA口地址为8000H,PB口地址为8001H。

五、实验步骤1)系统各跳线器处在初始设置状态,S11E和S12E红开关全部打到下方(OFF)。

2)用8位数据线对应连接8255模块的JD3C(PA口)、JD4C(PB 口)、JD5C(PC口)到8279模块的JD3E、JD2E、JD4E;用导线连接8255模块的CS_8255到地。

3)启动PC机,打开THGMW-51软件,输入源程序,并编译源程序。

变异无误后,下程序运行。

4)、在键盘上按任一单键,观察数码管的显示,数码管地位显示按键值。

六、程序及注释;//*********************************************************;文件名: 8255KD for MCU51;功能: 8255控制键盘显示实验;接线: 连接8279键盘显示模块的JD3E到8255模块的JD3C(PA口);; JD2E到8255模块的JD4C(PB口);; JD4E到8255模块的JD5C(PC口);; 用导线连接CPU模块的8000H到8255模块的CS_8255。

【VIP专享】微机接口实验报告-8255并口控制器实验 (1)-基本输入输出实验

【VIP专享】微机接口实验报告-8255并口控制器实验 (1)-基本输入输出实验

专业

指导老师
第2页


实验内容
广西大学实验报告
姓名 院

8255 并口控制器实验 (1) ——基本输入输出实验 指导老师
图 8-3 8255 并口应用实验(1)参ቤተ መጻሕፍቲ ባይዱ程序流程图
图 8-4 8255 并口应用实验(1)参考接线图
【汇编源程序】 CODE SEGMENT
6.培养学生观察、思考、对比及分析综合的能力。过程与方法1.通过观察蚯蚓教的学实难验点,线培形养动观物察和能环力节和动实物验的能主力要;特2征.通。过教对学观方察法到与的教现学象手分段析观与察讨法论、,实对验线法形、动分物组和讨环论节法动教特学征准的备概多括媒,体继课续件培、养活分蚯析蚓、、归硬纳纸、板综、合平的面思玻维璃能、力镊。子情、感烧态杯度、价水值教观1和.通过学理解的蛔1虫.过观适1、察于程3观阅 六蛔寄.内列察读 、虫生出蚯材 让标容生3根常蚓料 学本教活.了 据见身: 生,师的2、解 问的体巩鸟 总看活形作 用蛔 题线的固类 结雌动态业 手虫 自形练与 本雄学、三: 摸对 学动状习人 节蛔生结4、、收 一人 后物和同类 课虫活构请一蚯集 摸体 回并颜步关 重的动、学、蚓鸟 蚯的 答归色学系 点形教生生让在类 蚓危 问纳。习从 并状学理列学平的害 题线蚯四线人 归、意特出四生面体以形蚓、形类 纳大图点常、五观玻存 表及动的鸟请动文 本小引以见引、察璃现 ,预物身类 3学物明 节有言及的、导巩蚯上状 是防的体之生和历 课什根蚯环怎学固蚓和, 干感主是所列环史 学么据蚓节二样生练引牛鸟 燥染要否以举节揭 到不上适动、区回习导皮类 还的特分分蚯动晓 的同节于物让分答。学纸减 是方征节布蚓物起 一,课穴并学蚯课生上少 湿法。?广的教, 些体所居归在生蚓前回运的 润;4泛益学鸟色生纳.靠物完的问答动原 的4蛔,处目类 习和活环.近在成前题蚯的因 ?了虫以。标就 生体的节身其实端并蚓快及 触解寄上知同 物表内特动体结验和总利的慢我 摸蚯生适识人 学有容点物前构并后结用生一国 蚯蚓在于与类 的什,的端中思端线问活样的 蚓人飞技有 基么引进主的的考?形题环吗十 体生行能着 本特出要几变以动,境?大 节活的1密 方征本“特节化下物.让并为珍 近习会形理切 法。课生征有以问的小学引什稀 腹性态解的 。2课物。什游题主.结生出么鸟 面和起结蛔关观题体么戏:要利明蚯?类 处适哪构虫系察:的特的特用确蚓等 ,于些特适。蛔章形殊形征板,这资 是穴疾点于可虫我态结式。书生种料 光居病是寄的们结构,五小物典, 滑生?重生鸟内学构,学、结的型以 还活5要生类部习与.其习巩鸟结的爱 是如原活生结了功颜消固类构线鸟 粗形何因的存构腔能色化练适特形护 糙态预之结的,肠相是系习于点动鸟 ?、防一构现你动适否统。飞都物为结蛔。和状认物应与的行是。主构虫课生却为和”其结的与题、病本理不蛔扁的他构特环以生?8特乐虫形观部特8征境小理三页点观的动位点梳相组等、这;,哪物教相,理适为方引些2鸟,育同师.知应单面导鸟掌类结了;?生识的位学你握日构解2互.。办特生认线益特了通动手征观识形减点它过,抄;察吗动少是们理生报5蛔?物,与的解.参一了虫它和有寄主蛔与份解结们环些生要虫其。蚯构都节已生特对中爱蚓。会动经活征人培鸟与飞物灭相。类养护人吗的绝适这造兴鸟类?主或应节成趣的为要濒的课情关什特临?就危感系么征灭来害教;?;绝学,育,习使。我比学们它生可们理以更解做高养些等成什的良么两好。类卫动生物习。惯根的据重学要生意回义答;的3.情通况过,了给解出蚯课蚓课与题人。类回的答关:系线,形进动行物生和命环科节学动价环值节观动的物教一育、。根教据学蛔重虫点病1.引蛔出虫蛔适虫于这寄种生典生型活的线结形构动和物生。理二特、点设;置2.问蚯题蚓让的学生生活思习考性预和习适。于穴居生活的形态、结构、生理等方面的特征;3.线形动物和环节动物的主要特征。

8255实验报告

8255实验报告

实验五8255方式1输出实验一、实验目的掌握查询方式实现8255选通型输人(方式1)的编程控制方法。

二、实验内容将8255端口A的PA7-PA0与8个发光二极管L7-L0连接,PB2-PB0与拨动开关的K2-K0连接,8255的CS与地址译码区的0-F端子连接,PC2(/STBB)与单脉冲的/PLUS端连接。

先预置开关K2-K0为一组输入状态,然后按下单脉冲按键产生一个负脉冲,输入到PC2。

用发光二极管LEDi亮,显示K2-K0的状态。

要求:K2-K0=000时,LED0亮K2-K0=001时,LED1亮K2-K0=010时,LED2亮K2-K0=011时,LED3亮K2-K0=100时,LED4亮K2-K0=101时,LED5亮K2-K0=110时,LED6亮K2-K0=111时,LED7亮三、实验环境《TPC-EM实验仪》和386EX实验模式。

四、实验步骤(1)先将实验箱打开,按如下“实验连接图”用数据线将各个部件连接;【实验接线图】8255PA0PA7LED显示灯L0L7PB0PB1PB2K0K1K2拨动开关CS PC2单脉冲/PLUS 地址译码0-F(2)连接完成后,根据实验内容的要求写出相关代码;具体代码如下:DATA SEGMENTMESG DB '8255A READY...',0DH,0AH,'$'TAB DB 00000001BDB 00000010BDB 00000100BDB 00001000BDB 00010000BDB 00100000BDB 01000000BDB 10000000BDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATABEG: MOV AX,DATAMOV DS,AXCALL I8255AMOV AH,9MOV DX,OFFSET MESGINT 21HSCAN: MOV AH,1INT 16HJNZ RETURNMOV DX,202HIN AL,DXTEST AL,00000010BJZ SCANMOV DX,201HIN AL,DXAND AL,07HMOV BX,OFFSET TABXLAT TABMOV DX,200HOUT DX,ALJMP SCAN RETURN: MOV AH,4CHINT 21HI8255A PROCMOV DX,203HMOV AL,0A7HOUT DX,ALMOV AL,04HOUT DX,ALMOV DX,201HMOV AL,00HOUT DX,ALRETI8255A ENDPCODE ENDSEND BEG(3)将实验箱开关打开,程序写入386,然后进行连接、下载,按F5进行运行。

8255可编程并行接口(基本输入输出、动静态七段数码管、竞赛抢答器)微机原理实验报告

8255可编程并行接口(基本输入输出、动静态七段数码管、竞赛抢答器)微机原理实验报告

微机实验报告书学号: XXXXX 姓名: XXXXX 班级: XXXXX同组名单: XXXXXXXXX 实验日期: 5实验题目: 8255可编程并行接口实验目标: 1、掌握8255方式0的工作原理及使用方法。

2、进一步掌握中断处理程序的编写。

3、掌握数码管显示数字的基本原理。

4、了解微机化竞赛抢答器的基本原理。

实验步骤:实验一、 8255A的基本输入输出图1. 8255A的基本输入输出接线图实验步骤如下:(1)实验电路如图1,8255A的C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

(2)编程从8255A的C口输入数据,再从A口输出。

实验二、七段数码管图2. 七段数码管接线图实验步骤如下:(1)静态显示:按图2(a)连接好电路,将8255A的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dP接地(关闭)。

编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

(2)动态显示:按图2(b)连接好电路,七段数码管段码连接不变,位码驱动输入端S1接+5V(选中),S0接8255A的C口的PC1。

编程在两个数码管上显示“56”。

实验三、竞赛抢答器图3. 竞赛抢答器电路图实验步骤如下:图3位竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当于某组抢答按钮按下。

在七段数码管上将其组号(0~7)显示出来。

程序框图:实验一:实验二:实验三:程序清单:;*************************;;* 8255A的基本输入输出 *;;*************************;IOPORT EQU0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHCODE SEGMENTASSUME CS:CODESTART:MOV DX,IO8255K ;对8255进行设定,A输出,C输入MOV AL,10001001BOUT DX,ALINPUT:MOV DX,IO8255C ;从C输入IN AL,DXMOV DX,IO8255A ;从A输出OUT DX,ALMOV DL,0FFH ;判断是否有按键MOV AH,06HINT21HJZ INPUT ;若无,则继续C输入,A输出MOV AH,4CH ;否则,返回DOSINT21HCODE ENDSEND START;************************************;;*键盘输入数据(0-9)控制LED数码管显示*;;************************************;DA TA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHMESG1 DB 0DH,0AH,'Input a num (0--9),other key is exit:',0DH,0AH,'$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOV DS,AXMOV DX,IO8255K ;使8255的A口为输出方式MOV AX,10000000BOUT DX,ALSSS: MOV DX,OFFSET MESG1 ;显示提示信息MOV AH,09HINT 21HMOV AH,01 ;从键盘接收字符INT 21HCMP AL,'0' ;是否小于0JL EXIT ;若是则退出CMP AL,'9' ;是否大于9JG EXIT ;若是则退出SUB AL,30H ;将所得字符的ASCII码减30HMOV BX,OFFSET LED ;BX为数码表的起始地址XLAT ;求出相应的段码MOV DX,IO8255A ;从8255的A口输出OUT DX,ALJMP SSS ;转SSSEXIT: MOV AH,4CH ;返回INT 21HCODE ENDSEND START;******************************;;* LED数码管实验动态显示“56”*;;******************************;DA TA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;段码BUFFER1 DB 6,5 ;存放要显示的个位和十位BZ DW ? ;位码DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,IO8255K ;将8255设为A口输出MOV AL,80HOUT DX,ALMOV DI,OFFSET BUFFER1 ;设di为显示缓冲区LOOP2: MOV BH,02LLL: MOV BYTE PTR BZ,BHPUSH DIDEC DIADD DI, BZMOV BL,[DI] ;bl为要显示的数POP DIMOV AL,0MOV DX,IO8255COUT DX,ALMOV BH,0MOV SI,OFFSET LED ;置led数码表偏移地址为SIADD SI,BX ;求出对应的led数码MOV AL,BYTE PTR [SI]MOV DX,IO8255A ;自8255A的口输出OUT DX,ALMOV AL,BYTE PTR BZ ;使相应的数码管亮MOV DX,IO8255COUT DX,ALMOV CX,3000DELAY: LOOP DELAY ;延时MOV BH,BYTE PTR BZSHR BH,1JNZ LLLMOV DX,0FFHMOV AH,06INT 21HJE LOOP2 ;有键按下则退出MOV DX,IO8255CMOV AL,0 ;关掉数码管显示OUT DX,ALMOV AH,4CH ;返回INT 21HCODE ENDSEND START;***************;;* 模拟抢答器 *;;***************;DA TA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;数码表DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,IO8255K ;设8255为A口输出,C口输入MOV AL,10001001BOUT DX,ALMOV BX,OFFSET LED ;使BX指向段码管首址SSS: MOV DX,IO8255CIN AL,DX ;从8255的C口输入数据OR AL,AL ;比较是否为0JE SSS ;若为0,则表明无键按下,转sssMOV CL,0FFH ;cl作计数器,初值为-1 RR: SHR AL,1INC CLJNC RRMOV AL,CLXLATMOV DX,IO8255AOUT DX,ALMOV DL,7 ;响铃ASCII码为07MOV AH,2INT 21HWAI: MOV AH,1INT 21HCMP AL,20H ;是否为空格JNE EEE ;不是,转eeeMOV AL,0 ;是,关灭灯MOV DX,IO8255AOUT DX,ALJMP SSSEEE: MOV AH,4CH ;返回INT 21HCODE ENDSEND START运行结果:实验一:当逻辑开关K0~K7中的一个或几个打开时,对应的LED灯就会亮起来,即利用8255A实现了基本的输入输出控制。

8255扫描键盘、显示实验

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及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。

汇编与接口键盘显示实验报告

汇编与接口键盘显示实验报告

《微机原理与接口技术》上机实验报告学院(部)专业班级学生姓名学号实验六键盘扫描及显示设计实验一、实验目的1.学习按键扫描的原理及电路接法;2.掌握利用8255完成按键扫描及显示。

二、实验内容1.按原理图1连接好电路。

2.编程: 编程使得在键盘阵列上每按一个键后,微机屏幕和最右端的数码管上有相应字符显示出来,按“E”退出程序。

3.实验提示(1)8255CS接地址译码输出的288h~28fh。

(2)8255的A口PA0~PA7接数码管的a~dp。

数码管位码S0接+5V,S3~S1接GND。

(3)延时程序可用BIOS功能程序INT 1AH的0号功能程序:其出口参数:CH:CL=时:分;DH:DL=秒:1/100秒。

图1 键盘显示连接图三、程序流程四、程序代码data segmentstring db 'the initialization is okay$',0ah,0dhkey db 0e7h, 0ebh, 0edh, 0eeh, 0d7h, 0dbh, 0ddh, 0deh, 0b7h, 0bbh, 0bdh, 0beh, 77h, 7bh, 7dh, 7eharray db 33h, 37h, 66, 70, 32h, 36h, 65, 69, 31h, 35h, 39h, 68, 30h, 34h, 38h, 67num db 16over db ?data endsstack1 segment stack 'stack'dw 50 dup(?)stack1 endscode segmentassume cs:code, ds:data, ss:stack1start:mov ax,datamov ds,axmov ax,seg string ;显示提示mov ds,axmov dx,offset stringmov ah,09hint 21h.while 1call exam.if over == 69mov ah,4chint 21h.endif.endwmov ah,4ch ;/////////////////////int 21hexam proc ;检测子程序//////////////////mov al,81h ;设置8255工作方式字mov dx,28bhout dx,allp1:mov al,00h ;向C端口高四位输出低电平mov dx,28ahout dx,alin al,dx ;C端口低四位cmp al,0fhjz lp1call delay ;延时子程序mov bl,al ;保存列值mov al,88h ;重置8255工作方式字mov dx,28bhout dx,almov al,blmov dx,28ahin al,dx ;读入行值mov ah,blmov cl,4rcr ax,cl.if al == 0b7h ;1 mov over,31hmov al,31hmov dl,almov ah,2hint 21hmov al,06hmov dx,288hout dx,al.endif.if al == 0d7h ;2 mov over,32hmov al,32hmov dl,almov ah,2hint 21hmov al,05bhmov dx,288hout dx,al.endif.if al == 0e7h ;3 mov over,33hmov al,33hmov dl,almov ah,2hint 21hmov al,4fhmov dx,288hout dx,al.endif.if al == 07bh ;4 mov over,34hmov al,34hmov dl,alint 21hmov al,66hmov dx,288hout dx,al.endif.if al == 0bbh ;5 mov over,35h mov al,35hmov dl,almov ah,2hint 21hmov al,6dhmov dx,288hout dx,al.endif.if al == 0dbh ;6 mov over,36h mov al,36hmov dl,almov ah,2hint 21hmov al,7dhmov dx,288hout dx,al.endif.if al == 0ebh ;7 mov over,37h mov al,37hmov dl,almov ah,2hint 21hmov al,07hmov dx,288hout dx,al.endif.if al == 07dh ;8 mov over,38h mov al,38hmov dl,alint 21hmov al,7fhmov dx,288hout dx,al.endif.if al == 0bdh ;9 mov over,39h mov al,39hmov dl,almov ah,2hint 21hmov al,67hmov dx,288hout dx,al.endif.if al == 0ddh ;a mov over,65 mov al,65mov dl,almov ah,2hint 21hmov al,77hmov dx,288hout dx,al.endif.if al == 0edh ;b mov over,66 mov al,66mov dl,almov ah,2hint 21hmov al,7chmov dx,288hout dx,al.endif.if al == 7eh ;c mov over,67 mov al,67mov dl,alint 21hmov al,39hmov dx,288hout dx,al.endif.if al == 0beh ;dmov over,68mov al,68mov dl,almov ah,2hint 21hmov al,5ehmov dx,288hout dx,al.endif.if al == 0deh ;emov over,69mov al,69mov dl,almov ah,2hint 21hmov al,79hmov dx,288hout dx,al.endif.if al == 0eeh ;fmov over,70mov al,70mov dl,almov ah,2hint 21hmov al,71hmov dx,288hout dx,al.endif;////////;////////mov al,81h ;重置8255工作方式字mov dx,28bhout dx,allp6:mov dx,28ahmov al,00hout dx,alin al,dxcmp al,0fhjnz lp6retexam endp ;/////////////////////delay proc near ;延时子程序push ax ;delay 50ms--100msmov ah,0int 1ahmov bx,dxdelay1:mov ah,0int 1ahcmp bx,dxjz delay1mov bx,dxdelay2:mov ah,0int 1ahcmp bx,dxjz delay2pop axretdelay endpcode endsend start。

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

运用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 STACK
DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,3000H
MOV AL,00H
MOV [SI],AL ;清空存放数据的缓冲区
MOV [SI+1],AL
MOV [SI+2],AL
MOV [SI+3],AL
MOV DI,3003H
MOV AL,81H ;8255方式字定义 选择0方式,A口为输出;
OUT 63H,AL;B口为输出;C口为输入
BEGIN: CALL DIS ;显示七段代码管数据的子程序
CALL CLEAR ;七段代码管清0子程序
CALL CCSCAN ;检测是否有键按下子程序
JNZ INK1 ;
JMP BEGIN
INK1: CALL DIS
CALL DALLY ;子程序为延时,消抖动
CALL DALLY
CALL CLEAR
CALL CCSCAN
JNZ INK2
JMP BEGIN
INK2: MOV CH,0FEH
MOV CL,00H
COLUM: MOV AL,CH
OUT 60H,AL
IN AL,62H
TEST AL,01H
JNZ LONE
MOV AL,00H
JMP KCODE
LONE: TEST AL,02H
JNZ NEXT
MOV AL,04H
KCODE: ADD AL,CL
CALL PUTBUF
PUSH AX
KON: CALL DIS
CALL CLEAR
CALL CCSCAN
JNZ KON
POP AX
NEXT: INC CL
MOV AL,CH
TEST AL,08H
JZ KERR
ROL AL,1
MOV CH,AL
JMP COLUM
KERR: JMP BEGIN
CCSCAN: MOV AL,00H
OUT 60H,AL
IN AL,62H
NOT AL
AND AL,03H
RET
CLEAR: MOV AL,00H
OUT 61H,AL
RET
DIS: PUSH AX
MOV SI,3000H
MOV DL,0F7H
MOV AL,DL
AGAIN: OUT 60H,AL
MOV AL,[SI]
MOV BX,OFFSET TABLE ;取七段代码首址
AND AX,00FFH
ADD BX,AX
MOV AL,[BX]
OUT 61H,AL
CALL DALLY
INC SI
MOV AL,DL
TEST AL,01H
JZ OUT
ROR AL,1
MOV DL,AL
JMP AGAIN
OUT: POP AX
RET
DALLY: PUSH CX
MOV CX,0010H
T1: MOV AX,0010H
T2: DEC AX
JNZ T2
LOOP T1
POP CX
RET
PUTBUF: MOV SI,DI
MOV [SI],AL
DEC DI
CMP DI,2FFFH
JNZ GOBACK
MOV DI,3003H
GOBACK: RET
CODE ENDS
END START

相关文档
最新文档