0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用单片机实现一键多功能按键识别的设计实验说明

Wildesbeast 来源:单片机教程网 作者:h1654155169.2086 2020-05-30 11:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.实验任务

如图所示,开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。

2.电路原理

图4.9.1

3.系统板上硬件连线

(1. 把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上;

(2. 把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。

4.程序设计方法

(1. 设计思想由来

在我们生活中,我们很容易通过这个叫张三,那个叫李四,另外一个是王五;那是因为每个人有不同的名子,我们就很快认出,同样,对于要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的ID号标识,这样,每按下一次按键,ID的值是不相同的,所以单片机就很容易识别不同功能的身份了。

(2. 设计方法

从上面的要求我们可以看出,L1到L4发光二极管在每个时刻的闪烁的时间是受开关SP1来控制,我们给L1到L4闪烁的时段定义出不同的ID号,当L1在闪烁时,ID=0;当L2在闪烁时,ID=1;当L3在闪烁时,ID=2;当L4在闪烁时,ID=3;很显然,只要每次按下开关K1时,分别给出不同的ID号我们就能够完成上面的任务了。下面给出有关程序设计的框图。

5.程序框图

图4.9.2

6.汇编源程序

ID EQU 30H

SP1 BIT P3.7

L1 BIT P1.0

L2 BIT P1.1

L3 BIT P1.2

L4 BIT P1.3

ORG 0

MOV ID,#00H

START: JB K1,REL

LCALL DELAY10MS

JB K1,REL

INC ID

MOV A,ID

CJNE A,#04,REL

MOV ID,#00H

REL: JNB K1,$

MOV A,ID

CJNE A,#00H,IS0

CPL L1

LCALL DELAY

SJMP START

IS0: CJNE A,#01H,IS1

CPL L2

LCALL DELAY

SJMP START

IS1: CJNE A,#02H,IS2

CPL L3

LCALL DELAY

SJMP START

IS2: CJNE A,#03H,IS3

CPL L4

LCALL DELAY

SJMP START

IS3: LJMP START

DELAY10MS: MOV R6,#20

LOOP1: MOV R7,#248

DJNZ R7,$

DJNZ R6,LOOP1

RET

DELAY: MOV R5,#20

LOOP2: LCALL DELAY10MS

DJNZ R5,LOOP2

RET

END

7.C语言源程序

#include 《AT89X51.H》

unsigned char ID;

void delay10ms(void)

{

unsigned char i,j;

for(i=20;i》0;i--)

for(j=248;j》0;j--);

}

void delay02s(void)

{

unsigned char i;

for(i=20;i》0;i--)

{delay10ms();

}

}

void main(void)

{ while(1)

{ if(P3_7==0)

{delay10ms();

if(P3_7==0)

{

ID++;

if(ID==4)

{

ID=0;

}

while(P3_7==0);

}

}

switch(ID)

{ case 0:

P1_0=~P1_0;

delay02s();

break;

case 1:

P1_1=~P1_1;

delay02s();

break;

case 2:

P1_2=~P1_2;

delay02s();

break;

case 3:

P1_3=~P1_3;

delay02s();

break;

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二极管
    +关注

    关注

    149

    文章

    10454

    浏览量

    179556
  • 单片机
    +关注

    关注

    6078

    文章

    45579

    浏览量

    673592
  • AT89S51
    +关注

    关注

    3

    文章

    230

    浏览量

    35007
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一键上货工具与API接口的深度集成:技术实现详解

    ​ 在电商运营中,高效的商品上架流程至关重要。传统手动上货耗时耗力,而 一键上货工具 结合 API接口 的自动化方案,可大幅提升效率。本文将深入解析其技术实现逻辑,并提供核心代码示例。 、API
    的头像 发表于 04-01 17:14 622次阅读
    <b class='flag-5'>一键</b>上货工具与API接口的深度集成:技术<b class='flag-5'>实现</b>详解

    探索S1C17W15 16位单片机:低功耗与多功能的完美结合

    探索S1C17W15 16位单片机:低功耗与多功能的完美结合 在电子工程师的设计世界里,选择款合适的单片机是项目成功的关键。今天,我们就来深入了解
    的头像 发表于 03-31 09:15 149次阅读

    Infineon XC164CS-32F/32R 16位单片机:高性能与多功能的完美结合

    Infineon XC164CS-32F/32R 16位单片机:高性能与多功能的完美结合 在电子设计领域,单片机作为核心控制元件,其性能和功能直接影响着整个系统的表现。今天,我们就来深
    的头像 发表于 03-30 16:35 172次阅读

    Infineon C161K/O 16位单片机:高性能与多功能的完美结合

    Infineon C161K/O 16位单片机:高性能与多功能的完美结合 在电子设计领域,单片机作为核心控制元件,其性能和功能直接影响着整个系统的表现。Infineon的C161K/O
    的头像 发表于 03-30 16:15 163次阅读

    Infineon XE164xN系列16位单片机:高性能与多功能的完美结合

    Infineon XE164xN系列16位单片机:高性能与多功能的完美结合 在电子设计领域,款性能卓越、功能丰富的单片机往往是项目成功的关
    的头像 发表于 03-29 12:30 279次阅读

    Infineon XC2723X 16/32位单片机:高性能与多功能的完美结合

    Infineon XC2723X 16/32位单片机:高性能与多功能的完美结合 在电子设计领域,单片机作为核心控制元件,其性能和功能直接影响着整个系统的表现。Infineon的XC27
    的头像 发表于 03-29 11:50 303次阅读

    LC87F1M16A:多功能8位单片机的详细剖析与应用指南

    LC87F1M16A:多功能8位单片机的详细剖析与应用指南 引言 在嵌入式系统设计领域,单片机作为核心控制部件,其性能和功能的多样性直接影响着整个系统的表现。今天我们要深入探讨
    的头像 发表于 02-28 14:45 615次阅读

    一键开关机芯片GEK100,替代 ADI 的 MAX16169和MAX16054

    ​在当今科技飞速发展的时代,芯片作为电子设备的核心部件,其性能的优劣直接影响着设备的整体表现。尤其是在一键开关机功能实现上,款出色的芯片能够为用户带来便捷、高效且节能的体验。在这
    发表于 08-15 17:32

    单片机原理及应用详解

    单片机(Microcontroller Unit, MCC)  是种集成计算机核心功能(CPU、存储器、I/O接口等)的微型芯片,广泛应用于嵌入式系统中。以下是其原理及应用的详细介绍:
    的头像 发表于 08-11 13:57 2778次阅读

    单片机是怎么控制的

    单片机作为电子系统的控制核心,通过接收外部信号、执行预设程序、驱动外部设备的方式实现控制功能,其控制过程涉及信号输入、数据处理和指令输出三个关键环节,每个环节的协同配合决定了整体控制效果。 信号输入
    的头像 发表于 07-23 13:59 1017次阅读

    图解单片机功能与应用(完整版)

    过程通道图解、单片机显示电路图解、51单片机按键识别电路图解、51单片机常用算法图解、单片机常用
    发表于 06-16 16:52

    基于51单片机多功能万年历设计

    基于51单片机多功能万年历设计    本项目是基于51单片机STC89系列,运用protues仿真软件开发,使用模块化编程方法,模块化电路设计,硬件部分采用
    发表于 06-03 17:17 1次下载

    ESP8266烧录与机智云一键配网教程

    ESP8266模块因其低成本和高性能,广泛应用于智能家居和工业自动化等领域。机智云平台提供了一键配网功能,简化了设备的联网过程。本教程将详细介绍如何使用ESP8266进行烧录,并通过机智云实现
    的头像 发表于 05-24 11:04 2405次阅读
    ESP8266烧录与机智云<b class='flag-5'>一键</b>配网教程

    电源一键多用:POWER_ON从开机到场景指挥官!

    按键,即开关机,在结构设计上可以实现 一键多用 ——既可以有效减少结构的按键设计,也可以使整机更加简洁。 本文以Air8000核心板为例,
    的头像 发表于 05-15 14:10 4386次阅读
    电源<b class='flag-5'>键</b>的<b class='flag-5'>一键</b>多用:POWER_ON从开机到场景指挥官!

    U盘一键制作

    在电脑维修中启动盘很重要,靠谱的u盘一键启动制作方法
    发表于 05-06 16:10 44次下载