日韩欧美视频第二区,秋霞成人午夜鲁丝一区二区三区,美女日批视频在线观看,av在线不卡免费

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

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

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

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2018/3/7


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

       材料有以下這些:
        STC12C2052AD單片機(jī)一片
        黃色共陽4位時(shí)鐘數(shù)碼管一塊
        6mm×6mm按鍵兩個(gè)
        杜邦線插針2p兩個(gè)
        無源蜂鳴器一個(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)顯示,等于鍵盤去抖的功能

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;//開定時(shí)器中斷

EA=1;//開總中斷

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
相關(guān)文章列表
基于AT89C52單片機(jī)控制的雙軸太陽自動(dòng)跟蹤系統(tǒng)設(shè)計(jì)
ESP32單片機(jī)入門篇
超聲波測(cè)距+溫度+報(bào)警的單片機(jī)代碼_51單片機(jī)超聲波測(cè)距C語言程序
七段數(shù)碼管顯示原理研究_數(shù)碼管顯示0~9對(duì)應(yīng)的段碼
單片機(jī)C語言編程入門教程  流水燈程序示例
基于51單片機(jī)—多功能秒表,多功能計(jì)時(shí)器C語言程序
STC89C52單片機(jī)數(shù)字電流表電壓表源碼與電路圖  51單片機(jī)電流電壓
自學(xué)stm32單片機(jī)四個(gè)步驟,實(shí)用又高效!
先學(xué)51還是先學(xué)STM32?STM32和51單片機(jī)的區(qū)別
單片機(jī)最小系統(tǒng)介紹及電路設(shè)計(jì) STM32單片機(jī)最小系統(tǒng)
什么是PIC單片機(jī)
為什么51單片機(jī)的晶振一般使用11.0592? 51單片機(jī)常用波特率初值表
51單片機(jī)寄存器功能一覽表
單片機(jī)寫延時(shí)程序的幾種方法
自學(xué)單片機(jī)編程之中斷與時(shí)鐘程序
哈佛結(jié)構(gòu)與馮·諾伊曼結(jié)構(gòu)區(qū)別以及X86體系
單片機(jī)萬年歷:公歷日期與農(nóng)歷日期的相互轉(zhuǎn)換程序
AVR定時(shí)器1的CTC模式設(shè)置
單片機(jī)超聲波視覺識(shí)別系統(tǒng)的測(cè)量軟件開發(fā),超聲波測(cè)距
LCD1602的單片機(jī)驅(qū)動(dòng)詳解
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
主站蜘蛛池模板: 铜陵市| 涟源市| 临泽县| 邻水| 阳江市| 织金县| 桑日县| 小金县| 剑川县| 远安县| 五华县| 如皋市| 达尔| 太仓市| 随州市| 东光县| 安平县| 新建县| 广汉市| 蓝山县| 汉中市| 大同市| 肥乡县| 平罗县| 北宁市| 固镇县| 常德市| 南岸区| 九龙坡区| 龙陵县| 乐昌市| 重庆市| 大丰市| 麻阳| 岑溪市| 斗六市| 阿瓦提县| 钟山县| 阳原县| 遂川县| 白银市|