教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

51单片机数码管电子时钟程序

来源:网络收集 时间:2026-04-28
导读: 这是一个以8位数码管做的电子时钟程序,包括整点报时 #includereg52.h #define uint unsigned int #define uchar unsigned char uchar miao,fen,shi,m,f,s,num,num2,num1,num4; uchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sb

这是一个以8位数码管做的电子时钟程序,包括整点报时

#include<reg52.h>

#define uint unsigned int #define uchar unsigned char

uchar miao,fen,shi,m,f,s,num,num2,num1,num4;

uchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sbit beep=P3^7; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

void xiansi( uchar aa,uchar bb,uchar cc) { P2=0xdb; P0=0xbf; delay(1); P0=0xff; // num2++;

if(num1==1&num2==0|num1==1&num2==1) { P2=0xff; P0=table1[aa%10]; delay(1); P0=0xff; P2=0xff; P0=table1[aa/10]; delay(1); P0=0xff; } else { P2=0xfe; P0=table1[aa%10]; delay(1); P0=0xff; P2=0xfd; P0=table1[aa/10]; delay(1); P0=0xff; }

if(num1==2&num2==0|num1==2&num2==1) { P2=0xff;

这是一个以8位数码管做的电子时钟程序,包括整点报时

P0=table1[bb%10]; delay(1); P0=0xff; P2=0xff; P0=table1[bb/10]; delay(1); P0=0xff; } else { P2=0xf7; P0=table1[bb%10]; delay(1); P0=0xff; P2=0xef; P0=table1[bb/10]; delay(1); P0=0xff; }

if(num1==3&num2==0|num1==3&num2==1) { P2=0xff; P0=table1[cc%10]; delay(1); P0=0xff; P2=0xff; P0=table1[cc/10]; delay(1); P0=0xff; } else { P2=0xbf; P0=table1[cc%10]; delay(1); P0=0xff; P2=0x7f; P0=table1[cc/10]; delay(1); P0=0xff; } //if(num2==256)num2=1; }

void jishi( ) //计时函数

这是一个以8位数码管做的电子时钟程序,包括整点报时

{ if(num==20) //重复计数20次为一秒钟 { beep=1; num=0; miao++; if(miao==60) { miao=0; fen++; if(fen==60) { fen=0; shi++; if(shi==24) shi=0; } } if(miao==0&fen==0)beep=~beep; } xiansi(miao,fen,shi); } void init(void) //初始化函数 { TMOD=0x01; TH0=0x3c; TL0=0xb0; TH1=0x3c; TL1=0xb0; EA=1; ET0=1;

TR0=1; // 定时/计数器0计时开始 ET1=1;

TR1=1; // 定时/计数器1计时开始 } void key()//按键函数 { P1=0xfe; //功能键 if(P1==0xee) { delay(10); if(P1==0xee) {

这是一个以8位数码管做的电子时钟程序,包括整点报时

beep=0; while(P1==0xee)xiansi(miao,fen,shi); beep=1; num1++; TR0=0; if(num1==4){num1=0;TR0=1;} xiansi(miao,fen,shi); } }

if(num1!=0) { if(P1==0xde) //时间加 { delay(10); if(P1==0xde) { beep=0; while(P1==0xde)xiansi(miao,fen,shi); beep=1; switch(num1) { case 1 : miao++; if(miao==60)miao=0; break; case 2 : fen++; if(fen==60)fen=0; break; case 3 : shi++; if(shi==24)shi=0; break; } } } if(P1==0xbe);//时间减 { delay(10); if(P1==0xbe) { beep=0; while(P1==0xbe)xiansi(miao,fen,shi);

这是一个以8位数码管做的电子时钟程序,包括整点报时

beep=1; switch(num1) { case 1 : miao--; if(miao==-1)miao=59; break; case 2 : fen--; if(fen==-1)fen=59; break; case 3 : shi--; if(shi==-1)shi=23; break; } } } } }

void main() ////////////////////////主函数 { init(); while(1) { jishi(); key(); } }

void zhongduan() interrupt 1 //中断函数 { TH0=0x3c; //初值重装 TL0=0xb0; num++; }

void zhongduan1() interrupt 3 //中断函数 { TH1=0x3c; //初值重装 TL1=0xb0; num2++; if(num2==3)num2=0;

这是一个以8位数码管做的电子时钟程序,包括整点报时

}

…… 此处隐藏:631字,全部文档内容请下载后查看。喜欢就下载吧 ……
51单片机数码管电子时钟程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/125232.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)