实验报告七-键盘扫描及显示实验

实验报告七-键盘扫描及显示实验
实验报告七-键盘扫描及显示实验

信息工程学院实验报告

课程名称:微机原理与接口技术 实验项目名称:键盘扫描及显示实验 实验时间: 班级: 姓名: 学号:

一、实 验 目 的

1. 掌握 8254 的工作方式及应用编程。

2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备

了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理

将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行编号,记作 0~F ,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。

键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所示。

图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图

成 绩: 指导老师(签名):

图 7-2 键盘及数码管显示单元 6 组数码管电路图

图 7-3 8255 键盘扫描及数码管显示实验线路图

四、实验内容与步骤

1. 实验接线图如图 7-3 所示,按图连接实验线路图。

图 7-4 8255 键盘扫描及数码管显示实验实物连接图

2.运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。

图 7-5 8255 键盘扫描及数码管显示实验程序编辑界面

3. 运行程序,按下按键,观察数码管的显示,验证程序功能。

五、实验结果及分析:

1. 运行程序,按下按键,观察数码管的显示。

图7-6 实验结果

分析:当按下键盘其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。

六、实验总结:

通过本实验,我了解键盘扫描及数码显示的基本原理,以及熟悉 8255 的编程。通过本次实验加深了对理论编程的知识的理解,巩固了我的理论知识。

附录:

;

;键盘扫描及数码管显示实验

;查看端口资源分配情况,记录实验系统I/O端口始地址

IOY0 EQU 0D000H ;片选IOY0对应的端口始地址

MY8255_A EQU IOY0+00H*4 ;8255的A口地址

MY8255_B EQU IOY0+01H*4 ;8255的B口地址

MY8255_C EQU IOY0+02H*4 ;8255的C口地址

MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址

STACK1 SEGMENT STACK

DW 256 DUP()

STACK1 ENDS

DATA SEGMENT

DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS ;键值表,0~F对应的7段数码管的段位值

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV SI,3000H ;建立缓冲区,存放要显示的键值

MOV AL,00H ;先初始化键值为0

MOV [SI],AL

MOV [SI+1],AL

MOV [SI+2],AL

MOV [SI+3],AL

MOV [SI+4],AL

MOV [SI+5],AL

MOV DI,3005H

MOV DX,MY8255_MODE ;初始化8255工作方式

MOV AL,81H ;方式0,A口、B口输出,C口低4位输入 OUT DX,AL

MOV CX,0040h

BEGIN1: PUSH CX

BEGIN:

CALL DIS ;显示刷新

CALL CLEAR ;清屏

CALL CCSCAN ;扫描按键

JNZ GETKEY1 ;有键按下则跳置GETKEY1

POP CX

LOOP BEGIN1

MOV CX,0040h

MOV AH,01h ;判断PC键盘是否有按键按下

INT 16H

JZ BEGIN1 ;无按键则跳回继续循环,有则退出

QUIT: MOV AX,4C00H ;返回到DOS

INT 21H

GETKEY1:CALL DIS ;显示刷新

CALL DALLY

CALL DALLY

CALL CLEAR ;清屏

CALL CCSCAN ;再次扫描按键

JNZ GETKEY2 ;有键按下则跳置GETKEY2

JMP BEGIN ;否则跳回开始继续循环

GETKEY2:MOV CH,0FEH

MOV CL,00H ;设置当前检测的是第几列

COLUM: MOV AL,CH ;选取一列,将X1~X4中一个置0 MOV DX,MY8255_A

OUT DX,AL

MOV DX,MY8255_C ;读Y1~Y4,用于判断是哪一行按键闭合 IN AL,DX

L1: TEST AL,01H ;是否为第1行

JNZ L2 ;不是则继续判断

MOV AL,00H ;设置第1行第1列的对应的键值 JMP KCODE

L2: TEST AL,02H ;是否为第2行

JNZ L3 ;不是则继续判断

MOV AL,04H ;设置第2行第1列的对应的键值

JMP KCODE

L3: TEST AL,04H ;是否为第3行

JNZ L4 ;不是则继续判断

MOV AL,08H ;设置第3行第1列的对应的键值 JMP KCODE

L4: TEST AL,08H ;是否为第4行

JNZ NEXT ;不是则继续判断

MOV AL,0CH ;设置第4行第1列的对应的键值

KCODE: ADD AL,CL ;将第1列的值加上当前列数,确定按键值 CALL PUTBUF ;保存按键值

PUSH AX

KON: CALL DIS ;显示刷新

CALL CLEAR ;清屏

CALL CCSCAN ;扫描按键,判断按键是否弹起

JNZ KON ;未弹起则继续循环等待弹起

POP AX

NEXT: INC CL ;当前检测的列数递增

MOV AL,CH

TEST AL,08H ;检测是否扫描到第4列

JZ KERR ;是则跳回到开始处

ROL AL,1 ;没检测到第4列则准备检测下一列 MOV CH,AL

JMP COLUM

KERR: JMP BEGIN

CCSCAN PROC NEAR ;扫描是否有按键闭合子程序

MOV AL,00H

MOV DX,MY8255_A ;将4列全选通,X1~X4置0

OUT DX,AL

MOV DX,MY8255_C

IN AL,DX ;读Y1~Y4

NOT AL

AND AL,0FH ;取出Y1~Y4的反值

RET

CCSCAN ENDP

CLEAR PROC NEAR ;清除数码管显示子程序

MOV DX,MY8255_B ;段位置0即可清除数码管显示

MOV AL,00H

OUT DX,AL

RET

CLEAR ENDP

DIS PROC NEAR ;显示键值子程序

PUSH AX ;以缓冲区存放的键值为键值表偏移找到键值并显示 MOV SI,3000H

MOV DL,0DFH

MOV AL,DL

AGAIN: PUSH DX

MOV DX,MY8255_A

OUT DX,AL ;设置X1~X4,选通一个数码管

MOV AL,[SI] ;取出缓冲区中存放键值

MOV BX,OFFSET DTABLE

AND AX,00FFH

ADD BX,AX

MOV AL,[BX] ;将键值作为偏移和键值基地址相加得到相应的键值 MOV DX,MY8255_B

OUT DX,AL ;写入数码管A~Dp

CALL DALLY

INC SI ;取下一个键值

POP DX

MOV AL,DL

TEST AL,01H ;判断是否显示完

JZ OUT1 ;显示完,返回 ROR AL,1

MOV DL,AL

JMP AGAIN ;未显示完,跳回继续OUT1: POP AX

RET

DIS ENDP

PUTBUF PROC NEAR ;保存键值子程序

MOV SI,DI

MOV [SI],AL

DEC DI

CMP DI,2FFFH

JNZ GOBACK

MOV DI,3005H

GOBACK: RET

PUTBUF ENDP

DALLY PROC NEAR ;软件延时子程序

PUSH CX

MOV CX,0fffH

D1: MOV AX,00FFH

D2: DEC AX

JNZ D2

LOOP D1

POP CX

RET

DALLY ENDP

CODE ENDS

END START

键盘与LED显示实验

实验三键盘及LED显示实验 一、实验内容 利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED显示器显示出来。 二、实验目的及要求 (一)实验目的 通过该综合性实验,使学生掌握8255扩展键盘和显示器的接口方法及C51语言的编程方法,进一步掌握键盘扫描和LED显示器的工作原理;培养学生一定的动手能力。 (二)实验要求 1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。 2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。 三、实验条件及要求 计算机,C51语言编辑、调试仿真软件及实验箱50台套。 四、实验相关知识点 1.C51编程、调试。 2.扩展8255芯片的原理及应用。 3.键盘扫描原理及应用。 4.LED显示器原理及应用。

5.外部中断的应用。 五、实验说明 本实验仪提供了8位8段LED 显示器,学生可选用任一位LED 显示器,只要按地址输出相应的数据,就可以显示所需数码。 显示字形 1 2 3 4 5 6 7 8 9 A b C d E F 段 码 0xfc 0x60 0xda 0xf2 0x66 0xb6 0xbe 0xe0 0xfe 0xf6 0xee 0x3e 0x9c 0x7a 0x9e 0x8e 六、实验原理图 01e 1d 2dp 3 c 4g 56 b 78 9 a b c g d dp f 10a b f c g d e dp a 11GND3a b f c g d e dp 12 GND4 a b f c g d e dp GND1GND2DS29 LG4041AH 234 567 89A B C D E F e 1d 2dp 3 c 4g 56 b 78 9 a b c g d dp f 10a b f c g d e dp a 11GND3a b f c g d e dp 12 GND4 a b f c g d e dp GND1 GND2DS30 LG4041AH 1 2 3 4 5 6 7 8 JP4112345678 JP4712345678JP42 SEGA SEGB SEGC SEGD SEGE SEGG SEGF SEGH SEGA SEGB SEGC SEGD SEGE SEGG SEGF SEGH A C B 12345678 JP92D 5.1K R162 5.1K R163VCC VCC D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7 10 RD 5WR 36A09A18RESET 35CS 6 U36 8255 D0D1D2D3D4D5D6D7WR RD RST A0A1PC5PC6PC7 PC2PC3PC4PC0PC1CS 12345678JP56 12345678JP53 12345678 JP52 PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7 (8255 PB7)(8255 PB6)(8255 PB5)(8255 PB4)(8255 PB3)(8255 PB2)(8255 PB1)(8255 PB0) (8255 PC7)(8255 PC6)(8255 PC5)(8255 PC4)(8255 PC3)(8255 PC2)(8255 PC1)(8255 PC0) (8255 PA0) (8255 PA1) (8255 PA2) (8255 PA3) (8255 PA4) (8255 PA5) (8255 PA6) (PA7) I N T 0(P 3.2) I N T 0(P 3.3) 七、连线说明

矩阵键盘设计实验报告

南京林业大学 实验报告 基于AT89C51 单片机4x4矩阵键盘接口电路设计 课程机电一体化设计基础 院系机械电子工程学院 班级 学号 姓名

指导老师杨雨图 2013年9月26日

一、实验目的 1、掌握键盘接口的基本特点,了解独立键盘和矩 阵键盘的应用方法。 2、掌握键盘接口的硬件设计方法,软件程序设计 和贴士排错能力。 3、掌握利用Keil51软件对程序进行编译。 4、用Proteus软件绘制“矩阵键盘扫描”电路,并用测试程序进行仿真。 5、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果 能做出分析和解释,能写出符合规格的实验报告。 二、实验要求 通过实训,学生应达到以下几方面的要求: 素质要求 1.以积极认真的态度对待本次实训,遵章守纪、团结协作。 2.善于发现数字电路中存在的问题、分析问题、解决问题,努力培养独立 工作能力。 能力要求 1.模拟电路的理论知识 2.脉冲与数字电路的理念知识 3.通过模拟、数字电路实验有一定的动手能力 4.能熟练的编写8951单片机汇编程序 5.能够熟练的运用仿真软件进行仿真 三、实验工具 1、软件:Proteus软件、keil51。 2、硬件:PC机,串口线,并口线,单片机开发板 四、实验内容

1、掌握并理解“矩阵键盘扫描”的原理及制作,了解各元器件的参数及格 元器件的作用。 2、用keil51测试软件编写AT89C51单片机汇编程序 3、用Proteus软件绘制“矩阵键盘扫描”电路原理图。 4、运用仿真软件对电路进行仿真。 五.实验基本步骤 1、用Proteus绘制“矩阵键盘扫描”电路原理图。 2、编写程序使数码管显示当前闭合按键的键值。 3、利用Proteus软件的仿真功能对其进行仿真测试,观察数码管的显示状 态和按键开关的对应关系。 4、用keil51软件编写程序,并生成HEX文件。 5、根据绘制“矩阵键盘扫描”电路原理图,搭建相关硬件电路。 6、用通用编程器或ISP下载HEX程序到MCU。 7、检查验证结果。 六、实验具体内容 使用单片机的P1口与矩阵式键盘连接时,可以将P1口低4位的4条端口线定义为行线,P1口高4位的4条端口线定义为列线,形成4*4键盘,可以配置16个按键,将单片机P2口与七段数码管连接,当按下矩阵键盘任意键时,数码管显示该键所在的键号。 1、电路图

CPU控制的键盘扫描实验

CPU键盘扫描实验 电路图如下: 要求按下s1键时,p3口的8位LED正向流水点亮;按下s2键时,p3口的8位LED反向流水点亮;按下s3键时,p3口的8位LED 熄灭;按下s4键时,p3口的8位LED闪烁。 程序代码: #include unsigned char tab[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //段码表 sbit S1=P1^4; //将S1位定义为P1.4引脚 sbit S2=P1^5; //将S2位定义为P1.5引脚 sbit S3=P1^6; //将S3位定义为P1.6引脚 sbit S4=P1^7; //将S4位定义为P1.7引脚 /*流水灯延时*/ void delay0() { unsigned char i,j; for(i=0;i<250;i++) for(j=0;j<250;j++) ;

} /*软件消抖延时*/ void delay1() { unsigned char i,j; for(i=0;i<100;i++) for(j=0;j<100;j++) ; } /*正转*/ void zheng() { int i; for(i=0;i<8;i++) {P3=tab[i]; delay0();} } /*反转*/ void fan() { int i; for(i=7;i>=0;i--) {P3=tab[i]; delay0();} } /*关闭*/ void close() { P3=0xff; } /*闪烁*/ void shan() { P3=0xff; delay0(); P3=0x00; delay0();

实验报告七-键盘扫描及显示实验

信息工程学院实验报告 课程名称:微机原理与接口技术 实验项目名称:键盘扫描及显示实验 实验时间: 班级: 姓名: 学号: 一、实 验 目 的 1. 掌握 8254 的工作方式及应用编程。 2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备 了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理 将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行编号,记作 0~F ,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。 键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所示。 图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图 成 绩: 指导老师(签名):

图 7-2 键盘及数码管显示单元 6 组数码管电路图 图 7-3 8255 键盘扫描及数码管显示实验线路图 四、实验内容与步骤 1. 实验接线图如图 7-3 所示,按图连接实验线路图。

图 7-4 8255 键盘扫描及数码管显示实验实物连接图 2.运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。 图 7-5 8255 键盘扫描及数码管显示实验程序编辑界面 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 五、实验结果及分析: 1. 运行程序,按下按键,观察数码管的显示。

单片机实验报告——矩阵键盘数码管显示

单片机实验报告 信息处理实验 实验二矩阵键盘 专业:电气工程及其自动化 指导老师:高哲 组员:明洪开张鸿伟张谦赵智奇 学号:152703117 \152703115\152703118\152703114室温:18 ℃日期:2017 年10 月25日

矩阵键盘 一、实验内容 1、编写程序,做到在键盘上每按一个键(0-F)用数码管将该建对应的名字显示出来。按其它键没有结果。 二、实验目的 1、学习独立式按键的查询识别方法。 2、非编码矩阵键盘的行反转法识别方法。 3、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。 4、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。 5、掌握利用Keil51软件对程序进行编译。 6、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果 能做出分析和解释,能写出符合规格的实验报告。 三、实验原理 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然

后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

矩阵键盘扫描实验

实验矩阵键盘扫描实验 一、实验要求 利用4X4 16位键盘和一个7段LED构成简单的输入显示系统,实现键盘输入和LED 显示实验。 二、实验目的 1、理解矩阵键盘扫描的原理; 2、掌握矩阵键盘与51单片机接口的编程方法。 三、实验电路及连线 Proteus实验电路

1、主要知识点概述: 本实验阐述了键盘扫描原理,过程如下:首先扫描键盘,判断是否有键按下,再确定是哪一个键,计算键值,输出显示。 2、效果说明: 以数码管显示键盘的作用。点击相应按键显示相应的键值。 五、实验流程图

1、Proteus仿真 a、在Proteus中搭建和认识电路; b、建立实验程序并编译,加载hex文件,仿真; c、如不能正常工作,打开调试窗口进行调试 参考程序: ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#TABLE ;将表头放入DPTR LCALL KEY ;调用键盘扫描程序 MOVC A,@A+DPTR ;查表后将键值送入ACC MOV P2,A ;将ACC值送入P0口 LJMP MAIN ;返回反复循环显示 KEY: LCALL KS ;调用检测按键子程序 JNZ K1 ;有键按下继续 LCALL DELAY2 ;无键按调用延时去抖 AJMP KEY ;返回继续检测按键 K1: LCALL DELAY2 LCALL DELAY2 ;有键按下延时去抖动 LCALL KS ;再调用检测按键程序 JNZ K2 ;确认有按下进行下一步 AJMP KEY ;无键按下返回继续检测 K2: MOV R2,#0EFH ;将扫描值送入R2暂存MOV R4,#00H ;将第一列值送入R4暂存 K3: MOV P1,R2 ;将R2的值送入P1口 L6: JB P1.0,L1 ;P1.0等于1跳转到L1 MOV A,#00H ;将第一行值送入ACC AJMP LK ;跳转到键值处理程序 L1: JB P1.1,L2 ;P1.1等于1跳转到L2 MOV A,#04H ;将第二行的行值送入ACC AJMP LK ;跳转到键值理程序进行键值处理 L2: JB P1.2,L3 ;P1.2等于1跳转到L3

实验四 键盘扫描及显示设计实验报告

实验四键盘扫描及显示设计实验报告 一、实验要求 1. 复习行列矩阵式键盘的工作原理及编程方法。 2. 复习七段数码管的显示原理。 3. 复习单片机控制数码管显示的方法。 二、实验设备 1.PC 机一台 2.TD-NMC+教学实验系统 三、实验目的 1. 进一步熟悉单片机仿真实验软件 Keil C51 调试硬件的方法。 2. 了解行列矩阵式键盘扫描与数码管显示的基本原理。 3. 熟悉获取行列矩阵式键盘按键值的算法。 4. 掌握数码管显示的编码方法。 5. 掌握数码管动态显示的编程方法。 四、实验内容 根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能: 1.扫描键盘输入,并将扫描结果送数码管显示。 2.键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。 实验具体内容如下: 将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码 管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数 码管上可以显示最近 4 次按下的按键编号。 五、实验单元电路及连线 矩阵键盘及数码管显示单元

图1 键盘及数码管单元电路 实验连线 图2实验连线图 六、实验说明 1. 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为 5~10ms。这是一个很重要的时间参数,在很多场合都要用到。 键抖动会引起一次按键被误读多次。为了确保 CPU 对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按

键盘实验报告

基于单片机4×4键盘的实现 成员:刘耀鹏、高攀、谢富田 2014年7月20日

理论分析 本实验是基于AT89C52单片机来实现4×4阵列键盘的输入,用七段数码管输出相应的键值,从而提供良好的人机接口。AT89C52单片机是一个8位的单片,与51系列单片机相比较,其最大的区别是多了一个计数定是中断。 采用12MHz的晶振,采用内接法,对电路提供一个时间基准,P1端口作为键盘的输入端口,P0端口为数据输出端口,P1端口输入的键值,在P0端口产生相应的输出。4×4键盘被抽象为16个开关按钮(每行4个共四行),那么久有4位行控制线,和列四位控制线,当开关接通时,则按键按下,数码管显示相应的键值,具体硬件电路如下: 电路中排阻限流作用,以达到对数码管保护作用,P2口作为位选端口,数码管8接P2.0端口,数码管7接P0.1端口。以达到位选

的作用,对于电路可编写一下程序: 2、程序如下: #include #include #define uint unsigned int #define uchar unsigned char //uchar code table[10] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x09}; uchar code table[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; /********************************************************** **** * 名称: Delay_1ms() * 功能: 延时子程序,延时时间为1ms * x * 输入: x (延时一毫秒的个数) * 输出: 无 *********************************************************** ****/ void Delay_1ms(uint x) { uint i; uchar j;

实验三 键盘扫描控制

实验三4*4键盘扫描显示控制 一、实验目的 实现一4×4键盘的接口,并在两个数码管上显示键盘所在的行与列。即将8255单元与键盘及数码管显示单元连接,编写实验程序扫描键盘输入,并将扫描结果送数码显示,键盘采用4×4键盘,每个数码管值可以为0到F,16个数。将键盘进行编号记作0—F当按下其中一个按键时将该按键对应的编号在一个数码管上显示出来,当按下下一个按键时便将这个按键的编号在下一个数码管上显示出来,且数码管上可以显示最近6次按下按键的编号。 二、实验要求 1、接口电路设计:根据所选题目和所用的接口电路芯片设计出完整的接口电路,并进行电路连接和调试。 2、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明。 三、实验电路

四、实验原理说明 图2 数码管引脚图 图1为AT89C51引脚图,说明如下: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址

verilog hdl 矩阵键盘实验报告要点

EDA实验报告 学院:物信学院 专业:电信一班 小组成员:杨义,王祺,陈鹏,秦成晖

指导老师:漆为民 目录 实验题目 (3) 实验目的 (3) 实验原理 (3) 实验内容 (5) 实验程序 (5) 实验步骤 (10) 实验结果 (10) 实验体会 (10)

附录 (11) 一.实验题目: 矩阵键盘显示电路设计 二.实验目的: 1.了解普通4×4键盘扫描的原理。 2.进一步加深七段码管显示过程的理解。 3.了解对输入/输出端口的定义方法。 三.实验原理: 软键盘的工作方式: 通常在一个键盘中使用了一个瞬时接触开关,并且用如图所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。尽管触点可能看起

来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图10-2 所示的好几个脉冲。弹起的持续 时间通常将维持在5ms~30ms 之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。 键盘上阵列这些开关最有效的方法(当需要5 个以上的键时)就形成了一个如图10-3 所示的二维矩阵。当行和列的数目 一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。一个瞬时接触开关(按钮)放 置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。

键盘扫描显示实验原理及分析报告

键盘扫描显示实验原理及分析报告 一、实验目的-------------------------------------------------------------1 二、实验要求-------------------------------------------------------------1 三、实验器材-------------------------------------------------------------1 四、实验电路-------------------------------------------------------------2 五、实验说明-------------------------------------------------------------2 六、实验框图-------------------------------------------------------------2 七、实验程序-------------------------------------------------------------3 八、键盘及LED显示电路---------------------------------------------14 九、心得体会------------------------------------------------------------- 15 十、参考文献--------------------------------------------------------------15

键盘扫描实验设计报告

目录 第一章引言 (1) 1.1 键盘及LED扩展电路概述 (1) 1.2 系统的主要功能 (1) 第二章系统的硬件设计 (2) 2.1 系统的硬件构成及功能 (3) 2.2 主控模板硬件设计 (3) 2.3 ARM芯片及引脚说明 (3) 2.4 LED数码显示管 (6) 2.5 键盘设计 (8) 第三章系统的软件设计 (12) 3.1 软件总体功能设计 (12) 3.2各功能模块软件设计 (16) 第四章结束语 (18) 致谢 (18) 参考文献 (18) 附录 (19)

第一章引言 1.1键盘及LED扩展电路概述 键盘及LED扩展电路主要是由74HC164移位寄存器、数码显示管、按键、电阻、电容、导线等构成的。将8个按键用总线分别与两个74HC164移位寄存器、数码显示管联接起来,两个74HC164移位寄存器联接起来。一个用来存段码,一个用来存位码。在没有按键动作时,74HC164 移位寄存器的数据输入端AB(A 和B 作为一个2 个输入端的与门为74HC164 提供数据,在此电路里并联)的输入电平为1,供电路产生移位逻辑时钟脉冲信号的输入端CP也为1 电平。此时按下键就给了CP 端一个低电平,当键松开后CP端即恢复高电平,于是CP端就得到了一个输入翻转兼移位的低电平脉冲信号.当74HC164得到了一个0 数据的同时输出端Q7~Q0 的数据将全部左移一位。通过DATA端持续给其传送数据,当装满寄存器后开始循环,而寄存器与数码显示管是相通的,寄存器把对应位的高、低电平传给数码管,使符合条件(段码、位码)的0-9在数码管上显示出来。 1.2系统的主要功能 该系统使用前后台的程序编写方法,完成三个基本的功能。 1.任意按下键盘,能在数码显示管上将按下的键对应的十六进制数显示出来图1.1.1 3. 键盘扫描的流程图如右:

单片机 矩阵键盘实验 实验报告

实验五矩阵键盘实验 一、实验内容 1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。按其它键退出。 2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。可定义“A”键为“+”键,“B”键为“=”键。 二、实验目的 1、学习独立式按键的查询识别方法。 2、非编码矩阵键盘的行反转法识别方法。 三、实验说明 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。 四、接线方法 键盘连接成4×4的矩阵形式,占用单片机P1口的8根线,行信号是P1.0-1.3,列信号是P1.4-1.7。

实验一矩阵键盘检测

一、实验目的: 1、学习非编码键盘的工作原理和键盘的扫描方式。 2、学习键盘的去抖方法和键盘应用程序的设计。 二、实验设备: 51/AVR实验板、USB连接线、电脑 三、实验原理: 键盘接口电路是单片机系统设计非常重要的一环,作为人机交互界面里最常用的输入设备。我们可以通过键盘输入数据或命令来实现简单的人机通信。 1、按键的分类 一般来说,按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键(如本学习板上所采用按键)。 按键按照接口原理又可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的识别。 全编码键盘由专门的芯片实现识键及输出相应的编码,一般还具有去抖动和多键、窜键等保护电路,这种键盘使用方便,硬件开销大,一般的小型嵌入式应用系统较少采用。非编码键盘按连接方式可分为独立式和矩阵式两种,其它工作都主要由软件完成。由于其经济实用,较多地应用于单片机系统中(本学习板也采用非编码键盘)。 2、按键的输入原理 在单片机应用系统中,通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL 逻辑电平,以便与通用数字系统的逻辑电平相容。此外,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据。当所设置的功能键或数字键按下时,计算机应

8279键盘扫描输入实验

实验二 8279键盘扫描输入实验 一、实验目的 1.熟悉INTEL8279键盘、显示器接口与8031的连接方法; 2.掌握8279键盘扫描输入程序的编写; 二、实验要求 编写一个键盘扫描输入程序,把读取到的键值依次存放在8031片内RAM的30H-43H 单元中,超过20个键值时,多余的健值存放在44单元中。 三、芯片应用特性 8279是专用键盘、显示控制芯片,能对显示器自动扫描;能识别键盘上按下的键号,可充分提高CPU工作效率,8279与8031的接口方便,由它构成的标准键盘、显示接口在工业控制中得到广泛的应用。 1.关于INTEL 8279 无编码器键盘常常采用软件方法,逐行逐列地检查键盘状态,当发现按下的键后,用计算或查表等方法来找到该键的键编码。而INTEL 8279公司的键盘、显示接口芯片是一种扫描式键盘编码器芯片 8279是一种通用可编程键盘显示接口芯片,它能完成键盘输入和显示控制两种功能。键盘部分提供一种扫描方式,可与64个按键的矩阵键盘连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码,能对双键或n 键同时按下实行保护。 显示部分分为发光二极管、荧光管及其它显示器提供了按扫描方式工作的显示接口,它为显示器提供多路复用信号,可显示多达16个字符或数字。 2. 实验板8279键盘、显示电路介绍: 8279采用外部译码操作方式,74LS138输出8位显示器的位控制信号和键盘的行扫描信号。8279的8位输出线A0-A3和B0-B3与数码管的8个段相对应,经74LS240缓冲后,去驱动各数码管的8个段。74LS138输出的8根线由74LS240反相后,再经大电流驱动器ULN2003A驱动,成为各数码管的位选择信号,当位选信号有效时(呈0电平),相应数码管被选通,而显示内容则取决于它的各个显示段的电平。 四、实验步骤 1.线路连接及注意事项 1)线路连接 8279键盘键值可采用查询方式读取,也可以采用中断方式读取。查询方式须设等待键输入指令。实验板上,8279的中断请求线(IRQ)经反相后与插座CN8相连。做实验时,只须短接CN8上的KBIRQ、INT0。 2)注意事项 因8279的RL0无法回扫键值。实验板上,首行键盘与回扫线RL4相连,与原理图不同。编程时请注意,首行键盘编码值为04H、0CH、14H、1CH、24H。 2.程序设计 1)关于8279的端口 实验板的硬件连接决定了8279的数据口为2FFEH,当对数据口执行读操作时,读取到的数据为键值编码,对数据口执行写操作时,数据写入显示RAM中,8279的命令、状态口

4X4键盘扫描实验

44 键盘扫描实验 实验目的 1、学习HDL程序的基本设计技巧; 2、掌握矩阵键盘的扫描原理和使用方法。 Verilog程序: module hex_keypad(Col,Code,show,show1,count,scan,clock,Row); output[3:0] Code,Col,count; //定义列信号Col、行列信号共同决定的 输出代码Code、以及计数变量count output[7:0] show,show1; //定义七段显示变量show、show1 input[3:0] Row; //定义输入行信号Row input scan; //定义数码管选择信号scan input clock; //定义时钟信号clock reg[3:0] Col,Code,count; //将输出信号定义为reg型 reg[7:0] show,show1; reg[1:0] cn; //定义reg型变量cn,用于计数 reg reset,count_up,count_down; //定义变量reset用于计数清零,count_up 开始加计数,count_down开始减计数reg[15:0] times1,times2; //定义变量times1、times2用于决定开 始计数的时间 assign scan=1'b1; //将数码管选择信号赋值为1

always@(posedge clock) //产生列信号 if(cn==4)cn<=0; else cn<=cn+1; always@(cn) case(cn) 2'b00:Col=4'b1110; 2'b01:Col=4'b1101; 2'b10:Col=4'b1011; 2'b11:Col=4'b0111; endcase always@(posedge clock) //行列信号共同决定输出代码Code case({Row,Col}) 8'b1110_1110:Code=4'h0; 8'b1110_1101:Code=4'h1; 8'b1110_1011:Code=4'h2; 8'b1110_0111:Code=4'h3; 8'b1101_1110:Code=4'h4; 8'b1101_1101:Code=4'h5;

键盘扫描输入实验

4.1键盘扫描输入实验 4.1.1 实验目的 1.学习复杂数字系统的设计方法; 2.掌握矩阵式键盘输入列阵的设计方法。 4.1.2 实验设备 PC微机一台,TD-EDA试验箱一台,SOPC开发板一块。 4.103 实验内容 在电子,控制,信息处理等各种系统中,操作人员经常需要想系统输入数据和命令,以实现人机通信。实现人机通信最常用的输入设备是键盘。在EDA技术的综合应用设计中,常用的键盘输入电路独立式键盘输入电路、矩阵式键盘输入电路和“虚拟式”键盘输入电路。 所谓矩阵是键盘输入电路,就是将水平键盘扫描线和垂直输入译码线信号的不同组合编码转换成一个特定的输入信号值或输入信号编码,利用这种行列矩阵结构的键盘,只需N 个行线和M个列线即可组成NXM按键,矩阵式键盘输入电路的优点是需要键数太多时,可以节省I/O口线;缺点是编程相对困难。 本实验使用TD-EDA实验系统的键盘单元设计一个4x4的矩阵键盘的扫描译码电路。此设计包括键盘扫描模块和扫描码锁存模块,原理如图4-1-1。每按下键盘列阵的一个按键立即在七段数码管上显示相应的数据。 4.1.1 实验步骤 1. 运行Quartus II 软件,分别建立新工程,选择File->New菜单,创建VHDL描述语言设计文件,分别编写JPSCAN.VHD、REG.VHD. 2.扫描码锁存模块REG的VHDL源程序如下; --输入锁存器VHDL源程序:REGVHDL LIBRARY IEEE; USB IEEE.STD-LOGIC-1164.ALL; ENTITY REG IS PORT ( RCLK : IN STD-LOGIC; --扫描时钟YXD : IN STD-LOGIC-VECTOR(3 DOWNTO 0); --Y 列消抖输入 DATA : IN STD-LOGIC-VECTOR(7 DOWNTO 0); --输入数据 LED : OUT STD-LOGIC- VECTOR(7 DOWNTO 0)); --锁存数据输出END ENTITY REG; ARCHITECTURE BEHV OF REG IS SIGNAL RST : STD-LOGIC; --锁存器复位清零 SIGNAL OLDDATA : STD-LOGIC- VECTOR(7 DOWNTO 0); --锁存器旧数据 SIGNAL NEWDATA : STD-LOGIC- VECTOR(7 DOWNTO 0); --锁存器新数据

键盘扫描及显示设计实验

键盘扫描及显示设计实 验 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

【实验内容】 将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管显示值可为0~F共16个数。实验具体内容如下:将键盘进行编号,记作0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示本次按键的按键编号。8255键盘及显示实验参考接线图如图1所示。 【实验步骤】 1. 按图1连接线路图; 2. 编写实验程序,检查无误后编译、连接并装入系统; 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 【程序代码】 MY8255_A EQU 0600H MY8255_B EQU 0602H MY8255_C EQU 0604H MY8255_CON EQU 0606H SSTACK SEGMENT STACK DW 16 DUP() SSTACK ENDS DATA SEGMENT DTABLE DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H table1 db 0dfh,0efh,0f7h,0fbh,0fdh,0feh count db 0h DATA END ODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX MOV SI,3000H MOV AL,03H MOV [SI],AL ;清显示缓冲 MOV [SI+1],AL MOV [SI+2],AL MOV [SI+3],AL MOV [SI+4],AL MOV [SI+5],AL MOV DI,3005H MOV DX,MY8255_CON ;写8255控制字 MOV AL,81H OUT DX,AL BEGIN: CALL DIS ;调用显示子程序 CALL CLEAR ;清屏 CALL CCSCAN ;扫描 JNZ INK1 JMP BEGIN INK1: CALL DIS CALL DALLY CALL DALLY CALL CLEAR CALL CCSCAN JNZ INK2 ;有键按下,转到INK2 JMP BEGIN ;======================================== ;确定按下键的位置 ;======================================== INK2: MOV CH,0FEH MOV CL,00H COLUM: MOV AL,CH MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX L1: TEST AL,01H ;is L1 JNZ L2 MOV AL,00H ;L1 JMP KCODE L2: TEST AL,02H ;is L2 JNZ L3 MOV AL,04H ;L2 JMP KCODE L3: TEST AL,04H ;is L3

实验一--键盘显示实验

实验一键盘显示系统实验 1.实验目的: (1)了解8155芯片的工作原理以及应用 (2)了解键盘、LED显示器的接口原理以及硬件电路结构 (3)掌握非编码键盘的编程方法以及程序设计 2.实验内容: 将程序输入实验系统后,在运行状态下,按下数字0~9之一,将在数码管上显示相应数字,按下A、B或C之一,将在数码管上显示“0”、“1”或“2”循环 3.程序框图: 4. 实验程序 下面程序有四部分组成,程序的地址码、机器码、程序所在行号(中间)和源程序。字型码表和关键字表需要同学们自己根据硬件连接填在相应位置。 地址码机器码 1 源程序 0000 2 org 0000h 0000 90FF20 3 mov dptr,#0ff20h 0003 7403 4 mov a,#03h ;方式字 0005 F0 5 movx @dptr,a ;A和B口为输出口,C口为输入口 0006 753012 6 mov 30h,#12h ;LED共阴极,开始显示“H”,地址偏移量 送30h

0009 1155 7 dsp: acall disp1 ;调显示子程序 000B 11FE 8 acall ds30ms 000D 1179 9 acall scan ;调用键盘扫描子程序 000F 60F8 10 jz dsp ;若无键按下,则dsp 0011 11B7 11 acall kcode ;若有键按下,则kcode 0013 B40A00 12 cjne a,#0ah,cont ;是否数字键,若是0-9则是,a-c 则否 0016 400F 13 cont: jc num ;若是,则num 0018 90001F 14 mov dptr,#jtab ;若否,则命令转移表始址送dptr 001B 9409 15 subb a,#09h; 形成jtab表地址偏移量 001D 23 16 rl a ;地址偏移量*2 001E 73 17 jmp @a+dptr ;转入相应功能键分支程序 001F 00 18 jtab: nop 0020 00 19 nop 0021 8008 20 sjmp k1 ;转入k1子程序 0023 800B 21 sjmp k2 ; 转入k2子程序 0025 800E 22 sjmp k3 ; 转入k3子程序 0027 F530 23 num: mov 30h,a 0029 80DE 24 sjmp dsp ; 返回dsp 002B 7531C0 25 k1: mov 31h,#0c0h ; "0" 循环显示 002E 800A 26 sjmp k4 0030 7531F9 27 k2: mov 31h,#0f9h ; "1" 循环显示 0033 8005 28 sjmp k4 0035 7531A4 29 k3: mov 31h,#0a4h ; "2" 循环显示 0038 8000 30 sjmp k4 003A 7B01 31 k4: mov r3,#01h ;显示最末一位,注意共阴极 003C EB 32 k5: mov a,r3 003D 90FF21 33 mov dptr,#0ff21h 0040 F0 34 movx @dptr,a ;字位送8155 0041 E531 35 mov a,31h 0043 90FF22 36 mov dptr,#0ff22h; 字型口 0046 F0 37 movx @dptr,a ;字型送8155的B口 0047 11EC 38 acall delay ;延时1ms*** 0049 74FF 39 mov a,#0ffh 004B F0 40 movx @dptr,a ;关显示,在此使LED各位显示块都灭004C EB 41 mov a,r3 004D 23 42 rl a 004E FB 43 mov r3,a 004F BB40EA 44 cjne r3,#40h,k5 ;还没有循环玩一遍,则循环继续0052 80E6 45 sjmp k4 ;若循环完一遍则返回k4;又开始新一轮的循环 0054 22 46 ret 0055 90FF21 47 disp1: mov dptr,#0ff21h; 字位口A,注意led是共阴极接法0058 7401 48 mov a,#01h 005A F0 49 movx @dptr,a 005B 90FF22 50 mov dptr,#0ff22h;字型口 005E E530 51 mov a,30h 0060 2402 52 add a,#02h 0062 83 53 movc a,@a+pc 0063 F0 54 movx @dptr,a ;字型码输入,N1点亮 0064 22 55 ret ;下面是0到c的字型码 0065 ? 56 db ???? 0066 ? 0067 ? 0068 ? 0069 ? 006A ? 57 db ????

相关文档
最新文档