精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于51單片機數(shù)碼管動態(tài)時鐘電路圖原理圖

2oON_changxuemc ? 2019-09-17 09:36 ? 次閱讀

首先準(zhǔn)備材料吧:SEG數(shù)碼管4個共陰極(小編用的共陽極的)、10k排阻(小編沒有直接做了個)、51單片機、按鈕、30p電容、12MHz晶振、10k電阻、10uf電容、插針、74ls245(小編用三極管代替了)。

成品圖

原理圖

主程序:

#include "Key.h"

#include "led.h"

uchar timeSetBuff[8]={'0','0',LED_MODE_COUNT,'0','0',LED_MODE_COUNT,'0','0'};//時鐘數(shù)據(jù)緩沖區(qū)

uchar alarmSetBuff[8]={'0','0',LED_MODE_ALARM,'0','0',LED_MODE_ALARM,'0','0'};//鬧鐘時間數(shù)據(jù)緩沖區(qū)

uchar timeDisMod=0x24; //00100100

uchar secondTemp,minuteTemp,hourTemp;

uchar secondAlarm,minuteAlarm,hourAlarm;

uchar timer0Temp;

uchar alarmKeyCount; //鬧鐘起停鍵計數(shù)

bit alarm_is_ok; //鬧鐘起停狀態(tài)

bit time_is_ok; //時間是否到

bit interface_mod; // 顯示界面模式,0為主時間界面,1為設(shè)置界面

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

* 函數(shù)名稱:定時器0

* 功 能:定時器0初始化

* 入口參數(shù):無

* 出口參數(shù):無

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

void initTimer0(void) //定時10ms

{

TMOD |= 0x01; //GATE=0,TR=1運行;C/T=1,counter,0,timer;01十六進制

TH0 = 0xdc;

TL0 = 0x00;

TR0 = 1; //timer0 控制位,為1時啟動timer0

ET0 = 1; //timer0 中斷使能

}

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

* 函數(shù)名稱:時鐘比較

* 功 能:比較時鐘和鬧鐘的時間緩沖區(qū),只比較時和分

* 入口參數(shù):無

* 出口參數(shù):無

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

void timeCompare(void)

{

if((minuteTemp == minuteAlarm) && (hourTemp == hourAlarm))

{

time_is_ok = 1;

alarm_is_ok = 0;

interface_mod = 1;

}

}

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

* 函數(shù)名稱:主函數(shù)

* 功 能:調(diào)用并執(zhí)行各個子函數(shù)

* 入口參數(shù):無

* 出口參數(shù):無

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

void main()

{

uchar keyRead;

init_led();

init_key();

initTimer0();

timer0Temp = 0x00;

secondTemp = 0x00;

minuteTemp = 0x00;

hourTemp = 0x00;

secondAlarm = 0x00;

minuteAlarm = 0x00;

hourAlarm = 0x00;

alarmKeyCount = 0x02;

alarm_is_ok = 0; //默認狀態(tài)停止

time_is_ok = 0; //默認時間未到

interface_mod = 0;

sei();

while(1)

{

if(interface_mod == 1)

ledSweepDisplay(alarmSetBuff,timeDisMod);

else

ledSweepDisplay(timeSetBuff,timeDisMod);

if(alarm_is_ok == 1)

timeCompare();

keyRead = get_key_value();

if(keyRead == KEY_ALARM)

{

if(alarm_is_ok == 1 || time_is_ok == 1)

{

alarm_is_ok = 0;

time_is_ok = 0;

interface_mod = 0;

alarmKeyCount = 0x00;

}

else

{

if(alarmKeyCount

alarmKeyCount++;

else

alarmKeyCount = 0x00;

if(alarmKeyCount == 0x01)

interface_mod = 1;

if(alarmKeyCount == 0x02)

{

alarm_is_ok = 1;

interface_mod = 0;

}

}

}

if(keyRead == KEY_SECOND)

{ if(interface_mod == 1)

{

if(secondAlarm

secondAlarm++;

else

secondAlarm = 0x00;

alarmSetBuff[S_L] = secondAlarm % 10 + '0';

alarmSetBuff[S_H] = secondAlarm / 10 + '0';

}

else

{

if(secondTemp

secondTemp += 1;

else

secondTemp = 0x00;

timeSetBuff[S_L] = secondTemp % 10 + '0';

timeSetBuff[S_H] = secondTemp / 10 + '0';

}

}

if(keyRead == KEY_MINUTE)

{ if(interface_mod == 1)

{

if(minuteAlarm

minuteAlarm++;

else

minuteAlarm=0x00;

alarmSetBuff[M_L]=minuteAlarm%10+'0';

alarmSetBuff[M_H]=minuteAlarm/10+'0';

}

else

{

if(minuteTemp

minuteTemp += 1;

else

minuteTemp = 0x00;

timeSetBuff[M_L] = minuteTemp % 10 + '0';

timeSetBuff[M_H] = minuteTemp / 10 + '0';

}

}

if(keyRead == KEY_HOUR)

{

if(interface_mod == 1)

{

if(hourAlarm

hourAlarm++;

else

hourAlarm = 0x00;

alarmSetBuff[H_L] = hourAlarm % 10 + '0';

alarmSetBuff[H_H] = hourAlarm / 10 + '0';

}

else

{

if(hourTemp

hourTemp += 1;

else

hourTemp = 0x00;

timeSetBuff[H_L] = hourTemp%10+'0';

timeSetBuff[H_H] = hourTemp/10+'0';

}

}

}

}

/*, */

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

* 函數(shù)名稱:定時器0中斷函數(shù)

* 功 能:定時器0溢出中斷入口處,定時10ms

* 入口參數(shù):無

* 出口參數(shù):無

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

void timer0_overflow(void) interrupt 1

{

TH0 = 0xdc;

TL0 = 0x00;

if(time_is_ok == 1) //報警

WARN_TRUMPET = ~WARN_TRUMPET;

if(timer0Temp

timer0Temp++;

else //進中斷100次

{

timer0Temp = 0x00;

if(secondTemp

{

secondTemp++;

}

else

{

secondTemp = 0x00;

if(minuteTemp

minuteTemp++;

else

{

minuteTemp = 0x00;

if(hourTemp

hourTemp++;

else

hourTemp = 0x00;

}

}

}

timeSetBuff[S_L] = secondTemp%10+'0';

timeSetBuff[S_H] = secondTemp/10+'0';

timeSetBuff[M_L] = minuteTemp%10+'0';

timeSetBuff[M_H] = minuteTemp/10+'0';

timeSetBuff[H_L] = hourTemp%10+'0';

timeSetBuff[H_H] = hourTemp/10+'0';

sei();

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電路圖
    +關(guān)注

    關(guān)注

    10325

    文章

    10718

    瀏覽量

    528378
  • 51單片機
    +關(guān)注

    關(guān)注

    273

    文章

    5699

    瀏覽量

    123228
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1876

    瀏覽量

    90970

原文標(biāo)題:51單片機數(shù)碼管動態(tài)時鐘電路圖

文章出處:【微信號:changxuemcu,微信公眾號:暢學(xué)單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何使用51單片機控制動態(tài)數(shù)碼管

    簡要地寫了如何使用51單片機控制動態(tài)數(shù)碼管的過程,內(nèi)含模塊信息、源代碼、原理圖等。
    發(fā)表于 11-18 06:03

    8051單片機數(shù)碼管電路圖

    8051單片機數(shù)碼管電路圖
    發(fā)表于 09-28 11:55 ?233次下載
    8051<b class='flag-5'>單片機</b><b class='flag-5'>數(shù)碼管</b><b class='flag-5'>電路圖</b>

    學(xué)51單片機數(shù)碼管部分

    帶您從零學(xué)51單片機數(shù)碼管部分 目錄1 數(shù)碼管應(yīng)用2 數(shù)碼管內(nèi)部結(jié)構(gòu)及硬件原理圖3
    發(fā)表于 02-10 14:36 ?155次下載

    8051單片機數(shù)碼管電路圖[1]

    8051單片機數(shù)碼管電路圖,感興趣的同學(xué)可以下載看看,免費的哦1
    發(fā)表于 10-29 15:10 ?42次下載

    51單片機原理圖

    51單片機數(shù)碼管、矩陣鍵盤、液晶顯示模塊原理圖DXP文件。
    發(fā)表于 05-10 10:36 ?0次下載

    使用51單片機實現(xiàn)數(shù)碼管顯示0到9的電路圖和C語言程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機實現(xiàn)數(shù)碼管顯示0到9的電路圖和C語言程序免費下載。
    發(fā)表于 09-06 17:26 ?5次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>實現(xiàn)<b class='flag-5'>數(shù)碼管</b>顯示0到9的<b class='flag-5'>電路圖</b>和C語言程序免費下載

    使用51單片機驅(qū)動數(shù)碼管顯示0到99的電路圖和C51程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機驅(qū)動數(shù)碼管顯示0到99的電路圖和C51程序免費下載。
    發(fā)表于 08-22 17:30 ?15次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>驅(qū)動<b class='flag-5'>數(shù)碼管</b>顯示0到99的<b class='flag-5'>電路圖</b>和C<b class='flag-5'>51</b>程序免費下載

    使用51單片機進行數(shù)碼管動態(tài)顯示的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機進行數(shù)碼管動態(tài)顯示的程序免費下載。1、設(shè)計要求在一個8位8段數(shù)碼管
    發(fā)表于 07-26 17:36 ?13次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>進行<b class='flag-5'>數(shù)碼管</b><b class='flag-5'>動態(tài)</b>顯示的程序免費下載

    如何使用51單片機使數(shù)碼管按一下鍵數(shù)碼管示數(shù)加一程序和電路圖

    本文檔的主要內(nèi)容詳細介紹的是如何使用51單片機使數(shù)碼管按一下鍵數(shù)碼管示數(shù)加一程序和電路圖免費下載。
    發(fā)表于 07-05 17:41 ?10次下載
    如何使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>使<b class='flag-5'>數(shù)碼管</b>按一下鍵<b class='flag-5'>數(shù)碼管</b>示數(shù)加一程序和<b class='flag-5'>電路圖</b>

    使用51單片機設(shè)計8位數(shù)碼管動態(tài)顯示的電路圖和程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機設(shè)計8位數(shù)碼管動態(tài)顯示的電路圖和程序免費下載從12345678開始,每次按 S1鍵加1
    發(fā)表于 07-04 17:41 ?6次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>設(shè)計8位<b class='flag-5'>數(shù)碼管</b><b class='flag-5'>動態(tài)</b>顯示的<b class='flag-5'>電路圖</b>和程序免費下載

    51單片機開發(fā)板實現(xiàn)6位數(shù)碼管數(shù)字時鐘的仿真電路圖免費下載

    本文檔的主要內(nèi)容詳細介紹的是51單片機開發(fā)板實現(xiàn)6位數(shù)碼管數(shù)字時鐘的仿真電路圖免費下載。
    發(fā)表于 04-10 08:00 ?20次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>開發(fā)板實現(xiàn)6位<b class='flag-5'>數(shù)碼管</b>數(shù)字<b class='flag-5'>時鐘</b>的仿真<b class='flag-5'>電路圖</b>免費下載

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

    STC12C2052AD單片機控制的數(shù)碼管時鐘數(shù)碼管是共陽4位時鐘數(shù)碼管,由于使用
    的頭像 發(fā)表于 09-18 17:12 ?1.1w次閱讀

    51單片機動態(tài)數(shù)碼管

    簡要地寫了如何使用51單片機控制動態(tài)數(shù)碼管的過程,內(nèi)含模塊信息、源代碼、原理圖等。
    發(fā)表于 11-11 20:06 ?15次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>:<b class='flag-5'>動態(tài)</b><b class='flag-5'>數(shù)碼管</b>

    51單片機數(shù)碼管顯示學(xué)習(xí)筆記

    本實驗主要是了解51單片機數(shù)碼管連接的硬件電路圖以及軟件編程操作。
    發(fā)表于 06-23 15:02 ?1989次閱讀
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>數(shù)碼管</b>顯示學(xué)習(xí)筆記

    基于51單片機數(shù)字時鐘數(shù)碼管顯示設(shè)計

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機數(shù)字時鐘數(shù)碼管顯示設(shè)計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序
    發(fā)表于 06-25 10:42 ?0次下載