ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:1.12MB ,
资源ID:8927718      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8927718.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机实验秒表设计说明.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51单片机实验秒表设计说明.docx

1、51单片机实验秒表设计说明实验报告一、实验名称10秒计时的秒表设计二、实验内容精确到0.1秒的秒表三、相关模块led数码管、usb、独立键盘四、实验代码#include reg52.h typedef unsigned int u16; /对数据类型进行声明定义typedef unsigned char u8;sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;sbit k1=P31;sbit k2=P30;sbit k3=P32; sbit k4=P33;u8 code smgduan17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x0

2、7, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;u16 s,sec;unsigned int i;unsigned int j;unsigned int a,b,c,d;u8 mb2;void Timer0Init() TMOD|=0X01;/选择为定时器0模式,工作方式1,仅用TR0打开启动。 TH0=0XFC; /给定时器赋初值,定时1ms TL0=0X18; TR0=0;/打开定时器 void delay(u16 n) while(n-); void DigDisplay1(u16 i) switch(i) case(0): LSA=0;LSB=0;

3、LSC=0; break; case(1): LSA=1;LSB=0;LSC=0; break; case(2): LSA=0;LSB=1;LSC=0; break; case(3): LSA=1;LSB=1;LSC=0; break; case(4): LSA=0;LSB=0;LSC=1; break; case(5): LSA=1;LSB=0;LSC=1; break; case(6): LSA=0;LSB=1;LSC=1; break; case(7): LSA=1;LSB=1;LSC=1; break; if (i=1) P0=smgduanmbi+0x80;/发送段码 else P0

4、=smgduanmbi; delay(1); /间隔一段时间扫描 P0=0x00;/消隐void DigDisplay2(u16 i) i=i+3; switch(i) case(0): LSA=0;LSB=0;LSC=0; break; case(1): LSA=1;LSB=0;LSC=0; break; case(2): LSA=0;LSB=1;LSC=0; break; case(3): LSA=1;LSB=1;LSC=0; break; case(4): LSA=0;LSB=0;LSC=1; break; case(5): LSA=1;LSB=0;LSC=1; break; case(

5、6): LSA=0;LSB=1;LSC=1; break; case(7): LSA=1;LSB=1;LSC=1; break; if (i=4) P0=smgduana+0x80; else P0=smgduanb; delay(1); P0=0x00;void DigDisplay3(u16 i) i=i+6; switch(i) case(0): LSA=0;LSB=0;LSC=0; break; case(1): LSA=1;LSB=0;LSC=0; break; case(2): LSA=0;LSB=1;LSC=0; break; case(3): LSA=1;LSB=1;LSC=0

6、; break; case(4): LSA=0;LSB=0;LSC=1; break; case(5): LSA=1;LSB=0;LSC=1; break; case(6): LSA=0;LSB=1;LSC=1; break; case(7): LSA=1;LSB=1;LSC=1; break; if (i=7) P0=smgduanc+0x80; else P0=smgduand; delay(1); P0=0x00;void key1() delay(10); if(k1=0) TR0=!TR0; while(!k1); void key2() delay(10); if(k2=0) s=

7、0; sec=0; while(!k2); void key3() delay(10); if(k3=0) if (j=0) j=1; else j=0; if (j=1) a=mb1; b=mb0; if (j=0) c=mb1; d=mb0; while(!k3); void key4() delay(10); if(k4=0) s=0; sec=0; a=0; b=0; c=0; d=0; while(!k2); void main() Timer0Init(); i=0; j=0; while(1) delay(10); key1(); if(TF0=1) TF0=0; TH0=0XF

8、C; /给定时器赋初值,定时1ms TL0=0X18; s+; if(s=60) s=0; sec+; if(sec=100)sec=100; key2(); mb0=sec%10; mb1=(sec/10)%10; key3(); DigDisplay1(i); DigDisplay2(i); DigDisplay3(i); i+; i=i%2; key4(); 5、实验效果K1作用:启动、开始或暂停计时K2作用:计数位清零K3作用:记录当前时间并显示K4作用:清零所有的数码管六、实验遇到的问题经过前几次的实验,0到10秒的计数已经不成问题,本次实验的难点主要在几个按键的功能实现上。其中最难的便是K3按键,K3按键不仅需要保存当前时间,还要将时间覆盖现实到数码管上。为此,我分别使用了abcd四个变量来保存当前时间,并用3个显示函数来实现数据的分别显示。虽然这使得代码略显复杂,但却不失为一个简单有效的办法。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1