- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五、作业过程 1.识读电路图 图3.24 蜂鸣器理解原理图 * 2.安装电路 (1)对器材进行检测。 (2)根据原理图找到相应元件在电路板上的位置 * (3)按电路图进行安装、焊接 图3.25 安装焊接图 * 3.编写控制程序 (1)蜂鸣器发声流程 图3.26 控制蜂鸣器发声流程图 * (2)源程序代码 #includeat89x52.h sbit speaker=P3^3;∥位定义 void delay1ms(unsigned int z)∥1 ms延时程序 { unsingedint x,y;/* for(x=z;x0;x--)用KELL软件可以调试出延时1 ms的程序, for(y=114;y0;y--);该程序调试的频率为11.059 2 MHz。 }*/ * (2)源程序代码 void main(void) { while(1)∥无限循环 { speaker=1;∥高电平停止发声 delay1ms (50);∥延时50 ms speaker=0;∥低电平发出声音 delay1ms (50);∥延时50 ms } } * 4.程序调试 (1)下载程序 (2)调试程序 * 在这个任务中,我们明白了控制蜂鸣器发声的原理,了解了函数调用时程序的执行顺序。通过发声原理和按键配合使用就可以实现在报警、提示音等功能的实现。 * 任务4 4×4矩阵键盘扫描 一、任务引入 图3.28 矩阵式键盘 * 二、任务要求 (1)识读矩阵键盘的原理图。 (2)能正确安装16个矩阵按键。 (3)掌握矩阵键盘的扫描原理。 (4)学会编写检测某个按键是否按下的程序。 * 三、准备工作 (1)安装电路板一块。 (2)独立按键16个 1.器材准备 图3.29 按键矩阵器材准备图 * 2.工具准备 工具一套。 * 四、作业流程图 图3.30 矩阵键盘扫描作业流程图 * 五、作业过程 1.识读电路图 图3.31 矩阵键盘原理图 * 2.安装按键电路 (1)对器材进行检测。 (2)根据原理图找到相应元件在电路板上的位置 * (3)按电路图进行安装、焊接 图3.32 实物焊接图 * 3.编写控制程序 (1)矩阵键盘程序流程 图3.33 键盘扫描流程图 * (2)源程序代码 #include REGX51.H unsigned int a[]={0xff,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e}; unsigned int temp,num; char keyscan(); void delay(unsigned int z)∥1 ms延时程序 { unsingedint x,y; * (2)源程序代码 for(x=z;x0;x--)∥用Keit软件可以调试出延时1 ms的程序, for(y=114;y0;y--);∥该程序调试的频率为11.059 2 MHz。 } voidmain() {while(1) { if(num==1||num==2||num==3||num==4) if(num==5||num==6||num==7||num==8) if(num==9||num==10||num==11||num==12) if(num==13||num==14||num==15||num==16) * (2)源程序代码 P3=a[keyscan()]; ∥调用键盘扫描并返回所按下按键的值 } } char keyscan() { P1=0xef; ∥给P1口赋值(1110 1111),让第一行为∥低电检测第一行是否有键按下 temp=P1; ∥把P1口现在的值读回来,如没有键按∥下,那么返回的仍然为0xef,如果有键按∥下,则在P1的高四位定有一个和P0.0 ∥口接通,即为低电平 * (2)源程序代码 temp=temp0x0f;∥把返回的值与0x0f相与,我们只要求判∥断高位的那个键被按下。相与以后再∥把与了的结果放到temp中 while(temp!=0x0f) ∥当与后的值不等于0x0f,则说明有键按 ∥下了,那么就去执行相应的程序,否则∥检测第二行 { delay(10);∥延时消抖,一般抖动时间为10 ms temp=P1;∥再一次确定按下的键是哪一个 temp=temp0x0f; * (2)源程序代码 while(temp!=0x0f)∥若仍然不等于0x0f,表明确实有键按∥下,则进入程序判断按下的是第一行的 ∥哪个按键 { temp=P1;∥再一次把P1口的值给temp变量 switch(temp)∥多分支选择语句,用temp的值与case ∥后面的值比较,相同就执行对应case语句 { ca
您可能关注的文档
- 单片机应用技术任务14 用PC机控制秒表的启停与清0.ppt
- 单片机应用技术任务15 制作数字电压表.ppt
- 单片机应用技术任务20 制作电动机控制器.ppt
- 单片机应用技术实例教程第1章 51单片机基础.ppt
- 单片机应用技术实例教程第2章 51单片机的应用系统设计和软件开发环境.ppt
- 单片机应用技术实例教程第3章 51单片机的C51语言基础.ppt
- 单片机应用技术实例教程第4章 51单片机的并行I O端口及其应用.ppt
- 单片机应用技术实例教程第5章 51单片机的中断系统和外部中断.ppt
- 单片机应用技术实例教程第6章 51单片机的定时计数器.ppt
- 单片机应用技术实例教程第7章 51单片机的串行通信模块.ppt
原创力文档


文档评论(0)