51单片机汇编语言实验(六)-----8255键盘与显示设计

发布者:SereneMeadow7最新更新时间:2022-01-19 来源: eefocus关键字:51单片机  汇编语言 手机看文章 扫描二维码
随时随地手机看文章

一、实验目的:

   掌握8255外接键盘与数码管显示的设计


二、实验设备:

   PC计算机一台,Dais-52PRO+实验系统一套。


三、实验内容:

   8255键盘与显示设计


四、 8255键盘与显示设计

   1、实验原理:

   本实验使用8255的PA7到PA0控制数码管字形口、PB5到PB0控制数码管字位口,同时PB4到PB0作为键盘扫描口、PC3~PC0作为键盘读入口。利用CPU控制8255,对4×5键盘进行扫描和键值读取,将键值显示到6位数码管上。本文介绍的是简化版的实验,不控制最后一列键盘,数码管位选端不接线,直接点亮。


   2、实验步骤:

  ① 按下图拆除14芯扁平电缆;

  ②将8255区的PA0到PA7与数码管区的a~h按下图连接;

  ③将8255区的PB1到PB4与按键区的列0~4按下图连接;

  ④将8255区的PC0到PC3与按键区的行0~3按下图连接;

  ⑤将8255区的/CS与端口地址区的300按下图连接;

  ⑥编写实验程序,经编译、链接无语法错误后装载到实验系统;

  ⑦全速运行程序,按实验系统键盘上的0~F数字键,数码管显示对应数字

  ⑧实验完毕后,应使用暂停命令中止程序的运行;

  ⑨本实验完毕,应及时将步骤1中拆除的扁平电缆重新连接,以便其它实验的顺利进行。

   3、参考代码:

//实验六 


        ORG 0000H

        AJMP KD1

        ORG 0100H

KD1: MOV   A, #81H ;8255初始化,PA,PB基本输出

;方式, PC低四位输入方式

MOV   DPTR, #0303H  ;地址需要修改成控制口地址

MOVX @DPTR, A

  

KEY1:   ACALL KS1 ;调用判断是否有键闭合子程序

JNZ    LK1 ;有键闭合转LK1

ACALL DSP8255 ;调用8255动态显示子程序,延时6 ms

AJMP    KEY1

LK1: ACALL DSP8255

ACALL DSP8255 ;调用两次显示,延时12 ms

ACALL KS1

JNZ    LK2

ACALL DSP8255 ;调用8255动态显示子程序,延时6 ms

AJMP    KEY1

LK2: MOV    R2, #0EFH     ;11101111

MOV    R4, #00H

LK3: MOV DPTR, #0301H    ;需要改成B口地址

MOV A, R2

MOVX @DPTR, A

INC DPTR

MOVX  A, @DPTR

JB ACC.0, LONE

MOV A, #00H

AJMP LKP

LONE: JB ACC.1, LTWO

MOV A, #04H

AJMP LKP

LTWO:JB ACC.2, LTHR

MOV A, #08H

AJMP LKP

LTHR: JB ACC.3, NEXT

MOV A, #0CH

LKP: ADD A, R4

PUSH ACC

MOV   R5,A

LK4: ACALL DSP8255

        ACALL  KS1

JZ   LK4

POP   ACC

AJMP  LK1  

NEXT: INC   R4

MOV   A, R2

JNB   ACC.1, KND

RR   A

MOV   R2, A

AJMP   LK3

KND: AJMP   KEY1

KS1: MOV   DPTR, #0301H ;地址需要改成B口地址

MOV   A, #00H

MOVX  @DPTR, A

INC   DPTR

MOVX  A, @DPTR   ;默认在按键按下前c口为高电平

CPL   A

ANL   A, #0FH

RET

DSP8255:    MOV A,R5

            MOV DPTR, #PTRN ;指向段数据表首地址

        MOVC A, @A+DPTR ;查表,得段数据

        MOV DPTR, #0300H ;地址需要修改为A口地址

            MOVX @DPTR, A ;输出段数据

        CALL D1MS ;延时1 ms

PASS:     RET ;返回

D1MS:       MOV R7, #02H ;延时1 ms子程序

DMS:     MOV R6, #0FFH

        DJNZ R6, $

        DJNZ R7, DMS

        RET

PTRN:DB 0c0H, 8eH, 86H, 0a1H ;段数据表   0  F  E  D    

DB 0f9H, 0a4H, 0b0H, 0c6H ;           1 2 3  C   

DB 99H, 92H, 82H, 83H  ;          4 5 6 B 

DB 0f8H, 80H, 90H, 88H ;            7 8 9 A  

        END


五、 实验效果视频演示

博文51单片机汇编语言实验8255键盘显示设计效果视频演示.

关键字:51单片机  汇编语言 引用地址:51单片机汇编语言实验(六)-----8255键盘与显示设计

上一篇:51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832
下一篇:51单片机汇编语言实验(四)----串行通信实验

推荐阅读最新更新时间:2024-11-16 22:27

单片机的图形化编程方法简介
   单片机可以用汇编语言编程,也可以用高级语言C、Basic编程,也可以用图形化语言编程。工业控制中普遍采用可编程控制器,其CPU模块内的微控制器往往是普通的单片机,而可编程控制器可以梯形图编程,或者用流程图编程。现在的智能教育机器人控制器均用单片机,而这些机器人的编程大多支持流程图编程。上海广茂达电子信息有限公司的能力风暴系列机器人采用VJC可视化流程图与C语言编程;中鸣机器人系列采用机器人快车软件编程,该软件也是可视化流程图与C语言编程;西米亚公司的乐高系列、博思威龙机器人、美国的VEX系列机器人、双龙公司的机器人DIY系列均可以采用可视化流程图与C语言编程。而这些机器人的控制系统核心均为单片机。由此可知,普通单片机的开发
[单片机]
单片机的图形化编程方法简介
51单片机】 蜂鸣器发声程序
蜂鸣器分为有源和无源,这个源是震荡源。 有源的直接给高电平就可以响(也有低电平驱动)。 无源的还需要通过给一个持续到震荡源才能作用。 51单片机开发板上的蜂鸣器通常是无源的。以下是蜂鸣器发声程序。 #include reg51.h sbit beep = P1^5; //定义P1_5为蜂鸣器端口 void delay(unsigned int i) //延时程序 { while(i--); } void main() //主程序 { while(1) //while无限循环 { beep = ~beep; //蜂鸣器程序取反 delay(100); } } 注意:如果程
[单片机]
【<font color='red'>51单片机</font>】 蜂鸣器发声程序
51单片机学习笔记4 -- 蜂鸣器控制
1.蜂鸣器简介 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示 1.分类 按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器); 按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器; 按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器); 按电流的不同,可分为:直流蜂鸣器和交流蜂鸣
[单片机]
<font color='red'>51单片机</font>学习笔记4 -- 蜂鸣器控制
51单片机STC89C52 iic
SCL BIT P2.1 SDA BIT P2.0 ORG 0000H LJMP MAIN ORG 0050H MAIN: MOV SP,#30H MOV P1,#0FFH ;灭LED MOV R6,#2 ;R6保存AT24C02内部待写地址,用于传递参数 MOV R7,#55H ;R7保存待写数据,用于传递参数 LCALL iic_Write ;调用写函数,将R7的数据写入AT24C02 R6所指地址 LCALL DELAY10MS ;延时 MOV R6,#2 ;R6保存AT24C02内部待读地址,用于给读函数传递参数 LCALL iic_Read ;调用读函数 MOV
[单片机]
基于MCS_51单片机的工业屏柜散热方案设计
摘要: 从单片机系统设计入手, 采用MCS-51芯片并通过AD转换来对温度信号进行采集,然后经过一系列软硬件设计, 给出了对温度进行控制的实现方法, 同时对系统的散热过程进行了分析。 0 引言 电子电气元件, 尤其是大规模集成电路因发热而产生的问题一直难于解决。而工业屏柜作为一种集成有多种电子设备的工业产品, 其温度的升高常常导致其内部的微电子元件(如PN节) 发生温度漂移而使得各种参数发生改变, 从而导致程序运行混乱而失去其原有的功能, 或与其原有的功能偏差过大而导致故障。在工业控制设备的计数系统、继电保护系统、数控液晶显示模块、温度控制单元的模块、各类传感器、变频器中的IGBT模块和数控及报警显示等设备中, 都会存在因过热而导
[单片机]
基于MCS_<font color='red'>51单片机</font>的工业屏柜散热方案设计
51单片机入门 - 模拟PWM调制控制实验
PWM(脉冲宽度调制) 对模拟信号电平进行数字编码的方法 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计要求: 由于AT89系列单片机没有PWM控制器,所以通过定时器产生PWM 通过按钮控制P2.0输出高低电平的时间,占空比可调范围:0~100%,每次按下按钮以10%步进,通过示波器看到对应波形。 - - - - - - - - - - - - - - - - - -
[单片机]
<font color='red'>51单片机</font>入门 - 模拟PWM调制控制实验
51单片机STC89C52】LCD1602液晶屏的使用
一、LCD1602模块 1、引脚说明 第 3 脚: VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度 过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚: RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。 第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 7-14 脚:D
[单片机]
【<font color='red'>51单片机</font>STC89C52】LCD1602液晶屏的使用
基于51单片机的智能快速充电器设计
1.引言   本控制系统是为120w智能快速稳压电源设计的。   该快速充电器是为部队在野战条件下工作而研制的,因此要求其具有体积小、重量轻、智能化程度高、操作简便等优点,同时对电源的可靠性和抗干扰性提出了很高的要求。有稳压供电和充电两种工作方式。稳压供电时输出恒定的24V;处于充电状态时有四种充电方式:常规充电、快速充电、电池浮冲、电池训练,可以为镉镍、氢镍蓄电池充电。 2. 控制系统总体设计要求   根据实际情况,本控制系统要完成以下功能:   (1) 能自动识别电池的类型(镍镉电池、镍氢电池、锂电池)。   (2) 有稳压供电和充电两种工作模式。   (3) 采用最高电压Vmax、最高温度Tmax、最长充电时间
[单片机]
基于<font color='red'>51单片机</font>的智能快速充电器设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved