




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简易秒表制作1子情境内容:制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED数码管显示时间。2 子情境目标:(1)通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路(2)学习定时/计数器、中断技术的综合运用并会使用简易键盘3 知识点链接独立式按键的使用:图549为按键与单片机的连接图。机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图5-50所示,抖动时间的长短与开关的机械特性有关,一般为510ms。在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。本子情境中采用软件去抖。图按键与单片机连接图 图按键被按下时电压的变化4 任务步骤41 步骤一:PROTEUS电路设计,简易秒表的原理图如图551所示。1、选取元器件单片机:AT89C51两位共阴极蓝色数码管:7SEG-MPX2-CC-BLUE排阻:RESPACK-8按钮:BUTTON2、放置元器件、放置电源和地、连线、元器件属性设置简易秒表的原理图如图551所示,整个电路设计操作都在ISIS平台中进行。与子情景3相似,故不详述。图简易秒表的原理图42 步骤二:源程序设计与目标代码文件生成(1)程序流程图开始位,变量,数组,子程序声明主程序启动键是否按下?noyes按键防抖停止键是否按下?noyes复位键是否按下?noyes按键防抖按键防抖开定时器关定时器秒表清零是否到20次50ms?noyes秒表清零数码管显示是否到60秒?秒加1yesno图552 秒表流程图(2)源程序设计#include#define uint unsigned int#define uchar unsigned charsbit key1=P30; /定义启动按钮sbit key2=P31; /定义停止按钮sbit key3=P32; /定义复位按钮uchar temp,aa,shi,ge;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /共阴极数码管编码void display(uchar shi,uchar ge); /声明显示子函数void delay(uint z); /声明延时子函数void init(); /声明初始化函数void main()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); /调用显示子函数void delay(uint z) /延时子函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display(uchar shi,uchar ge) /显示子程序P2=0xbf;P0=tableshi;delay(10);P2=0x7f;P0=tablege;delay(10); /使用动态扫描的方法实现数码管显示void init() /初始化子程序temp=0;TMOD=0x01; /使用定时器T0的方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256; /定时50ms中断一次EA=1; /中断总允许ET0=1; /允许定时器T0中断void timer0() interrupt 1TH0=(65536-50000)/256;/重新赋初值TL0=(65536-50000)%256;aa+; /中断一次变量aa的值加1if(aa=20) /中断20次后,定时时间为20*50ms=1000ms=1s,将变量temp的值加1aa=0;temp+;if(temp=60) /秒表到达60s后回零temp=0;shi=temp%100/10;ge=temp%10; /分离个位和十位43 步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到miaobiao.hex文件,单击“打开”按钮,完成添加文件。单击按钮,启动仿真,仿真运行片段如图所示。按下“启动”按钮后,秒表开始计时,如图所示。按下“停止”按钮,秒表停止计时。按下“复位”按钮,秒表回到最初始的状态,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄皮合同和预售合同(标准版)
- 海外出口合同(标准版)
- 烟草湖北公司真题2025
- 鸡西市鸡冠区招聘公益性岗位就业人员考试真题2024
- 数智基础会计 课件 第4、5章 借贷记账法的运用 工业企业主要业务的核算、会计凭证及其智能化
- 安防监控售后服务方案
- 2025年度勘察设计注册环保工程师资格考试固体废物处理处置复习题及答案
- 注册环保工程师考试(大气污染防治专业案例)全真模拟题库及答案(2025年赣州)
- 2025年安徽省邮政行业职业技能大赛(快递员赛项)备赛试题库含答案
- 2025建筑施工企业安管人员考试(企业主要负责人A类)考前冲刺试题及答案
- 厦门信息技术技能测试题目及答案
- 2025江苏宿迁市泗阳县县属国有企业招聘26人笔试历年参考题库附带答案详解
- 2026国网青海省电力公司提前批校园招聘考试参考试题及答案解析
- 子宫发育畸形课件
- 复盘:将经验转化为能力
- 2025年财富管理市场客户需求与服务升级下的行业品牌建设报告
- 肺癌心包积液的护理查房
- 广东省幼儿园课程建设指导纲要(试行)2025
- 2025年音乐教师招聘考试音乐教育心理学实验操作试题
- 索尼微单相机A7 II(ILCE-7M2)使用说明书
- 土地租赁合同范本模板6篇
评论
0/150
提交评论