- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.9 任务4 简易密码锁设计 4.9.1 键盘工作原理 4.9.2 独立式按键 4.9.3 矩阵式按键 4.9.4 矩阵键盘密码锁设计 4.9.5 程序分析 4.9.6 调试与仿真运行 * * * 4.9.1 键盘工作原理 1.开关的分类 2.键输入原理 3.键盘与单片机接口需解决的问题 * * * (1)键盘开关状态的可靠输入 单片机应用系统通常使用触点式按键开关,其主要功能是把机械上的通断转换成为电气上的连接关系。触点式按键按下或释放时,由于机械弹性作用的影响,触点通常伴随有一定时间的机械抖动,从而使输入到单片机的电压信号也出现抖动,其抖动过程如图4-14(a)所示。抖动时间的长短与开关的机械特性有关,一般为5?10 ms。 (2)对按键进行编码以给定键值 一组按键或键盘都要通过单片机I/O口线查询按键的开关状态。根据键盘结构的不同,采用不同的编码方法。无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转 * * * 4.9.2 独立式按键 1.独立式按键结构 独立式按键电路结构 键控流水灯扫描流程图 * * * 在C51语言中,实现循环的语句主要有3种。 1.While语句的一般形式 While(表达式) {语句; /*循环体*/} 2.do-while 语句的一般形式 do {语句;} /*循环体*/ while (表达式); 3.for 语句的一般形式 for (表达式1;表达式2;表达式3) {语句;} /*循环体*/ * * * 4.5 C51的数组 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类型数据元素的集合称为数组。 在C语言中,数组属于构造数据类型。一个数组可以分解为多个数据元素,这些数据元素可以是基本的数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 * * * 4.5 C51的数组 4.5.1 一维数组 4.5.2 二维数组 4.5.3 字符数组 4.5.4 查表 * * * 4.5.1 一维数组 1.一维数组的定义方式 类型说明符 数组名 [整型常量表达式];例如:int a[10]; 它表示数组名为a,此数组有10个元素。 2.一维数组的初始化 对数组元素的初始化可以用以下方法实现: 1)在定义数组时对数组元素赋予初值。例如: int a[10]={0,1,2,3,4,5,6,7,8,9}; 2)可以只给一部分元素赋值。例如: int a[10]={0,1,2,3,4}; 3)在对全部数组元素赋初值时,可以不指定数组的长度。例如: int a[5]={1,2,3,4,5}; 也可以写成: int a[]={1,2,3,4,5}; * * * 3.一维数组元素的引用 数组必须先定义,后使用。C51语言规定只能逐个引用数组元素而不能一次引用整个数组。数组元素的表示形式为: 数组名[下标] , 下标可以是整型常量或整型表达式。如: a[0]=a[5]+a[7]-a[2*3]; * * * 4.5.2 二维数组 1.二维数组定义的一般形式 类型说明符 数组名[常量表达式][ 常量表达式] 例如 int a[3][4],b[5][10]; 定义a为3x4(3行4列)的数组,b为5x10(5行10列)的数组。数组元素为int型数据。 C51语言对二维数组采用这样的定义方式,使我们可以把二维数组看作一种特殊的一维数组:它的元素又是一维数组。例如把a看做一个一维数组,它有3个元素:a[0]、a[1]、a[2],每一个元素又是一个包含4个元素的一维数组,如图所示。 * * * 2.二维数组的初始化 (1) 按行赋初值 数据类型 数组名[行常量表达式][列常量表达式]={{第0行初值表},{第1行初值表},…,{最后1行初值表}}; (2) 按二维数组在内存中的排列顺序给各元素赋初值 数据类型 数组名 [行常量表达式][ 列常量表达式]={初值表}; 3.二维数组元素的引用 数组名 [行下标表达式][ 列下标表达式] (1)“行下标表达式”和“列下标表达式”,都应是整型表达式或符号常量。 (2)“行下标表达式”和“列下标表达式”的值,都应在已定义数组大小的范围内。 (3) 对基本数据类型的变量所能进行的操作,也适合于相同数据类型的二维数组元素。 * * * 4.5.3 字符数组 字符数组就是元素类型为字符型(char)的数组,字符数组是用来存放字符的。在字符数
原创力文档


文档评论(0)