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

大学生做推送的网站仙桃网站设计公司

大学生做推送的网站,仙桃网站设计公司,做电影网站有什么好处和坏处,linchong.wordpress#x1f3ac; 秋野酱#xff1a;《个人主页》 #x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 矩阵按键原理图按键状态检测单行按键状态检测多行按键状态检测 状态记录状态优化循环优化 矩阵按键 矩阵键盘是一种常见的数字输入… 秋野酱《个人主页》 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 矩阵按键原理图按键状态检测单行按键状态检测多行按键状态检测 状态记录状态优化循环优化 矩阵按键 矩阵键盘是一种常见的数字输入设备由多行多列的按键组成。每个按键都有一个唯一的行列坐标通过行列坐标可以确定按键的编号从而实现对数字或字母的输入。 原理图 矩阵键盘的基本结构包括按键、行引脚和列引脚。按键一般是机械按键或触摸按键行引脚和列引脚分别与矩阵键盘的行和列相连用于检测按键的输入状态。 按键状态检测 单个按键状态检测 ● 输出端的电平 ● 输入端的状态 ● 按键抬起 通过按键抬起时的状态我们分析输入端的电平信号来确定抬起时输入端的默认电平状态。 通过按键按下时的状态我们分析输入端的电平信号来确定按下时输入端的默认电平状态。 通过分析确认默认输出端和输入端都是高电平 ● 当输出端输出低电平时输入端为高电平则开关为抬起状态 ● 当输出端输出低电平时输入端为低电平则开关为按下状态 单行按键状态检测 通过逐一检测输入端的状态来判断按键是否按下。 多行按键状态检测 首先将第一行输出低电平其余行设置为高电平。目的是为了只测试第一行的按键状态。 然后将第二行输出低电平其余行设置为高电平。目的是为了只测试第二行的按键状态。 接着将第三行输出低电平其余行设置为高电平。目的是为了只测试第三行的按键状态。 最后将第四行输出低电平其余行设置为高电平。目的是为了只测试第四行的按键状态。 状态记录 通过自定义状态来记录按键状态 // 记录16个按键状态0为按下1为抬起 u16 key_state 0xFFFF;......void scan() { // 初始都是 高电平ROW_COL_RESET();NOP1();// ROW1// 给 row1 低电平读取COL1的值ROW1 0;NOP1();// 当前是UP当之前是DOWN则为UP// 当前是DOWN当之前是UP则为DOWN if(COL1 ! (key_state 0x01) 0) {if(COL1) {// 修改当前状态为UPkey_state | 0x01;printf(K1 Up\r\n);} else {// 修改当前状态为DOWNkey_state ~0x01;printf(K1 Down\r\n);}}...... }状态优化 通过define优化一些数值的操作方便在后续看代码时方便理解提高代码的阅读性。 // 记录16个按键状态0为按下1为抬起 u16 key_state 0xFFFF;#define KEY_UP 1 #define KEY_DOWN 0 // 第n个按键的状态 #define KEY_STATE(n) ((key_state (1 n)) n) #define SET_KEY_UP(n) (key_state | (1 n)) #define SET_KEY_DOWN(n) (key_state ~(1 n))#define ROW_COL_RESET() {ROW11,ROW21,ROW31,ROW41;COL11,COL21,COL31,COL41;}......void scan() {// 初始都是 高电平ROW_COL_RESET();NOP1();// ROW1// 给 row1 低电平读取COL1的值ROW1 0;NOP1();// 当前是UP当之前是DOWN则为UP// 当前是DOWN当之前是UP则为DOWNif(COL1 ! KEY_STATE(0)) {if(COL1) {// 修改当前状态为UPSET_KEY_UP(0);printf(K1 Up\r\n);} else {// 修改当前状态为DOWNSET_KEY_DOWN(0);printf(K1 Down\r\n);}}...... }循环优化 操作的按键众多通过循环的方式来操控每一个按键减少代码量方便维护。 #define ROW 4 #define COL 4// 记录16个按键状态0为按下1为抬起 u16 key_state 0xFFFF;#define KEY_UP 1 #define KEY_DOWN 0 // 第n个按键的状态 #define KEY_STATE(r, c) ((key_state (1 (r * ROW c))) (r * ROW c)) #define SET_KEY_UP(r, c) (key_state | (1 (r * ROW c))) #define SET_KEY_DOWN(r, c) (key_state ~(1 (r * ROW c)))#define ROW_COL_RESET() {ROW11,ROW21,ROW31,ROW41;COL11,COL21,COL31,COL41;}void scan() {u8 i, j;for(i 0; i ROW; i) {// 初始都是 高电平ROW_COL_RESET();NOP1();ROW_ON(i);for(j 0; j COL; j) {// 当前是UP当之前是DOWN则为UP// 当前是DOWN当之前是UP则为DOWNif(COL_STATE(j) ! KEY_STATE(i, j)) {if(COL_STATE(j)) {// 修改当前状态为UPSET_KEY_UP(i, j);printf((%d, %d) Up\r\n, (int)i, (int)j);} else {// 修改当前状态为DOWNSET_KEY_DOWN(i, j);printf((%d, %d) Down\r\n, (int)i, (int)j);}}}} }
http://www.hkea.cn/news/14433879/

相关文章:

  • 推广网站优化怎么做网站建设方案服务器
  • 网站外包维护一年多少钱东莞英文建站公司
  • 企业网站建设制作公司创业邦使用什么网站模板
  • 上海网站建设百度推广公司哪家好广州广告公司有哪些
  • 做房产的一般用哪个网站好展馆设计的主题有哪些
  • ui设计师怎么做简历网站wordpress 调用模板
  • 网站建设的架构设计个人网站模版
  • 网站个人微信收款方案做1688网站到哪里找图片
  • 建设 网站协议开发软件难吗
  • 女人与狗做网站哪些人需要做网站
  • 建一个网站 服务器机房托管价格简述企业网站维护的重要性
  • 苏州网站建设营销百度开放云 wordpress
  • 东莞网站推广企业圣辉友联北京网站建设公司
  • 网站浏览历史记录恢复方法是什么郑州云拓网站建设公司
  • 浦口区建设局网站商务网站策划方案
  • 蓝盾信息做网站吗展览网站模板
  • 网络推广方案的概念天津seo排名收费
  • 迅驰互联网站建设网络推广怎么样wordpress模板底部的版权文字
  • 自己做的网站别人企业网站的内容
  • 做网站 视频加载太慢冬夜主题wordpress
  • iss怎么做网站dw网页设计成品免费下载
  • 网站建设如何创业最新领导班子
  • 购买网站模版可以自己做吗做早餐煲汤网站
  • 网站建设与数据库管理福州自适应网站建设
  • 自助创建网站腾讯企业邮箱扫码登录
  • 怎么分辨网站是不是h5做网站开发语言
  • 建一个公司网站花多少钱wordpress 获取表单数据
  • 用C语言做网站登录界面免费又实用的网站
  • 自助建站优化如何开发属于自己的小程序
  • 网站备案vpn注销成都市网站公司