電子開發網

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

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

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2018/3/7


     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 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
欧美寡妇XXXX黑人猛交| 日本处888xxxx| 亚洲欧美日韩一区在线观看| 熟女精品视频一区二区三区| 再深点灬舒服灬舒服点男同 | 国产精品αv在线观看| 91久久偷偷做嫩草影院免| 国产精品无码2021在线观看| 91大神福利视频| 国产精品久久久久久久久齐齐| 18未年禁止免费观看| 国产成人黄网在线免| 超级无敌科技帝国| 国产六月婷婷爱在线观看| 老子影院午夜伦手机不卡无| 国产一级毛片视频| 精品国产免费观看久久久| 午夜高清啪啪免费观看完整| 狠狠久久精品中文字幕无码| 亚洲视频免费在线播放| 欧美大bbbxxx视频| 亚洲中文字幕久久精品无码喷水| 日韩在线不卡免费视频一区| 久久精品国产精品亚洲艾| 无套内射无矿码免费看黄| 中文字幕免费观看视频| 女人爽小雪又嫩又紧| jizz免费在线观看| 国产精选之刘婷野战| 18禁黄污吃奶免费看网站| 国产大片51精品免费观看| 美女被免费网在线观看网站| 午夜伦4480yy私人影院| 狠狠人妻久久久久久综合蜜桃| 亚洲精品在线播放| 李老汉的性生生活2| 久久精品夜夜夜夜夜久久| 成人欧美一区二区三区1314| 一级特黄aaa大片免费看| 国内大量揄拍人妻精品視頻| 2022福利视频|