電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

STC12C2052AD單片機控制的數碼管時鐘程序及電路圖

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2018-03-07


     STC12C2052AD單片機控制的數碼管時鐘,數碼管是共陽4位時鐘數碼管,由于使用單片機真驅,電路比較簡單,且使用的材料和工具也很簡單,用數碼管顯示,單片機控制,兩個按鍵調時,蜂鳴器整點報時。所需要的元件如下:

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

單片機時鐘實物圖 

STC12C2052AD單片機控制的數碼管時鐘程序及電路圖 

單片機時鐘零件實物圖 

程序如下:

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

#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};//數碼管段位碼定義

unsigned int time; //全局秒基準定義

/*-------------------------------------延時函數-------------------------------------*/

void delayms (unsigned int a){

unsigned int i;

while( --a != 0){

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

}

}

/*----------------------------------蜂鳴器驅動函數----------------------------------*/

void beep (void)

{  

unsigned char i=30;

while(i--)

{

speaker=~speaker;

delayms(3);

    }

}

/*----------------------------------數碼管驅動函數----------------------------------*/

void display (unsigned char hour,min)

{

unsigned char H1,H2,M1,M2;

P3=0xf8; //數碼管位選

P1 = LED[H1];     //數碼管段選

delayms (2); //掃描延時

P3=0xf4; //數碼管位選

P1 = LED[H2];     //數碼管段選

delayms (2); //掃描延時

P3=0xf2; //數碼管位選

P1 = LED[M1];     //數碼管段選

delayms (2); //掃描延時

P3=0xf1; //數碼管位選

P1 = LED[M2];     //數碼管段選

delayms (2); //掃描延時

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

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

min=min%10;//取余 

M2=min;//取分個位

/*--------------------------------------時定義--------------------------------------*/

H1=hour/10;//取時十位

hour=hour%10;//取余 

H2=hour;//取時個位

}

/*-----------------------------------按鍵去抖函數-----------------------------------*/

void qudou (unsigned char hour,min)

{

unsigned char i;

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

display (hour,min);

}

}

/*--------------------------------------主函數--------------------------------------*/

void main(void)

{

////定時器初始設置

TMOD=0x01;//定時器工作方式1

TH0=0x3C;//定時器初始產生50ms時基信號

TL0=0xB0;//定時器初始產生50ms時基信號

ET0=1;//開定時器中斷

EA=1;//開總中斷

TR0=1;//啟動定時器

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

while(1)

{

unsigned char hour,min;//定義時分


display (hour,min);//調用顯示函數


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

{

time=0;

min++;

   }

if (min>59)//60分向時進1

{

min=0;

hour++;

beep ();

    }

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

{

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++;}

}

}

/*-----------------------------------中斷服務程序-----------------------------------*/

void Timer0_Routine(void) interrupt 1

{

unsigned char a;

TH0=0x3C;//定時器初始產生50ms時基信號

TL0=0xB0;//定時器初始產生50ms時基信號

    a++;//定時器循環計數20次為一秒

if (a==20){//定時器循環計數20次為一秒

a=0;//次數清零,從新循環計數

time++;//秒加一

}

}

 

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

Tags:單片機時鐘,數碼管時鐘程序,單片機  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
天堂mv在线免费看| 国产女人精品视频国产灰线| 91区国产福利在线观看午夜| 国产韩国精品一区二区三区| 99久久精品九九亚洲精品| 国产精自产拍久久久久久| 91大神娇喘女神疯狂在线| 国产精品videossex另类| 黄色香蕉视频网站| 国产欧美va欧美va香蕉在线| 野花香高清在线观看视频播放免费| 国产国语一级毛片全部| 羞羞视频在线免费观看| 四虎影视在线影院4hutv| 精品丝袜人妻久久久久久| 免费高清av一区二区三区| 一区二区三区亚洲视频| 天堂www网最新版资源官网| 99视频在线看观免费| 国产精品亚洲一区在线播放| 麻豆国产在线不卡一区二区| 国产免费插插插| 精品国产一区二区三区av片| 免费看国产曰批40分钟| 欧美日韩精品一区二区三区高清视频| 亚洲日本中文字幕天天更新| 日韩精品欧美一区二区三区| 久久精品国产亚洲av成人 | 欧男同同性videos免费| 亚洲va中文字幕无码毛片| 日本精品卡一卡2卡三卡| 久久se精品动漫一区二区三区| 少妇愉情理伦片高潮日本| sao浪美人的激爱之路| 国产精品欧美一区二区三区| 麻豆女神吴梦梦| 国产一区日韩二区欧美三区| 狠狠色噜噜狠狠狠狠av| 亚洲欧美激情小说另类| 日韩精品一区二区亚洲av观看| 久久精品免费全国观看国产|