- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LED0闪烁的代码(二) void delay(unsigned int i) { unsigned int data j,k; /* Approximately i*1000 clock */ for(k=0; ki;k++) for(j=0; j1000;j++); } /*---End of File ---*/ I/O口例程 I/O口作为输出控制LED I/O口作为输入检测开关状态 I/O口作为输入检测矩阵键盘 I/O口作为输入检测开关状态 当开关置于H时,LED0点亮;当开关置于L时,LED0熄灭。 方案设计:开关输入数字型信号,所以可以利用P3作为输入口来控制。因为只检测一个开关的状态,所以可以利用P3的一位口线,如P3.0(RXD)来检测开关状态。LED0的控制方法同前面例题,用P1.0来控制LED0。 I/O口作为输入检测开关状态 由于P3.0作为输入,所以应该先向该I/O口写“1”,使该I/O口工作于输入方式,然后再读引脚。 开关输入的代码(一) #include reg51.h #define LED_ON 0 #define LED_OFF 1 #define L_Level 0 #define H_Level 1 sbit LED0 = P1 ^ 0; sbit Switch = P3 ^ 0; void main(void) { for(;;) { Switch = 1; /* P3.0 input */ if(Swtich == H_Level) { /* Switch is H */ LED0 = ON; /* Turn on LED0 */ } else {/* Switch is L */ LED0 = OFF; /* Turn off LED0 */ } /* if(Swtich == H_Level) */ } /* for(;;) */ } /* main */ P1口接8个发光二极管,P3口接按钮开关S,利用S控制指示灯LED0~LED7,初始状态为LED0~LED7都暗,第一次按S,LED0亮,其他暗,第二次按S,使LED1亮,其他暗… …第八次按S,使LED7亮,其他暗,第九次按S,全暗,如此循环。 用C语言编程。 I/O口实验 I/O口例程 I/O口作为输出控制LED I/O口作为输入检测开关状态 I/O口作为输入检测矩阵键盘 I/O口作为输入检测矩阵键盘 键盘检测电路 1 2 3 4 5 6 * 0 # 7 8 9 下面两种键盘响应方式的区别? 固定电话机键盘检测程序的要求 能够把键码(KeyCode)翻译成键值(Keyvalue)如键码0x41对应键值3 去抖 按键按下后,无论持续多长时间,键盘检测程序都视为一次输入,即不存在“连击” 键盘输入信息的主要过程 CPU判断是否有键按下。 确定按下的是哪一个键。 把此键代表的信息翻译成计算机所能识别的代码,如ASCII或其它特征码。 以上第2、3步主要由硬件完成的,称为编码键盘;如果主要由软件完成,则称为非编码键盘。单片机应用系统中通常采用的是非编码键盘,如行列式键盘。 4*4键盘的扫描程序 查询是否有键按下。 查询按下键所在的行列位置。 对得到的行号和列号译码,得到键值。 键的抖动处理 1.查询是否有键按下 首先单片机向行扫描口P1.0~P1.3输出全为“0”,扫描码F0H,然后从列检测口P1.4~P1.7输入列检测信号,只要有一列信号不为“1”,即P1口不为F0H,则表示有键按下。接着要查出按下键所在的行、列位置。 2. 查询按下键所在的行列位置 单片机将得到的信号取反,P1.4~P1.7中的为1的位便是键所在的列。 接下来要确定键所在的行,需进行逐行扫描。单片机首先使P1.0接地,P1.1~P1.7为“1”,即向P1口发送扫描码FEH,接着输人列检测信号,若为全“1”,表示不在第一行。接着使 P1.1接地,其余为“1”,再读入列信号……,这样逐行发“0”扫描码,直到找到按下键所在的行,将该行扫描码取反保留。当各行都扫描以后仍没有找到,则放弃扫描,认为是键的误动作。 3.对行号和列号译码得到键值 译码可以通过查表的方法。 4.键的抖动处理 当用手按下一个键时,往往会出现所按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况。在释放一个键时,也会出现类似的情况,这就是键抖动,抖动的持续时间不一,通常不会大于10 mo.若抖动问题不解决,就会引起对闭合键的多次读人。 对于键抖动最方便的解决方法就是当发现有键按下后,不是立即进行逐行扫描,而是延时10 ms后再进行。由于键按下的时间持续上百ms,延时后再扫描
您可能关注的文档
- 《创新设计》高考政治一轮复习浙江专用必考配套课件建设社会主义文化强国.ppt
- 第四章 地下结构计算原理和设计方法.ppt
- 中考化学专题复习常见气体的制取课件.ppt
- 常见的酸和碱课件第2课时.ppt
- 金融网点常见拓扑结构 设备 线缆 业务介绍.ppt
- 知乎引流常见问题分析.pptx
- 朱镇华教授耳鼻喉科常见急症—急喉风.ppt
- 项目背景LEGO 简介.ppt
- 第十二讲 剖视图阅读与综合表达方法1.ppt
- 统帅波轮全自动产品培训资料.pptx
- 浙江省温州市浙南名校联盟2025-2026学年高一上学期期中联考数学试题含解析.docx
- 26高考数学提分秘诀重难点34圆锥曲线中的定点、定值、定直线问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点35概率与统计的综合问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点31圆锥曲线中的切线与切点弦问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点30圆锥曲线中的弦长问题与长度和、差、商、积问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点29巧解圆锥曲线的离心率问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点28直线与圆的综合(举一反三专项训练)(全国通用)(含解析).docx
- 寡核苷酸药物重复给药毒性研究技术指南.docx
- 重组溶瘤腺病毒生产质量管理标准.docx
- 26高考数学提分秘诀重难点27直线与圆中常考的最值与范围问题(举一反三专项训练)(全国通用)(含解析).docx
最近下载
- 歌曲《wake》中英文歌词对照.pdf VIP
- 《水利水电工程制图标准 基础制图》(SL 73.1-2013).pdf VIP
- 水性润彩环保内墙乳胶漆化学品安全技术说明书.pdf VIP
- (正式版)DB23∕T 3763-2024 《黑土区侵蚀沟治理工程技术规范》.docx VIP
- 微生物的世界(上海交通大学)国大学MOOC 慕课 章节测验 期末考试答案.pdf VIP
- 《ERP原理与应用》形考任务(1-5)试题及答案解析.pdf VIP
- 安徽省示范高中培优联盟2023-2024学年高二上学期冬季联赛物理试题.docx VIP
- 数字化森林防火应急指挥管理系统解决方案.docx VIP
- T∕YYTC 013-2025 老参地再利用操作规程.pdf VIP
- 外墙立管工程施工技术方案.pdf VIP
原创力文档


文档评论(0)