日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開(kāi)發(fā)網(wǎng)

電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> 單片機(jī) >> 正文

STC12C2052AD單片機(jī)控制的數(shù)碼管時(shí)鐘程序及電路圖

作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2018-03-07


     STC12C2052AD單片機(jī)控制的數(shù)碼管時(shí)鐘,數(shù)碼管是共陽(yáng)4位時(shí)鐘數(shù)碼管,由于使用單片機(jī)真驅(qū),電路比較簡(jiǎn)單,且使用的材料和工具也很簡(jiǎn)單,用數(shù)碼管顯示,單片機(jī)控制,兩個(gè)按鍵調(diào)時(shí),蜂鳴器整點(diǎn)報(bào)時(shí)。所需要的元件如下:

       材料有以下這些:
        STC12C2052AD單片機(jī)一片
        黃色共陽(yáng)4位時(shí)鐘數(shù)碼管一塊
        6mm×6mm按鍵兩個(gè)
        杜邦線插針2p兩個(gè)
        無(wú)源蜂鳴器一個(gè)
        20腳+14腳芯片座各一個(gè)
        洞洞板一塊(截取一小部分)
        100歐電阻4個(gè)

單片機(jī)時(shí)鐘實(shí)物圖 

STC12C2052AD單片機(jī)控制的數(shù)碼管時(shí)鐘程序及電路圖 

單片機(jī)時(shí)鐘零件實(shí)物圖 

程序如下:

/************************************************************************************/

#include <STC12C2052AD.h>  //聲明頭文件

sbit key1=P3^4;  //按鍵接口定義

sbit key2=P3^5;  //按鍵接口定義

sbit speaker=P3^7;  //蜂鳴器接口定義

/************************************************************************************/

unsigned char code LED[10]={0x20,0xA7,0x90,0x82,0x07,0x42,0x40,0xA6,0x00,0x02};//數(shù)碼管段位碼定義

unsigned int time; //全局秒基準(zhǔn)定義

/*-------------------------------------延時(shí)函數(shù)-------------------------------------*/

void delayms (unsigned int a){

unsigned int i;

while( --a != 0){

for(i = 0; i < 600; i++);

}

}

/*----------------------------------蜂鳴器驅(qū)動(dòng)函數(shù)----------------------------------*/

void beep (void)

{  

unsigned char i=30;

while(i--)

{

speaker=~speaker;

delayms(3);

    }

}

/*----------------------------------數(shù)碼管驅(qū)動(dòng)函數(shù)----------------------------------*/

void display (unsigned char hour,min)

{

unsigned char H1,H2,M1,M2;

P3=0xf8; //數(shù)碼管位選

P1 = LED[H1];     //數(shù)碼管段選

delayms (2); //掃描延時(shí)

P3=0xf4; //數(shù)碼管位選

P1 = LED[H2];     //數(shù)碼管段選

delayms (2); //掃描延時(shí)

P3=0xf2; //數(shù)碼管位選

P1 = LED[M1];     //數(shù)碼管段選

delayms (2); //掃描延時(shí)

P3=0xf1; //數(shù)碼管位選

P1 = LED[M2];     //數(shù)碼管段選

delayms (2); //掃描延時(shí)

/*--------------------------------------分定義--------------------------------------*/

M1=min/10;//取分十位

min=min%10;//取余 

M2=min;//取分個(gè)位

/*--------------------------------------時(shí)定義--------------------------------------*/

H1=hour/10;//取時(shí)十位

hour=hour%10;//取余 

H2=hour;//取時(shí)個(gè)位

}

/*-----------------------------------按鍵去抖函數(shù)-----------------------------------*/

void qudou (unsigned char hour,min)

{

unsigned char i;

for(i=0;i<25;i++){//循環(huán)顯示,等于鍵盤(pán)去抖的功能

display (hour,min);

}

}

/*--------------------------------------主函數(shù)--------------------------------------*/

void main(void)

{

////定時(shí)器初始設(shè)置

TMOD=0x01;//定時(shí)器工作方式1

TH0=0x3C;//定時(shí)器初始產(chǎn)生50ms時(shí)基信號(hào)

TL0=0xB0;//定時(shí)器初始產(chǎn)生50ms時(shí)基信號(hào)

ET0=1;//開(kāi)定時(shí)器中斷

EA=1;//開(kāi)總中斷

TR0=1;//啟動(dòng)定時(shí)器

/*************************************************************************************/

while(1)

{

unsigned char hour,min;//定義時(shí)分


display (hour,min);//調(diào)用顯示函數(shù)


if (time>59)//60秒向分進(jìn)1

{

time=0;

min++;

   }

if (min>59)//60分向時(shí)進(jìn)1

{

min=0;

hour++;

beep ();

    }

if (hour>23)//24時(shí)時(shí)分秒清零

{

hour=0;

min=0;

time=0;

}

/*-----------------------------------按鍵判斷程序-----------------------------------*/

if(key1==0)

qudou (hour,min);

if (key1==0) {hour++;}


if(key2==0)

qudou (hour,min);

if (key2==0) {min++;}

}

}

/*-----------------------------------中斷服務(wù)程序-----------------------------------*/

void Timer0_Routine(void) interrupt 1

{

unsigned char a;

TH0=0x3C;//定時(shí)器初始產(chǎn)生50ms時(shí)基信號(hào)

TL0=0xB0;//定時(shí)器初始產(chǎn)生50ms時(shí)基信號(hào)

    a++;//定時(shí)器循環(huán)計(jì)數(shù)20次為一秒

if (a==20){//定時(shí)器循環(huán)計(jì)數(shù)20次為一秒

a=0;//次數(shù)清零,從新循環(huán)計(jì)數(shù)

time++;//秒加一

}

}

 

/************************************************************************************/

Tags:單片機(jī)時(shí)鐘,數(shù)碼管時(shí)鐘程序,單片機(jī)  
責(zé)任編輯:admin
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁(yè)面
下到頁(yè)底
晶體管查詢