一键多功能按键识别c语言,单片机一键多功能按键识别设计

1.实验任务

如图4.9.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.电路原理图

e011e8e732f468b8a70c19e58bfbbbb2.png

图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.程序框图

f290f7fdc6a84a4be501901552408e2e.gif

图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

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;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能会取代科学家吗

来源:光明日报传统认为,科技工作因其高度的创新性,因此科技工作者很难被人工智能取代。但日前,国际学术期刊《自然》发表的一篇论文吸引了大家的眼球。科学家们改造了一种汽车装配线上常见的机器人,让它可以在化学实验…

C语言if( x)的意思,c语言中if(x)是什么意思?_后端开发

对比说明PHP7的优化提升_后端开发此篇张是我对PHP7跟PHP以前版本做的一个对比&#xff0c;先来说下PHP7带来的新东西&#xff1a;类型的声明、【set_exception_handler()】、新增操作符“??”“<>”、匿名函数、define定义常量数组、命名空间引用优化等。c语言中if(x)表…

钱老论逻辑、思维科学、智能机(一)

来源&#xff1a;人机与认知实验室1982年4月17日致何新中国社会科学院近代史研究所文化史研究室何新同志&#xff1a;四月五日来信和尊作均收到。我对哲学和逻辑学都是外行&#xff0c;有时想想这方面的问题&#xff0c;也只是业余爱好而已。您来下问于我&#xff0c;不敢不答&…

c语言vbs,我的vbs整人程序

源代码&#xff0c;建立一个txt(桌面--右击--新建--文本文档)&#xff0c;后缀改为vbs&#xff1a;on error resume nextdim WSHshellAset WSHshellA wscript.createobject("wscript.shell")WSHshellA.run "cmd.exe /c shutdown -s -t 60 -c ""说我是…

《自然》评价“天问一号”成功发射—— 全球深空探索走进新时代

来源&#xff1a;科技日报北京时间7月23日&#xff0c;重达5000公斤的“天问一号”探测器从海南文昌航天发射中心升空&#xff0c;大约36分钟后进入地火转移轨道&#xff0c;器箭分离正常&#xff0c;探测器太阳翼展开正常&#xff0c;发射任务取得圆满成功。全球著名期刊、英国…

Hinton最新演讲透露下一代神经网络模型的构想 | SIGIR 2020

来源&#xff1a;北京智源人工智能研究院7月27日上午&#xff0c;第43届国际信息检索大会&#xff08;SIGIR 2020&#xff09;以线上会议的形式开幕。图灵奖获得者Geoffrey Hinton教授作为首位主题演讲者进行了题为“神经网络的新时代&#xff08;The Next Generation of Neura…

从社会数据到社会智慧的社会计算:新技术、新哲学、新文科

来源&#xff1a;中国指挥与控制学会从社会数据到社会智慧的社会计算&#xff1a;新技术、新哲学、新文科——王飞跃研究员在中国社会科学院大学举办的“计算与人文社科融合创新高端论坛”暨“计算社会科学研究中心”成立大会上的主题报告观点人物介绍王飞跃研究员&#xff0c;…

2017-2018-1 20155338 《信息安全系统设计基础》第七周学习总结

2017-2018-1 20155338 《信息安全系统设计基础》第七周学习总结 教材学习内容总结 Y86-64指令集体系结构 程序员可见状态 概念&#xff1a;Y86程序中的每条指令会读取或修改处理器状态的某些部分&#xff0c;这些称之为处理器的可见状态。 Y86处理器状态可以访问和修改程序寄存…

android动态加home,Android 解决监听home键的几种方法

Android 解决监听home键的几种方法前言&#xff1a;以下两种方法可以完美解决监听back键&#xff0c;home键&#xff0c;多任务键(最近任务键)。一、使用注册广播监听home键、多任务键演示图创建一个广播代码如下&#xff1a;class InnerRecevier extends BroadcastReceiver {f…

英特尔大地震!解雇首席工程官,7纳米延期,或面临集体诉讼……

物联网智库 整理发布转载请注明来源和出处2020年的世界很不太平。纵观全球&#xff0c;疫情、洪水、蝗灾……尽管各种天灾人祸频繁上演&#xff0c;美股却一路向好&#xff0c;苹果、特斯拉等股价飙升。但有人欢喜有人愁&#xff0c;英特尔迎来自己的黑色星期五——上周五股价暴…

开源项目解读 —— Self-Operating Computer Framework # 长期主义 # 价值

价值&#xff1a;生成主函数业务逻辑函数思维导图&#xff0c;帮助理解&#xff0c;PR到开源项目&#xff0c;希望帮助大家理解IPA工作原理&#xff0c;国内没有好的开源项目&#xff0c;我就来翻译分析解读&#xff0c;给大家抛砖引玉。思维导图用文心一言配合其思维导图插件实…

对表格内容进行筛选!

<!DOCTYPE html><head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <title>Test js</title> </head> <script type"text/javascript"> function onSearch(obj){//js函数开…

两个几何世界

文章来源&#xff1a;原理━━━━多年前&#xff0c;物理学家在试图弄清楚弦理论的一些细节的过程中&#xff0c;观察到了一种奇异的对应关系&#xff1a;从一种几何世界出现的数字与来自截然不同的几何世界中的极为不同的数字完全匹配。对于物理学家而言&#xff0c;这种对应…

看了 72 位图灵奖得主成就,才发现我对计算机一无所知

来源&#xff1a;人工智能AI技术今天是计算机科学之父、人工智能之父 艾伦麦席森图灵 诞辰 108 周年。作为“图灵意志”的传承者&#xff0c;依照惯例&#xff0c;在今日纪念这位伟人。从“图灵机”到“图灵测试”&#xff0c;从破译德军的 Enigma 到自杀之谜&#xff0c;图灵一…

prop attr 到底哪里不一样?

好吧 首先承认错误 说好的每天进行一次只是总结 但是我没坚持住 准确的来说 我并没有每天会学到了东西 但是 我一直在持续努力着 以后应该不会每天都写 但是自己觉得有用的 或者想加强记忆的 可能会写出来 我前段时间 看书的时候 注意到prop() 但是一直没用到过 今天就探…

【深度学习】解析深度神经网络背后的数学原理

来源&#xff1a;产业智能官解析深度网络背后的数学如今&#xff0c;已有许多像 Keras, TensorFlow, PyTorch 这样高水平的专门的库和框架&#xff0c;我们就不用总担心矩阵的权重太多&#xff0c;或是对使用的激活函数求导时存储计算的规模太大这些问题了。基于这些框架&#…

unity android 分包,Unity以分包(obb)形式集成到安卓原生 我慢慢填坑

Unity以分包(obb)形式集成到安卓原生 我慢慢填坑Unity以分包(obb)形式集成到安卓原生 我慢慢填坑工作中有需要将unity项目集成到安卓原生中&#xff0c;随着工作推进需要分包去发布到google &#xff0c;那么这时候就需要在unity出包时进行分包(android project obb)。使用方法…

73岁Hinton老爷子构思下一代神经网络:属于无监督对比学习

机器之心报道编辑&#xff1a;魔王、杜伟在近期举行的第 43 届国际信息检索年会 (ACM SIGIR2020) 上&#xff0c;Geoffrey Hinton 做了主题为《The Next Generation of Neural Networks》的报告。Geoffrey Hinton 是谷歌副总裁、工程研究员&#xff0c;也是 Vector Institute 的…

面向对象引子

描述两个角色: 1 def hum(name,age,job):2 """这是代表一个人"""3 data {4 name:name,5 age:age,6 job:job7 }8 9 return data 10 11 def dog(name,type): 12 """这是代表一条旺财…

下一个十年的C位:物联网产业全景解析

来源&#xff1a;北京物联网智能技术应用协会导语&#xff1a;庄子曰&#xff1a;“天地与我并生&#xff0c;而万物与我为一”庄子将天地万物与人平等对待&#xff0c;打破了“以人类为中心”的桎梏。如果说互联网是以“人的需求”为中心构建的&#xff0c;那么物联网&#xf…