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;

}

}

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

    关注

    144

    文章

    9012

    浏览量

    161331
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620821
  • AT89S51
    +关注

    关注

    3

    文章

    229

    浏览量

    33916
收藏 人收藏

    评论

    相关推荐

    基于51单片机多功能电子时钟设计

    基于51单片机多功能电子时钟设计(仿真)
    发表于 01-02 09:39 9次下载

    单片机按键切换模式命令

    单片机按键切换模式命令是指在单片机系统中,通过按下按键来切换系统工作模式的命令。这种命令通常用于控制系统的状态和功能,使系统能够根据用户的需
    的头像 发表于 12-15 10:31 1167次阅读

    单片机按键切换模式怎么设置

    单片机作为一种微处理器,在各种嵌入式系统中扮演着核心控制器的角色。其中,按键输入作为单片机控制中常见的交互方式,实现模式切换是常见的需求。本文将详细介绍如何在
    的头像 发表于 12-13 11:07 1562次阅读

    单片机的GPIO如何实现触摸按键功能呢?

    单片机的GPIO如何实现触摸按键功能呢? 触摸按键是一种使用触摸电容技术实现
    的头像 发表于 12-07 11:43 2435次阅读

    单片机矩阵按键的工作原理和组成部分

    单片机矩阵按键是一种常用的输入设备,它可以让用户通过按下不同的按键来控制单片机功能。矩阵按键
    的头像 发表于 11-09 16:19 1358次阅读
    <b class='flag-5'>单片机</b>矩阵<b class='flag-5'>按键</b>的工作原理和组成部分

    利用单片机技术来实现多功能出租车计价器设计

    电子发烧友网站提供《利用单片机技术来实现多功能出租车计价器设计.doc》资料免费下载
    发表于 11-08 14:31 0次下载
    利用<b class='flag-5'>单片机</b>技术来<b class='flag-5'>实现</b><b class='flag-5'>多功能</b>出租车计价器设计

    基于单片机控制的新型多功能拐杖

    电子发烧友网站提供《基于单片机控制的新型多功能拐杖.pdf》资料免费下载
    发表于 11-06 16:46 5次下载
    基于<b class='flag-5'>单片机</b>控制的新型<b class='flag-5'>多功能</b>拐杖

    单片机、CPU未出现前电路是如何实现功能的?

    有AD采样这种技术应用。想了想,个简单的抢答器实现起来都不容易吧,功能有数码管显示、指示灯、按键检测、蜂鸣器驱动等。假如不让用单片机,如何
    发表于 11-06 06:52

    如何用单片机实现图像识别

    如何用单片机实现图像识别
    发表于 10-25 06:43

    请问单片机按键一键多功能程序如何实现?

    如何实现按键,第次短按开机上电,第二次短按打开LED,第三次短按关闭LED。最后长按断电关机。
    发表于 09-26 07:45

    实现单片机双向通信的实验资料分享

    详细介绍的是实现两个单片机双向通信的实验资料合集包括了程序和仿真电路图及工程文件
    发表于 09-25 06:43

    stm32单片机如何实现一个按键切换两个程序?

    stm32单片机如何实现一个按键切换两个程序? 作为一款功能强大的微控制器,STM32单片机可以支持多种应用场景,其中一个实用的
    的头像 发表于 09-14 14:22 4457次阅读

    独立按键检测技术讲解

    独立按键根据其击键持续时间可分为短按和长按。在一键多功能技术中,短按和长按所实现功能是不一样的。如MP3播放器中的下一曲按扭,短按时执行的
    的头像 发表于 07-12 11:53 921次阅读
    独立<b class='flag-5'>按键</b>检测技术讲解

    00034 多功能按键#单片机

    单片机
    学习电子知识
    发布于 :2023年07月10日 21:03:33

    说说51单片机多功能按键程序怎么写

    我们的DIY电子时钟上有三个按键,而这三个按键需要完成整个时钟的参数设置,所以就需要用到复用功能按键,也就是今天我们说的多功能
    发表于 06-13 15:04 1838次阅读
    说说51<b class='flag-5'>单片机</b>的<b class='flag-5'>多功能</b><b class='flag-5'>按键</b>程序怎么写