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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数码管显示时间.docx

1、数码管显示时间/* 计时器* 用到138译码器P22 P23 P24* 数码管接到P0端口* 通过按K4可以切换闹铃与时间显示* 按K1可以调秒数(调设置时间的秒数,后同),按K2可以调分数,K3可以调小时数*/#include#define uint unsigned int #define uchar unsigned char sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;sbit Beep = P15 ;sbit K1=P31;sbit K2=P30;sbit K3=P32;sbit K4=P33;#define First LSA=0;LSB=0;LS

2、C=0 /138译码器位数设置#define Second LSA=1;LSB=0;LSC=0#define Third LSA=0;LSB=1;LSC=0#define Fourth LSA=1;LSB=1;LSC=0#define Fifth LSA=0;LSB=0;LSC=1#define Sixth LSA=1;LSB=0;LSC=1#define Seventh LSA=0;LSB=1;LSC=1#define Eighth LSA=1;LSB=1;LSC=1uchar code DIG_CODE16=0x03f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

3、0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码uchar Time=0;uchar miao1=0,miao2=0,fen1=0,fen2=0,shi1=0,shi2=0;char Setmiao1=-1,Setmiao2=0,Setfen1=0,Setfen2=0,Setshi1=0,Setshi2=0;void TimerConfiguration();void delayms(uchar x);void Timer(); /时间显示void SetingTime(); /时间设置vo

4、id Clock(); /闹铃void SetingClock(); /闹铃时间设置void SetingClockDisplay(); /闹钟设置显示void Delay(unsigned int i) ; /蜂鸣器所用延时main() uchar Num=1; Beep=0; TimerConfiguration(); while(1) if(K4=0) /通过K4来选择是计时还是设置闹铃 delayms(1); if(K4=0) Num+; while(!K4); if(Num=2) Num=0; if(Num) SetingClock(); else SetingTime(); Tim

5、er(); Clock(); void SetingTime() /时间设置 if(K1=0) delayms(1); if(K1=0) miao1+; while(!K1); else if(K2=0) delayms(1); if(K2=0) fen1+; while(!K2); else if(K3=0) delayms(1); if(K3=0) shi1+; while(!K3); else void Timer() /时间显示 if(Time=20|Time20) /每秒miao1+ Time=0; miao1+; else /显示:在第一位显示秒的个位 P0=0x00; First

6、; P0=0x00; P0=DIG_CODEmiao1; if(miao1=10) miao1=0; miao2+; else /显示秒的十位 P0=0x00; Second; P0=0x00; P0=DIG_CODEmiao2; if(miao2=6) miao2=0; fen1+; P0=0x00; /显示第三位的“-” Third; P0=0x00; P0=0x40; if(fen1=10) fen1=0; fen2+; else /显示分的个位 P0=0x00; Fourth; P0=0x00; P0=DIG_CODEfen1; if(fen2=6) fen2=0; shi1+; el

7、se /分的十位 P0=0x00; Fifth; P0=0x00; P0=DIG_CODEfen2; P0=0x00; /显示第六位的“-” Sixth; P0=0x00; P0=0x40; if(shi1=10) shi1=0; shi2+; else /显示时的个位 P0=0x00; Seventh; P0=0x00; P0=DIG_CODEshi1;/ P0=0x00; if(shi2=2) shi2=0; else /显示时的十位 P0=0x00; Eighth; P0=0x00; P0=DIG_CODEshi2;/ P0=0x00; void SetingClock() /闹铃时间设

8、置 SetingClockDisplay(); /闹钟设置显示/*通过按键来设置闹铃时间*/ if(K1=0) delayms(1); if(K1=0) Setmiao1+; while(!K1); else if(K2=0) delayms(1); if(K2=0) Setfen1+; while(!K2); else if(K3=0) delayms(1); if(K3=0) Setshi1+; while(!K3); else /*时间的进位设置*/ if(Setmiao1=10) Setmiao1=0; Setmiao2+; if(Setmiao2=6) Setmiao2=0; Set

9、fen1+; if(Setfen1=10) Setfen1=0; Setfen2+; if(Setfen2=6) Setfen2=0; Setshi1+; if(Setshi1=10) Setshi1=0; Setshi2+; if( (Setshi2=2)&(Setshi1=3) ) /即23时 Setshi1=0; Setshi2=0; void Clock() /闹铃 if( (Setmiao1=miao1)&(Setmiao2=miao2)&(Setfen1=fen1)&(Setfen2=fen2)&(Setshi1=shi1)&(Setshi2=shi2) ) while(1) Be

10、ep=1; Delay(5); Beep=0; Delay(5); void SetingClockDisplay() /闹钟设置显示 P0=0x00; First; P0=0x00; P0=DIG_CODESetmiao1; P0=0x00; Second; P0=0x00; P0=DIG_CODESetmiao2; P0=0x00; Fourth; P0=0x00; P0=DIG_CODESetfen1; P0=0x00; Fifth; P0=0x00; P0=DIG_CODESetfen2; P0=0x00; Seventh; P0=0x00; P0=DIG_CODESetshi1; P

11、0=0x00; Eighth; P0=0x00; P0=DIG_CODESetshi2;void TimerConfiguration() /中断的设置 TMOD = 0x01; /选择工作方式1 TH0 = 0x3C; /设置初始值,定时50MS TL0 = 0xB0; EA = 1; /打开总中断 ET0 = 1; /打开定时器0中断 TR0 = 1; /启动定时器0/* 函数名 : Timer0()* 函数功能 : 定时器0中断函数* 输入 : 无* 输出 : 无*/ void Timer0() interrupt 1 TH0 = 0x3C; /设置初始值 TL0 = 0xB0; Time+;void delayms(uchar x) /x*10毫秒 uchar a,b,c; for(c=x;c0;c-) for(b=38;b0;b-) for(a=130;a0;a-); void Delay(unsigned int i) /蜂鸣器用延时函数 char j; for(i; i 0; i-) for(j = 200; j 0; j-);

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

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