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

    文章

    10309

    浏览量

    176432
  • 单片机
    +关注

    关注

    6074

    文章

    45340

    浏览量

    663415
  • AT89S51
    +关注

    关注

    3

    文章

    229

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    单片机原理及应用详解

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

    单片机是怎么控制的

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

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

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

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

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

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

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

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

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

    U盘一键制作

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

    基于51/32单片机按键控制步进电机正反转,A4988驱动

    基于51/32单片机按键控制步进电机正反转,A4988驱动
    发表于 04-14 15:05 6次下载

    三一挖掘一键启动开关易坏的原因及更换注意事项

    三一挖掘一键启动开关易坏的原因虽然三一挖掘一键启动系统设计旨在提高便利性和安全性,但在实际使用中,可能会出现些问题导致开关易坏。这些
    发表于 03-12 09:29

    LoRa无线一键报警安防建设方案

    SOS紧急呼叫按钮具有紧急情况下一键报警的功能,可与报警主机配合使用,支持标准LoRaWAN协议。lora紧急按钮具有紧急情况下一键报警功能,可与报警主机配合使用,支持标准LoRaWA
    的头像 发表于 02-28 14:41 1016次阅读
    LoRa无线<b class='flag-5'>一键</b>报警安防建设方案

    开关柜一键顺控在一键停电、一键送电中的作用

    蜀瑞创新为大家科普,开关柜一键顺控技术在一键停电和一键送电中发挥了快速响应、减少人为错误、提高安全性、简化操作流程、降低操作风险、提高送电成功率等综合优势,对于提升电力系统的运行效率、安全性以及自动化水平具有重要意义。
    的头像 发表于 02-27 09:13 1241次阅读

    蓝桥杯中GPIO输入之按键实验

    常见的是触点式开关按键。在单片机应用系统中,除了复位按键有专门的复位电路及专的复位功能外,其他按键
    的头像 发表于 01-09 21:02 1338次阅读
    蓝桥杯中GPIO输入之<b class='flag-5'>按键</b><b class='flag-5'>实验</b>

    单片机Debug工具性能对比 单片机调试常用命令

    。以下是对单片机调试工具性能的简要对比以及些常用的调试命令。 单片机Debug工具性能对比 Keil uVision 性能 :Keil uVision 是
    的头像 发表于 12-19 09:56 2161次阅读

    求解答!用STC89C51系列数字秒表

    实验室学51单片机,用STC89C51系列,作业太难了,求佬给源代码帮助下谢谢 1.通过定时器,8位数码管,8个独立按键完成1000秒以内的数字秒表,最小分辨0.1秒,设置启动计秒
    发表于 12-08 16:48