版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..简易秒表制作1子情境容:制作简易秒表,利用按键构成键盘实现秒表的启动、停顿与复位,利用LED数码管显示时间。2子情境目标:〔1〕通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路〔2〕学习定时/计数器、中断技术的综合运用并会使用简易键盘3知识点独立式按键的使用:图5-49为按键与单片机的连接图。机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图5-50所示,抖动时间的长短与开关的机械特性有关,一般为5~10ms。在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是屡次操作,这种情况是不允许出现的。为了克制按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。本子情境中采用软件去抖。图按键与单片机连接图图按键被按下时电压的变化4任务步骤4.1步骤一:PROTEUS电路设计,简易秒表的原理图如图5-51所示。1、选取元器件①单片机:AT89C51②两位共阴极蓝色数码管:7SEG-MPX2-CC-BLUE③排阻:RESPACK-8④按钮:BUTTON2、放置元器件、放置电源和地、连线、元器件属性设置简易秒表的原理图如图5-51所示,整个电路设计操作都在ISIS平台中进展。与子情景3相似,故不详述。图简易秒表的原理图4.2步骤二:源程序设计与目标代码文件生成〔1〕程序流程图开场位,变量,数组,子程序声明主程序开场位,变量,数组,子程序声明主程序启动键是否按下"noyes按键防抖停顿键是否按下"noyes复位键是否按下"noyes按键防抖按键防抖开定时器关定时器秒表清零是否到20次50ms`"noyes秒表清零数码管显示是否到60秒`"秒加1yesno图5-52秒表流程图〔2〕源程序设计#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitkey1=P3^0;//定义"启动"按钮sbitkey2=P3^1;//定义"停顿"按钮sbitkey3=P3^2;//定义"复位"按钮uchartemp,aa,shi,ge;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴极数码管编码voiddisplay(ucharshi,ucharge);//声明显示子函数voiddelay(uintz);//声明延时子函数voidinit();//声明初始化函数voidmain(){ init(); //调用初始化子程序 while(1) { if(key1==0)//检测"启动"按钮是否按下 { delay(10);//延时去抖动 if(key1==0)//再次检测"启动"按钮是否按下 { while(!key1);//松手检测,假设按键没有释放,key1始终为0,那么!key1始终为1,程序就一直停在此while语句处 TR0=1;//启动定时器开场工作 } } if(key2==0)//检测"停顿"按钮是否按下 { delay(10);//延时去抖动 if(key2==0)//再次检测"停顿"按钮是否按下 { while(!key2);//松手检测 TR0=0;//关闭定时器 } } if(key3==0)//检测"复位"按钮是否按下 { delay(10); //延时去抖动 if(key3==0)//再次检测"复位"按钮是否按下 { while(!key3);//松手检测 temp=0;//将变量temp的值清零 shi=0;//将十位清零 ge=0;//将个位清零 TR0=0;//关闭定时器 } } display(shi,ge);//调用显示子函数 }}voiddelay(uintz)//延时子函数{ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voiddisplay(ucharshi,ucharge)//显示子程序{ P2=0xbf; P0=table[shi]; delay(10); P2=0x7f; P0=table[ge]; delay(10);//使用动态扫描的方法实现数码管显示}voidinit()//初始化子程序{ temp=0; TMOD=0x01;//使用定时器T0的方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256;//定时50ms中断一次 EA=1;//中断总允许 ET0=1;//允许定时器T0中断 }voidtimer0()interrupt1{ TH0=(65536-50000)/256;//重新赋初值 TL0=(65536-50000)%256; aa++;//中断一次变量aa的值加1if(aa==20)//中断20次后,定时时间为20*50ms=1000ms=1s,将变量temp的值加1 { aa=0; temp++; if(temp==60)//秒表到达60s后回零 { temp=0; } shi=temp%100/10; ge=temp%10; //别离个位和十位 } }4.3步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框ProgramFile一栏中单击翻开按钮,出现文件浏览对话框,找到miaobiao.hex文件,单击"翻开〞按钮,完成添加文件。单击按钮,启动仿真,仿真运行片段如下图。按下"启动〞按钮后,秒表开场计时,如下图。按下"停
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省泉州市南安国光中学2024年毕业班阶段性测试(一)数学试题试卷
- 专业运营总监劳务协议范例版B版
- 2025-2030全球2,3,4-三氯硝基苯行业调研及趋势分析报告
- 2025年全球及中国商用船反渗透制水机行业头部企业市场占有率及排名调研报告
- 2025年全球及中国隔音房间隔断板行业头部企业市场占有率及排名调研报告
- 2025年全球及中国IG541灭火系统行业头部企业市场占有率及排名调研报告
- 2025年全球及中国不锈钢接头行业头部企业市场占有率及排名调研报告
- 2025-2030全球高色素特种炭黑行业调研及趋势分析报告
- 2025-2030全球6-溴-2萘酚行业调研及趋势分析报告
- 2025-2030全球数字化水产养殖管理系统行业调研及趋势分析报告
- 专题6.8 一次函数章末测试卷(拔尖卷)(学生版)八年级数学上册举一反三系列(苏科版)
- GB/T 4167-2024砝码
- 老年人视觉障碍护理
- 《脑梗塞的健康教育》课件
- 《请柬及邀请函》课件
- 辽宁省普通高中2024-2025学年高一上学期12月联合考试语文试题(含答案)
- 《个体防护装备安全管理规范AQ 6111-2023》知识培训
- 青海原子城的课程设计
- 2023年年北京市各区初三语文一模分类试题汇编 - 作文
- 常州大学《新媒体文案创作与传播》2023-2024学年第一学期期末试卷
- 麻醉苏醒期躁动患者护理
评论
0/150
提交评论