当前位置: 首页 > news >正文

如何做能上传视频网站seo课程培训机构

如何做能上传视频网站,seo课程培训机构,拉企业做网站好干吗,凯里市经济开发区建设局网站6.1矩阵键盘 矩阵键盘: 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态 1.数码管扫描(输出扫描) 原理:显示第1位→显示第2位→显示第3位→ …… ,然后快速循环这个过程,最终实现所…

6.1矩阵键盘

矩阵键盘:
· 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式
· 采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态
1.数码管扫描(输出扫描)
原理:显示第1位→显示第2位→显示第3位→ …… ,然后快速循环这个过程,最终实现所有数码管同时显示的效果
2.矩阵键盘扫描(输入扫描)
原理:读取第1行(列)→读取第2行(列)→读取第3行(列)→ …… ,然后快速循环这个过程,最终实现所有按键同时检测的效果
· 以上两种扫描方式的共性:节省I/O口
在这里插入图片描述
main.c

#include <REGX52.H>
#include "Delay.h"		//包含Delay头文件
#include "LCD1602.h"	//包含LCD1602头文件
#include "MatrixKey.h"	//包含矩阵键盘头文件unsigned char KeyNum;void main()
{LCD_Init();							//LCD初始化LCD_ShowString(1,1,"MatrixKey:");	//LCD显示字符串while(1){KeyNum=MatrixKey();				//获取矩阵键盘键码if(KeyNum)						//如果有按键按下{LCD_ShowNum(2,1,KeyNum,2);	//LCD显示键码}}
}

MatrixKey.c

#include <REGX52.H>
#include "Delay.h"/*** @brief  矩阵键盘读取按键键码* @param  无* @retval KeyNumber 按下按键的键码值如果按键按下不放,程序会停留在此函数,松手的一瞬间,返回按键键码,没有按键按下时,返回0*/
unsigned char MatrixKey()
{unsigned char KeyNumber=0;P1=0xFF;P1_3=0;if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=1;}if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=5;}if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=9;}if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=13;}P1=0xFF;P1_2=0;if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=2;}if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=6;}if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=10;}if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=14;}P1=0xFF;P1_1=0;if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=3;}if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=7;}if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=11;}if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=15;}P1=0xFF;P1_0=0;if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=4;}if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=8;}if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=12;}if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=16;}return KeyNumber;
}

例:if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=1;}
1.在扫描第一列时,如果P1_7 == 0,那么此时是判断开关1的状态
2.由于是机械按键,加入延时函数消除抖动,然后判断是否松手;如果松手,继续消除抖动
3.返回值KeyNumber

MatrixKey.h

#ifndef __MATRIXKEY_H__
#define __MATRIXKEY_H__unsigned char MatrixKey();#endif

6.2矩阵键盘密码锁

1.定义按键功能:S1-S9定义为数字的1-9,S10定义为0,S11为确认键,S12为取消键,S13-S16按键不用
2.判断KeyNum <= 10,然后实现密码左移,同时要加入一个计次变量,按下确认或者取消按键后密码计次清零

#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"unsigned char KeyNum;
unsigned int Password,Count;void main()
{LCD_Init();LCD_ShowString(1,1,"Password:");while(1){KeyNum=MatrixKey();if(KeyNum){if(KeyNum<=10)	//如果S1~S10按键按下,输入密码{if(Count<4)	//如果输入次数小于4{Password*=10;				//密码左移一位Password+=KeyNum%10;		//获取一位密码Count++;	//计次加一}LCD_ShowNum(2,1,Password,4);	//更新显示}if(KeyNum==11)	//如果S11按键按下,确认{if(Password==2345)	//如果密码等于正确密码{LCD_ShowString(1,14,"OK ");	//显示OKPassword=0;		//密码清零Count=0;		//计次清零LCD_ShowNum(2,1,Password,4);	//更新显示}else				//否则{LCD_ShowString(1,14,"ERR");	//显示ERRPassword=0;		//密码清零Count=0;		//计次清零LCD_ShowNum(2,1,Password,4);	//更新显示}}if(KeyNum==12)	//如果S12按键按下,取消{Password=0;		//密码清零Count=0;		//计次清零LCD_ShowNum(2,1,Password,4);	//更新显示}}}
}
http://www.hengruixuexiao.com/news/31345.html

相关文章:

  • 海南智能网站建设报价关键词你们都搜什么
  • 做日本ppt的模板下载网站奶茶店推广软文500字
  • 高校档案室网站建设近期热点新闻事件
  • 建网站需要什么手续h5制作网站
  • c 做的比较牛逼的网站叫什么怎么自己开发网站
  • 网站建设 办公系统网站推广公司排行榜
  • 建筑网站首页设计百度关键词优化送网站
  • 做网站编辑累不累最佳bt磁力猫
  • 网站布局策划的流程汕头百度seo公司
  • 兰州网站建设王道下拉強推广方案有哪些
  • 如何做一张旅游网站游戏推广合作
  • 做淘宝网站目的seddog站长之家
  • 公司做网站费用会计处理百度云链接
  • 深圳红酒包装深圳画册设计西安seo优化培训
  • oss怎么做网站在线工具网站
  • 建设银行观澜支行网站四川省人民政府
  • 2023年疫情6月几号结束免费seo工具大全
  • 做网站3年大侠seo外链自动群发工具
  • 佛山营销型网站建设公司ui设计公司
  • 公司做网站费用会计分录想在百度做推广怎么做
  • 广州微信网站建设咨询班级优化大师的功能
  • 广州专业网站制作哪家专业整站优化代理
  • 背景模板优化seo厂家
  • 网站建设软件排行招代理最好的推广方式
  • 成都asp网站建设全网关键词云怎么查
  • 重庆招聘一般上什么网站什么是百度搜索推广
  • 做视频网站收费标准深圳今日重大新闻
  • 网站建设售后培训广告推广平台赚取佣金
  • 手机域名注册网站短视频剪辑培训班速成
  • 重庆潼南网站建设公司广州seo优化推广