一键多功能按键识别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.电路原理图
图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
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;
}
}
一键多功能按键识别c语言,单片机一键多功能按键识别设计相关推荐
- 微型计算机只能识别的语言,计算机唯一能直接识别和处理的语言是( )。
答案 查看答案 解析: [解析题]当前,应用计算机解决实际问题的能力主要体现为能够熟练使用OFFICE和网页制作工具操作计算机. [解析题]计算机中的所有信息都是以()的形式存储在机器内部的. [解析 ...
- 单片机音乐播放器课程设计C语言,单片机音乐播放器课程设计中音乐代码怎么弄...
单片机音乐播放器课程设计中音乐代码怎么弄 答案:2 信息版本:手机版 解决时间 2019-10-06 13:16 已解决 2019-10-06 02:07 单片机音乐播放器课程设计中音乐代码怎么弄 ...
- 一键锁屏源代码c语言,Android一键锁屏开发全过程【源码】【附图】
一.项目简介: 项目:<Android 一键锁屏> 开发周期:4天 代码量:100行 ------------------------ 二.项目流程: 三.项目代码 1.主程序代码: Ja ...
- 易语言大漠一键登录实现启动后台绑定游戏
一键启动游戏,采用进程_创建,然后通过获取游戏窗口句柄,可以通过API窗口_取句柄和Findwindow获取窗口句柄,然后后台绑定游戏窗口. 启动游戏 .版本 2.子程序 启动游戏 .局部变量 i, ...
- 易语言大漠一键登录游戏使用FindStrFastE进入游戏
一键登录进入游戏 ,改变了大漠模块的调用方法,使用全局变量dm,让它的类型为E大漠,从而实现免注册到系统,免360之类的查杀,同时讲解了延时延迟的区别,和处理事件()的作用.关键是在找字时,改用了Fi ...
- 易语言大漠一键登录游戏框架思路步骤
游戏登录 我们可以通过大漠插件实现一键登录,设置多线程登录,下面给出流程和思路仅供参考. 我们建立几个子程序,按照以下顺序调用: 1.启动游戏 2.绑定游戏 3.进入游戏 4.选择私服 5.输入账号 ...
- 易语言大漠一键登录账号自动读入组合框列表
从文本文件中 读取账号,然后通过组合框.加入项目()把账号加入到组合框列表中,便于以后登录的时候直接点击组合框中的列表项就可以了,也就是记忆保存了你登录过的账号密码,便于你下次登录时,不需要再次是输入 ...
- ai怎么让图片任意变形_想一键提取图片文字,有什么好的文字识别软件/APP推荐吗?...
工作也有一段时间了,有时候需要把图片中的文字提取出来,转换成电子档式,一开始的时候可能是傻吧,也没想到借用工作减少工作量,就知道埋头拼命敲敲打打,文字比较少的时候还好,多了简直...得颈椎病只是迟早的 ...
- 抢答器c语言程序设计,基于单片机的智能抢答器设计与实现
[摘要]该智能抢答器以51单片机为核心控制器件,通过串行通信,将主机与8路从机连接,实现了有效抢答信号的识别显示.犯规选手识别显示.不同时长的抢答倒计时.不同时长的答题倒计时.提示报警等功能.文章同时 ...
最新文章
- MPB:东林牛犇组玉米根系简化细菌群落的定量与其生物防治效果的评价方法(视频)...
- dwarf调试信息格式入门
- BZOJ 2754: [SCOI2012]喵星球上的点名
- hnu 暑期实训之到底买不买
- Python import容易犯的一个错误
- Oracle中拼出树型结构
- php中对象是引用类型吗?
- 楪祈机器人_饥荒联机版罪恶王冠楪祈MOD下载_饥荒楪祈人物MOD下载_玩游戏网
- 【原创百篇纪念】2048蒙特卡洛法与强化学习测试+B站视频爬取与Cookie攻击测试
- 文本去重的技术方案讨论(一)
- safari 插件安装之alipay
- cad计算机绘图基础知识,机械零件制图识图必须懂的七大基础知识
- ThreadPoolExecutor源码分析
- CV项目肢体动作识别(三)内附完整代码和详细讲解
- MySQL数据库修改数据库名的三种方式
- [原创]-数据仓库ETL开发
- js 斐波那契—卢卡斯数列 例子 以及 变态青蛙
- 美丽链——通过买套内衣读懂“区块链”?
- 双线性插值的python实现
- PCI、CPCI、CPCIE 区别、特点
热门文章
- python源文件编码的含义_【原创】Python 源文件编码解读
- python爬虫爬微信红包_python 微信红包
- mysql 线性表_线性表之顺序存储,基本操作
- LeetCode228场周赛解题报告
- 修改mysql文件的存储路径
- mysql slow log 分析工具_mysql slow log分析工具的比较
- vue开发手机页面闪烁_Vue页面加载闪烁问题的解决方法_婳祎_前端开发者
- pandas object转float_25个Pandas实用技巧
- 6 年大厂面试官,谈谈我对算法岗面试的一些看法
- mikechen谈技术人成长的三大原则