新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C51單片機(jī)運(yùn)用定時(shí)器T0中斷實(shí)現(xiàn)電子時(shí)鐘

C51單片機(jī)運(yùn)用定時(shí)器T0中斷實(shí)現(xiàn)電子時(shí)鐘

作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏


上面是電路原理圖

本文引用地址:http://m.butianyuan.cn/article/201612/324655.htm

下面是程序源代碼:
/*****************************************************************************
功能描述:運(yùn)用定時(shí)器T0實(shí)現(xiàn)電子時(shí)鐘
**************************************************************************/
#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();
}

//以下屏蔽內(nèi)容為 利用兩個(gè)外部中斷來調(diào)整“時(shí),分”
/*void tiaof() interrupt 0 //分針調(diào)整
{
if(p32==0)
{
delay();
if(p32==0)
{
number=0;
number0++;
while(!p32);
if(number0>=60)
number0=0;
}
}
}

void tiaos() interrupt 2 //時(shí)針調(diào)整
{
if(p33==0)
{
delay();
if(p33==0)
{
number=0;
number1++;
while(!p33);
if(number1>=24)
number1=0;

}
}
}
*/

//運(yùn)用獨(dú)立按鍵來調(diào)整“時(shí),分”
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;

}
}
}


上一頁 1 2 下一頁

評論


技術(shù)專區(qū)

關(guān)閉