版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 出版社 理工分社单片机应用技术项目教程版项目小结项目小结工程7:呼叫器 出版社 理工分社单片机应用技术项目教程版教学目标教学目标知识目的:1掌握矩阵式键盘的任务原理与接口衔接;2掌握C言语开关语句switch case的运用;3掌握单片机矩阵键盘接口的程序设计方法。 技艺训练目的:1熟习数码管的原理与接口;2熟练运用C言语开关语句switch case;3熟习单片机矩阵键盘接口的程序设计方法。 出版社 理工分社单片机应用技术项目教程版工作任务工作任务 如下图,用AT89C52的并行口P1接44矩阵键盘,以P1.0P1.3作输入线,以P1.4P1.7作输出线;在两位数码管上显示每个按键的“01
2、5序号。对应的按键序号陈列如下图。0123456789101112131415 图7.1 矩阵键盘规划图制造一个基于单片机的键值显示呼叫器 出版社 理工分社单片机应用技术项目教程版项目分析项目分析1.1.系统组成系统组成 本系统功能由硬件和软件两大部份协调完成,硬件部分主要完本系统功能由硬件和软件两大部份协调完成,硬件部分主要完成信息的显示;软件主要完成信号的处置及控制功能等。成信息的显示;软件主要完成信号的处置及控制功能等。 本系统的硬件采用模块化设计,以本系统的硬件采用模块化设计,以AT89C52AT89C52单片机为中心,与单片机为中心,与数码管接口电路、键盘电路组成控制系统。该系统硬件
3、主要包括以数码管接口电路、键盘电路组成控制系统。该系统硬件主要包括以下几个模块:下几个模块:AT89C52AT89C52主控模块、数码管显示模块、键盘模块等。主控模块、数码管显示模块、键盘模块等。其中其中AT89C52AT89C52主要完成外围硬件的控制以及一些运算功能,数码管主要完成外围硬件的控制以及一些运算功能,数码管显示模块完成字符、数字的显示功能;键盘模块主要完成按键处置显示模块完成字符、数字的显示功能;键盘模块主要完成按键处置功能。系统组成方框图如下图。功能。系统组成方框图如下图。一、总体设计一、总体设计 出版社 理工分社单片机应用技术项目教程版项目分析项目分析 运用软件采用模块化设
4、计方法。该系统软件主要由主程序、按键扫描子程序等模块组成,系统软件构造框图如图3.3所示。 数码管显示程序主程序按键扫描与功能程序图73 键值显示控制系统软件构造框图数码管显示按键输入电路复位电路时钟电路电源电路单 片 机图72 键值显示控制系统组成方框图 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台键盘的构造与原理键盘的构造与原理矩阵式键盘 单片机系统中,假设运用按键较多时,通常采用矩阵式键盘,其构造如以下图所示。由图可知,一个44的行、列构造,可以构成一个含有16个按键的键盘,节省了很多I/O口。 控制方式:先判别能否有键按下。如有,再判别哪一键按下,并得到 键码值,然
5、后根据键码值转向不同的功能程序。最常用的识别方法是键盘扫描法。 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台switch case 判别语句 switch case 判别语句switch语句的普通方式如下:switch(表达式)case常量表达式1:语句1; break; case常量表达式2:语句2; break; case常量表达式3:语句3; break; case常量表达式4:语句4; break; default :语句N; 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台2. return2. return语句:语句: return 表达式;表达
6、式;或或 return(表达式表达式); 编写函数时,假设求函数值,就要用编写函数时,假设求函数值,就要用return,假设函,假设函数类型为数类型为void,那么不用,那么不用return语句。语句。return 从当前的方法中退出,前往到该调用的方法的语句处,继续执行;return 前往一个值给调用该方法的语句,前往值的数据类型必需与方法的声明中的前往值的类型一致,可以运用强迫类型转换来是数据类型一致;return 当方法阐明中用void声明前往类型为空时,应运用这种格式,不前往任何值。格式:格式: 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台1return语句只能前往
7、一个结果,假设有多个处置结果需前往调用函数,要采用其他方法。2假设没有return语句,就不断执行到函数体的末尾 ,然后前往调用函数。3流程从调用函数中的哪条语句转移到被调函数,前往时仍回到该语句。即从哪来哪回。哪 特点特点: : 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台1只能在循环体内和switch语句体内运用break语句。2当break出如今循环体中的switch语句体内时,其作用只是跳出该switch语句体。3当break出如今循环体中,但并不在switch语句体内时,那么在执行break后,跳出本层循环体。4在循环构造中,运用break语句使流程跳出本层循环体
8、,从而提早终了本层循环。breakbreak语句语句 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台1 continue语句的普通方式为:continue;2其作用是终了本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进展循环的条件断定。3留意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分,然后决议循环能否继续进展。4在for循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3求值,然后进展“表达式2的条件测试,最后根据“表达式2的值来
9、决议for循环能否执行。在循环体内,不论continue是作为何种语句中的语句成分,都将按上述功能执行,这点与break有所不同。ContinueContinue语句语句 出版社 理工分社单片机应用技术项目教程版项目实施项目实施矩阵式键盘设计与实现矩阵式键盘设计与实现4X4小键盘,16个键分别对应116;有键按下,数码管显示;无键按下,数码管显示00;经过输出的列码和读取的行码来判别按下什么键;有键按下,要有一定的延时,防止由于键盘抖动而引起误操作。 出版社 理工分社单片机应用技术项目教程版项目实施项目实施【活动一】硬件电路设计【活动一】硬件电路设计图图7.7 键值显示控制系统电路图键值显示控
10、制系统电路图XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1
11、225P2.5/A1326P2.6/A1427U1AT89C52X1CRYSTALC220pFR11kC322uFC120pF12345678161514131211109RN14 45 56 67 78 89 910101111121213131414151516163 32 21 1 出版社 理工分社单片机应用技术项目教程版项目实施项目实施【活动二】软件设计1、算法分析与流程图设计:判别有无键按下去除按键的抖动求按键的键值判别闭合键能否释放 主程序设计流程图 出版社 理工分社单片机应用技术项目教程版项目实施项目实施判别按键按下的方法判别按键按下的方法 判别能否有键按下的方法是:向一切的行输
12、出口线输出低电平P1=0 x0f; 不能为高电平,由于假设为高电平,按键按下与否都不会引起行线电平的变化,然后将行线的电平形状读入tmp=P1。假设无键按下,一切的行线仍坚持高电平形状;if(tmp=0 x0f) continue; 假设有键按下,列线中至少应有一条线为低电平,那么转入键扫描程序,确定键位. 出版社 理工分社单片机应用技术项目教程版项目实施项目实施识别按键的方法识别按键的方法 按键识别的扫描方法:往列线上按顺序一列一列的送出低电平。先送第0列为低电平,其他列为高电平,读入的行的电平形状就阐明了第0列的4个键的情况,假设读入的行值全为高电平,那么表示无键按下;再送第1列为低电平,
13、其他列为高电平,读入的行的电平形状那么显示了该行上的4个按键的情况;依次轮番给各列送出低电平,直至4列全部送完,再从第0列开场,依此循环。采用键盘扫描,我们再来察看第2行与第2列交叉点的键按下时的判别过程,当第2列送出低电平常,读第2行为低电平,而其他列送出低电平常,读第2行却为高电平,由此即可断定按下的键应是第2行与第2列交叉点的键。 出版社 理工分社单片机应用技术项目教程版项目实施项目实施主程序设计流程图开场初始化:系统上电显示0键盘扫描:置初始值第1列为0,即P1=0 xef,键值为0判别按键有无按下扫描第一行按下否?扫描第二行按下否?扫描第三行按下否?扫描第四行按下否?最后一列否/?求
14、键值,显示求键值,显示求键值,显示求键值,显示扫描下一列终了 出版社 理工分社单片机应用技术项目教程版项目实施项目实施判别有无键按下判别有无键按下P1.4P1.7输出0,然后读P0口;假设低4位P1.0P1.3全为1,那么键盘上没有键按下;假设P1.0P1.3不全为1,那么有键按下。while(tmp=0 x0f) /循环判别能否有键按下 P1=0 x0f; /一切列输出低电平 tmp=P1; /读行信号 出版社 理工分社单片机应用技术项目教程版项目实施项目实施去除按键的抖动去除按键的抖动当判别到键盘上有键按下后;延时一段时间再判别键盘的形状;假设仍为有键按下形状,那么以为有一个键按下,否那么
15、当作按键抖动来处置。delay10ms(); /延时10ms去抖P1=0 x0f; /一切列输出低电平tmp=P1; /再次读键盘形状if(tmp=0 x0f) continue; /假设无键按下那么以为是按键抖动,重新扫描键盘 出版社 理工分社单片机应用技术项目教程版项目实施项目实施键盘扫描确定键号键盘扫描确定键号对键盘的列线进展扫描,P1.4P1.7循环输出1110、1101、1011和0111,依次读P1口,假设行低4位全为1,那么断定该列上没有键按下;初始化:unsigned char scan_key(void) /键盘扫描子程序 unsigned char n,scan,col,r
16、ol,tmp; bit flag=0; /设有键按下标志位scan=0 xef; /对键盘第0列扫描为0,即P1.40 P1=0 x0f; /行全为1 列扫描: for(n=0;n4;n+) P1=scan; /逐列送出低电平 tmp=P1; /读行值,并取反 tmp=tmp&0 x0f; /tmp=0,无键按下;否那么 有键按下 出版社 理工分社单片机应用技术项目教程版项目实施项目实施求按键的键值求按键的键值否那么,该列上就有键按下,并且就是行线为0,列线为0的交叉点,行号和列号按公式:rol*4+col 计算得到按下键的键值。例如,P1.4P1.7输出1101时,P1口的低四位读入
17、的值为1011,不全为1,就可以断定有键按下,并且是第2行和第1列交叉点的键。于是,该键的键值=24+1=9。按照一样的方法可以得到一切键的键值。如:return(rol*4+col); 出版社 理工分社单片机应用技术项目教程版项目实施项目实施求按键的键值求按键的键值 col=n; / col=n; /保管列号到保管列号到colcol flag=1; / flag=1; /有键按下标志;有为有键按下标志;有为1 1,无为,无为0 0 / /* *判别哪一行有键按下,并保管行号到判别哪一行有键按下,并保管行号到rolrol* */ /if(tmp=0 x01)if(tmp=0 x01) rol=
18、0; break; / rol=0; break; /第第0 0行有键按下行有键按下 else if(tmp=0 x02) else if(tmp=0 x02) rol=1; break; / rol=1; break; /第第1 1行有键按下行有键按下 else if(tmp=0 x04) else if(tmp=0 x04) rol=2; break; / rol=2; break; /第第2 2行有键按下行有键按下 else if(tmp=0 x08) else if(tmp=0 x08) rol=3; break; / rol=3; break; /第第3 3行有键按下行有键按下 el
19、se else flag=0; flag=0; scan=(scan1)+1; scan=(scan1)+1; if(flag=0) if(flag=0) return -1; return -1; else else return(rol return(rol* *4+col);4+col); 出版社 理工分社单片机应用技术项目教程版项目实施项目实施【活动三】系统仿真调试【活动三】系统仿真调试 启动Keil uVision4软件,创建新工程:CH7.UVPROJ,CPU选择Atmel 89C52。 对工程的属性进展设置:目的属性中选择“生成HEX文件。 编写参考源程序CH7.c,以C为扩展名
20、保管在工程文件夹中。 将参考源程序参与程序组:鼠标右键单击程序组图标,参与文件组。 调试:进入调试形状,期间能够需求修正参考源程序,直到没有语法错误为止。翻开相应窗口,运转程序,察看运转结果。 出版社 理工分社单片机应用技术项目教程版项目实施项目实施【活动四】实物制造【活动四】实物制造键值显示系统实物图 出版社 理工分社单片机应用技术项目教程版项目小结项目小结独立式按键8 0 3 1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7Vc c接口电路: 出版社 理工分社单片机应用技术项目教程版项目考核项目考核考核项目考核内容技术要求评分标准得分备注总体设计任务分析方案设计软件和硬件功能划分任务明确(5分);方案设计合理、有新意(10分);软件和硬件功能划分合理(5分);20分硬件设计片内器件分配;电路原理图设计;电路板制作;片内器件分配正确、合理(5分);电路原理图设计正确(10分);电路板制作:布线正确、整齐、合理(5分);20分软件设计算法和数据结构设计;流
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年大学轻工纺织食品专业大学物理下册期末考试试题A卷-含答案
- 石河子大学《中学历史课程标准与教材分析》2022-2023学年第一学期期末试卷
- 石河子大学《遥感数字图像处理》2023-2024学年第一学期期末试卷
- 一抹红的诗句
- 石河子大学《习近平总书记关于教育的重要论述研究》2023-2024学年第一学期期末试卷
- 石河子大学《生药学实验》2021-2022学年第一学期期末试卷
- 石河子大学《基础素描》2023-2024学年第一学期期末试卷
- 沈阳理工大学《专业创新课程-嵌入式计算机产品案例》2023-2024学年期末试卷
- 沈阳理工大学《信号与系统》2021-2022学年第一学期期末试卷
- 沈阳理工大学《人工智能实例与应用》2023-2024学年期末试卷
- 手机棋牌平台网络游戏商业计划书
- 学校体育与社区体育融合发展的研究
- 医疗机构高警示药品风险管理规范(2023版)
- 一年级体质健康数据
- 八年级物理(上)期中考试分析与教学反思
- 国家开放大学《财政与金融(农)》形考任务1-4参考答案
- 2023银行网点年度工作总结
- 工厂反骚扰虐待强迫歧视政策
- 计算机教室(微机室)学生上机使用记录
- Photoshop(PS)教学课件:第6章调色
- FAI首件检验报告
评论
0/150
提交评论