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

广东省网站建设公司排名做网站行业

广东省网站建设公司排名,做网站行业,网站图片如何做链接,软件外包公司创业按键是一种常开型按钮开关#xff0c;与单片机的常见接法如图所示。按键未按下时两个触点断开#xff0c;单片机I/O口输入高电平#xff1b;当按键闭合时#xff0c;I/O口输入低电平。一、按键讲解当I/O口为P0口时#xff0c;由于没有内部上拉电阻#xff0c;所以必须外接… 按键是一种常开型按钮开关与单片机的常见接法如图所示。按键未按下时两个触点断开单片机I/O口输入高电平当按键闭合时I/O口输入低电平。一、按键讲解当I/O口为P0口时由于没有内部上拉电阻所以必须外接上拉电阻当I/O口为P1、P2和P3口时由于内部已有上拉电阻因此可省略外接的上拉电阻。二、按键消抖单片机系统中所使用的键盘都是机械式的弹性按键因为存在机械触点的弹性作用在按键闭合和弹起的瞬间都会出现抖动如图所示。按键抖动一般会持续5~10ms为使一次按键仅被处理一次必须消除按键抖动。消除按键抖动可以采用软件消抖或硬件消抖。软件消抖指在检测到有按键闭合时延时一小段时间之后再次检测如果仍然检测到按键闭合则认为按键真正闭合。硬件消抖方法1.R-S触发器一旦有键按下触发器立即反转触点的抖动便不会再对输出产生影响按键释放时也一样。2.电容滤波将电容并联在按键的两端利用电容放电的延时特性将产生抖动的电平通过电容吸收掉从而达到消抖的作用三、独立按键独立键盘指每个按键都占据一个独立的引脚。四、矩阵按键同一行上的所有按键都连接到一个引脚同一列上的所有按键都连接到一个引脚。(1)列扫描方式所有行线都输出高电平列线依次输出低电平查询该列上行的值若为0则说明该行上的按键被按下若该列上所有行的值都为1则进行下一列行值的查询循环往复。(2)反转法所有行线都输出0查询列线上的值若某列线上的值为0则说明该列线上的按键被按下然后所有列线都输出0查询行线上的值若某行线上的值为0则说明该行线上的按键被按下从而确定某行某列的按键被按下。五、程序举例#include #define uint unsigned int#define uchar unsigned charuint key,key_num;//键盘扫描值键盘键值/********************************************************************///函数名delay_1ms(uint x)//功能利用定时器0精确定时1ms自加 time_t的值为后面时间调整函数服务//调用函数//输入参数x,1ms计数//输出参数//说明延时的时间为1ms乘以x/********************************************************************/void delay_1ms(uint x){ TMOD0X01;//开定时器0工作方式为1 TR01;//启动定时器0 while(x--) { TH00Xfc;//定时1ms初值的高8位装入TH0 TL00X18;//定时1ms初值的低8位装入TL0 while(!TF0);//等待直到TF0为1 TF00; } TR00;//停止定时器0} /**********************************************************///函数名keyscan()//功能得出4x4键盘的行列扫描值//调用函数delay_1ms(uint x)//输入参数//输出参数//说明通过P1口的扫描得出扫描值key无键按下key为16/**********************************************************/uchar keyscan(){ uchar code_h; //行扫描值 uchar code_l; //列扫描值 P10XF0; //P1.0-P1.3全为0(行状态全为低电平) if((P10xF0)!0XF0) //如果P1.4-P1.7不全为1可能有键按下(为准确识别按键动作) { delay_1ms(5); //廷时去抖动为准确识别按键动作 if((P10xF0)!0XF0)//重读高4位(列状态)若还是不全为1定有键按下 { code_h0xfe; //开始行扫描 (0xfe:11111110) while((code_h0x10)!0x00)//判断是否扫描四行(X0~X3)完毕若不是继续扫描(0x10:00010000) { P1code_h; //第1次P1.0置为0,其余高电平第2次P1.1置为0,其余高电平 第3次P1.2置为0,其余高电平第4次P1.3置为0,其余高电平 if((P10xF0)!0XF0) //如果P1.4-P1.7不全为1该行有键按下(0xF0:11110000) { code_l(P10xF0|0x0F);//保留P1口高4位低4位变为1作为列值 return((~code_h)(~code_l));//键盘编码行扫描值列扫描值 (取反后用相当于改为按下按键对应的行、列标识为1其它为0) } else //左移后补0但是我们需要将其他位置1所以1 code_h(code_h1)|0x01; //若该行无键按下行扫描值左移1扫描下一行 } } } return(16); //无键按下返回16 } /**********************************************************///函数名keynum()//功能得出4x4按键的键值//调用函数keyscan()//输入参数//输出参数//说明通过key的值确定按键键值/**********************************************************/void keynum(){ uchar i,j; uchar code tab[4][4]{{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}}; //4x4键盘各键值标注 key16; key keyscan();//引入key值 if((key0x01)!0) i0; //判断出按下按键的行列号 (即找出低电平的行、列) if((key0x02)!0) i1; if((key0x04)!0) i2; if((key0x08)!0) i3; if((key0x10)!0) j0; if((key0x20)!0) j1; if((key0x40)!0) j2; if((key0x80)!0) j3; if(key!16) { key_num tab[i][j];//通过比较得出4x4键盘的键值 } } void main(){ uint shi,ge; shi 0; ge 0; P2 0x16;//初始值 为16 while(1) { keynum(); //获取到键值 if(key!16) { shi key_num/10;//获得十位 ge key_num%10;//获得个位 if(shi) { P2 0x10|ge; } else { P2 ge; } } delay_1ms(10);//延时 }}往期回顾01ESP8266模块详解02DA转换器是什么快来一起学习一下吧03STM32中断优先级详解04STM32下载程序新思路--使用串口下载程序
http://www.pierceye.com/news/966043/

相关文章:

  • 微信公众号商城网站开发湖南省新闻最新消息十条
  • 如何做网站家具导购做哈尔滨本地门户网站赚钱吗
  • 建立网站的步骤有哪些wordpress 主题
  • 网站功能建设中页面个体户做网站有用吗
  • 网站建设具体要求wordpress启用注册
  • 重庆好的网站建设公司车辆管理网站开发
  • 十大SEO网站外链建设误区城乡住房建设部网站保证金
  • 自己做一元夺宝网站dede 管理多个网站
  • 做app还是做微网站好聚美网站开发开题报告
  • 网站建设总结与科技网站建设+长沙
  • 网博士自助建站系统手机wap网站程序
  • 做网站有什么不好竞价广告
  • 个人网站 cms企业做网站的好处有哪些
  • 公司做网站的费用入账国内电商平台网站制作排行榜
  • 做网站电脑开一天用多少钱怎么做网页动图
  • 织梦做网站教程网站风格要求
  • 网站制作用什么编程百度贴吧网页版登录
  • 站长之家ip查询雄安哪里在建设
  • wdcp创建网站网站开发如何找甲方
  • 做网站运营用什么软件高校支付网站建设费需要入无形资产
  • 在那个网站做ppt可以赚钱网页代码怎么看
  • 免费做企业网站广州萝岗网站建设
  • 开奖网站怎么做wordpress添加广告
  • 开网站需要投资多少钱网站设计两边为什么要留白
  • 任丘市做网站价格泰州网络科技有限公司
  • wap网站使用微信登陆推广公司有哪些
  • 深圳分销网站设计制作买了winhost网站空间在哪里登陆
  • 培训网站项目ppt怎么做wordpress主题4mudi
  • 上海专业网站建设市场网站开发验收报告
  • 怎么做网站视频教程做广告牌子