资讯详情

C51单片机运用定时器T0中断实现电子时钟

上面是电路原理图

下面是程序源代码: /***************************************************************************** 功能描述:运用定时器T0实现电子时钟 **************************************************************************/ #include"reg52.h" #include"intrins.h" #define uint unsigned int #define uchar unsigned char sbit p32=P3^2; sbit p33=P3^3; uchar num; uint number,number0,number1; uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};

void tiaoz(); void delay() { uint b; for(b=300;b>0;b--); }

void time() interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; num++; //tiaoz(); }

//以下屏蔽内容为 利用两个外部中断来调整“时,分” /*void tiaof() interrupt 0 //分针调整 { if(p32==0) { delay(); if(p32==0) { number=0; number0++; while(!p32); if(number0>=60) number0=0; } } }

void tiaos() interrupt 2 //时针调整 { if(p33==0) { delay(); if(p33==0) { number=0; number1++; while(!p33); if(number1>=24) number1=0; } } } */ //运用独立按键来调整“时,分” void tiaoz0() { if(p32==0) { delay(); if(p32==0) { number=0; number0++; while(!p32); if(number0>=60) number0=0; } } if(p33==0) { delay(); if(p33==0) { number=0; number1++; while(!p33); if(number1>=24) number1=0; } } }

void tiaoz() //调整子程序 { if(num==20) //如果20次到了则说明一秒时间到 { num=0; number++; if(number==60) //如果number=60说明满一分钟,则向分钟数加一 { number=0; number0++; if(number0==60) //如果number0=60说明60分钟已经满,向时加一 { number0=0; number1++; if(number1==24) //如果number1>24,则从0开始 number1=0; } } } P0=table[number1/10]; //时的十位 P2=0; delay(); P0=table[number1%10]; //时的个位 P2=1; delay(); P0=table[10]; P2=2; delay(); P0=table[number0/10]; //分的十位 P2=3; delay(); P0=table[number0%10]; //分的个位 P2=4; delay(); P0=table[10]; P2=5; delay(); P0=table[number/10]; //取出秒的十位并且显示该数 P2=6; delay(); //秒的十位 P0=table[number%10]; //送秒的个位给最后一只 P2=7; //打开数码管8 秒的个位 delay(); }

void main() { TMOD=0X01; TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; //外部中断启动 /* EX0=1; IE1=1; EX1=1; IE0=1; */ ET0=1; TR0=1; while(1) { tiaoz0(); tiaoz(); } }

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台