基于单片机时钟设计

上传人:wt****50 文档编号:35335863 上传时间:2018-03-14 格式:DOC 页数:5 大小:30.50KB
返回 下载 相关 举报
基于单片机时钟设计_第1页
第1页 / 共5页
基于单片机时钟设计_第2页
第2页 / 共5页
基于单片机时钟设计_第3页
第3页 / 共5页
基于单片机时钟设计_第4页
第4页 / 共5页
基于单片机时钟设计_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于单片机时钟设计》由会员分享,可在线阅读,更多相关《基于单片机时钟设计(5页珍藏版)》请在金锄头文库上搜索。

1、基于天祥单片机的时钟设计,用到的是单片机内部的晶振,没有用时钟芯片 操作时 使用四个独立按键 用的是数码管显示 没有用液晶显示 随后更新液晶显示系列#include #define uint unsigned int #define uchar unsigned char sbit key1=P34; sbit key2=P35; sbit key3=P36; sbit key4=P37; sbit a=P26; sbit b=P27; sbit led=P10; uchar code table= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x

2、6f,0x77,0x7c,0x39,0x5e,0x79,0x71; void shuma(uchar,uchar,uchar,uchar,uchar,uchar); void delay(uint); uchar num,num1,num2,shi,ge,fen1,fen2,num3,shi1,shi2,num4; void keyscan(); void main() TMOD=0x11; EA=1; TH0=(65536-45872)/256; TL0=(65536-45872)%256; ET0=1; TR0=1; TH1=(65536-45872)/256; TL1=(65536-45

3、872)%256; ET1=1; TR1=1; while(1) keyscan(); if(num2=20) num2=0; num+; if(num=60) num=0; num3=num3+1; if(num3=60) num3=0; num4=num4+1; if(num4=24) num4=0; fen2=num3/10; fen1=num3%10; shi=num/10; ge=num%10; shi2=num4/10; shi1=num4%10; shuma(shi,ge,fen2,fen1,shi2,shi1); void shuma(uchar shi,uchar ge,uc

4、har fen2,uchar fen1,uchar shi2,uchar shi1) /数码管循 环 a=1; P0=tableshi; a=0; P0=0xef; b=1; P0=0xef; b=0; delay(2);a=1; P0=tablege; a=0; P0=0xff; b=1; P0=0xdf; b=0; delay(2);a=1; P0=tablefen2; a=0; P0=0xff; b=1; P0=0xfb; b=0; delay(2);a=1; P0=tablefen1; a=0; P0=0xff; b=1; P0=0xf7; b=0; delay(2);a=1; P0=

5、tableshi2; a=0; P0=0xff; b=1; P0=0xfe; b=0; delay(2);a=1; P0=tableshi1; a=0; P0=0xff; b=1; P0=0xfd; b=0; delay(2); void delay(uint x) /延迟 uint i,j;for(i=x;i0;i-)for(j=110;j0;j-); void keyscan() if(key1=0) /S2 键 键入加一 delay(10);/去抖延时 if(key1=0) num4+; if(num4=24) num4=0; while(!key1)shuma(shi,ge,fen2,

6、fen1,shi2,shi1);/经典之处:按下一次按键未松手 时,key1=0,停止在 while 的死循环中,不会再给 num 加数 if(key2=0) /S2 键 键入减一 delay(10); if(key2=0) num3+; if(num3=60) num3=0; num4+; if(num4=24) num4=0; while(!key2) shuma(shi,ge,fen2,fen1,shi2,shi1); if(key3=0)/置零 delay(10); num=0; while(!key3) shuma(shi,ge,fen2,fen1,shi2,shi1); if(ke

7、y4=0)/是否定时器 delay(10); if(key4=0); num4=23; num3=59; num=58; while(!key4) shuma(shi,ge,fen2,fen1,shi2,shi1);/TR0=TR0; /定时器的状态 void T0_time() interrupt 1 /中断后 LED 闪烁 TH0=(65536-45872)/256; TL0=(65536-45872)%256; num1+; if(num1=20)num1=0;led=led; void T1_time() interrupt 3 /中断后数码管 TH1=(65536-45872)/256; TL1=(65536-45872)%256; num2+;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号