首先準(zhǔn)備材料吧:SEG數(shù)碼管4個(gè)共陰極(小編用的共陽極的)、10k排阻(小編沒有直接做了個(gè))、51單片機(jī)、按鈕、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í)鐘數(shù)據(jù)緩沖區(qū)
uchar alarmSetBuff[8]={'0','0',LED_MODE_ALARM,'0','0',LED_MODE_ALARM,'0','0'};//鬧鐘時(shí)間數(shù)據(jù)緩沖區(qū)
uchar timeDisMod=0x24; //00100100
uchar secondTemp,minuteTemp,hourTemp;
uchar secondAlarm,minuteAlarm,hourAlarm;
uchar timer0Temp;
uchar alarmKeyCount; //鬧鐘起停鍵計(jì)數(shù)
bit alarm_is_ok; //鬧鐘起停狀態(tài)
bit time_is_ok; //時(shí)間是否到
bit interface_mod; // 顯示界面模式,0為主時(shí)間界面,1為設(shè)置界面
/********************************************************************************************
* 函數(shù)名稱:定時(shí)器0
* 功 能:定時(shí)器0初始化
* 入口參數(shù):無
* 出口參數(shù):無
*********************************************************************************************/
void initTimer0(void) //定時(shí)10ms
{
TMOD |= 0x01; //GATE=0,TR=1運(yùn)行;C/T=1,counter,0,timer;01十六進(jìn)制
TH0 = 0xdc;
TL0 = 0x00;
TR0 = 1; //timer0 控制位,為1時(shí)啟動timer0
ET0 = 1; //timer0 中斷使能
}
/********************************************************************************************
* 函數(shù)名稱:時(shí)鐘比較
* 功 能:比較時(shí)鐘和鬧鐘的時(shí)間緩沖區(qū),只比較時(shí)和分
* 入口參數(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í)行各個(gè)子函數(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; //默認(rèn)狀態(tài)停止
time_is_ok = 0; //默認(rèn)時(shí)間未到
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ù)名稱:定時(shí)器0中斷函數(shù)
* 功 能:定時(shí)器0溢出中斷入口處,定時(shí)10ms
* 入口參數(shù):無
* 出口參數(shù):無
*********************************************************************************************/
void timer0_overflow(void) interrupt 1
{
TH0 = 0xdc;
TL0 = 0x00;
if(time_is_ok == 1) //報(bào)警
WARN_TRUMPET = ~WARN_TRUMPET;
if(timer0Temp
timer0Temp++;
else //進(jìn)中斷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();
}
上一篇:51單片機(jī)脈搏測量儀電路圖和源程序
下一篇:51單片機(jī)門鈴電路原理圖及C語言源程序
推薦閱讀
史海拾趣
作為一家以技術(shù)為核心的企業(yè),EA公司始終將技術(shù)創(chuàng)新作為公司發(fā)展的重中之重。公司不斷引進(jìn)新技術(shù)、新工藝,加強(qiáng)與高校、科研機(jī)構(gòu)的合作,共同研發(fā)具有自主知識產(chǎn)權(quán)的新產(chǎn)品。在智能電源適配器領(lǐng)域,EA公司率先推出了一系列具有智能化、網(wǎng)絡(luò)化功能的產(chǎn)品,引領(lǐng)了行業(yè)潮流。這些產(chǎn)品的推出不僅提高了公司的市場競爭力,也為客戶提供了更加便捷、高效的使用體驗(yàn)。
Directed Energy Inc公司自創(chuàng)立之初,就致力于在電子行業(yè)中推動技術(shù)創(chuàng)新。公司投入大量研發(fā)資源,開發(fā)出一系列高性能的脈沖式激光二極管驅(qū)動器和高壓脈沖模塊,這些產(chǎn)品憑借其卓越的性能和穩(wěn)定性,迅速在市場上獲得了認(rèn)可。隨著技術(shù)的不斷迭代和升級,Directed Energy Inc逐漸在電子行業(yè)中樹立了技術(shù)領(lǐng)先的形象,吸引了眾多行業(yè)內(nèi)的設(shè)計(jì)師和工程師的關(guān)注。
隨著環(huán)保意識的不斷提高,綠色生產(chǎn)成為了電子行業(yè)的發(fā)展趨勢。Excelics Semiconductor積極響應(yīng)這一趨勢,將綠色環(huán)保理念融入到了公司的生產(chǎn)和經(jīng)營中。他們采用了環(huán)保材料和清潔能源,減少了生產(chǎn)過程中的污染排放。同時(shí),他們還積極參與環(huán)保公益活動,為推動電子行業(yè)的綠色發(fā)展貢獻(xiàn)了自己的力量。
請注意,以上故事均為虛構(gòu)內(nèi)容,旨在展示一般電子行業(yè)發(fā)展過程中可能遇到的情況和挑戰(zhàn)。
隨著市場的不斷發(fā)展和競爭的加劇,Cygnal意識到需要通過收購來加速其技術(shù)和市場的布局。經(jīng)過一系列談判和協(xié)商,Cygnal成功收購了另一家專注于嵌入式系統(tǒng)技術(shù)的公司。這次收購不僅為Cygnal帶來了更多的技術(shù)和市場資源,還使其能夠更好地滿足客戶的需求并提供更全面的解決方案。收購后,Cygnal通過內(nèi)部整合和優(yōu)化,將兩家公司的優(yōu)勢融合在一起,形成了更強(qiáng)大的市場競爭力。
隨著銷售量的持續(xù)增長,APT公司很快便超出了其初始設(shè)施的產(chǎn)能。為了滿足市場需求,公司于1992年遷至加利福尼亞州納帕市的一座占地36,000平方英尺的工廠,并配備了2,000平方英尺的100級潔凈室。新工廠的啟用為APT公司提供了更大的發(fā)展空間,也進(jìn)一步提升了其產(chǎn)品質(zhì)量和產(chǎn)能。同時(shí),APT公司始終致力于技術(shù)創(chuàng)新,不斷推出適應(yīng)市場需求的新產(chǎn)品,進(jìn)一步鞏固了其在氣體輸送領(lǐng)域的領(lǐng)先地位。
作為一家有社會責(zé)任感的企業(yè),Dynawave一直注重環(huán)保和可持續(xù)發(fā)展。他們采用環(huán)保材料和生產(chǎn)工藝,減少了對環(huán)境的污染。同時(shí),公司還積極參與各種環(huán)?;顒?,宣傳環(huán)保理念。這些做法不僅提升了公司的品牌形象,也贏得了社會各界的贊譽(yù)。
"無源濾波器的特性是會隨著負(fù)載的變化而變化"這句話沒有任何問題吧? 如題... 很簡單基礎(chǔ)的原理, 但是在和人討論時(shí)對方拒不承認(rèn)...沒轍了..各位高手發(fā)表一下看法.… 查看全部問答∨ |
|
利用RIL能否控制手機(jī)選擇CDMA 1X EVDO網(wǎng)絡(luò)還是GSM網(wǎng)絡(luò)嗎? 如果選擇完CDMA 3G網(wǎng)絡(luò)后, 是否還要用ConnMgr API進(jìn)行網(wǎng)絡(luò)連接? 網(wǎng)絡(luò)連接后怎么進(jìn)行組播BCMCS編程? 能否給出一個(gè)流程或例子? … 查看全部問答∨ |
量產(chǎn)工具下載完成后為什么不能進(jìn)行量產(chǎn)呢?我是2G的金士頓U盤,在插入電腦時(shí)被提示“格式化”,但是又格不了。之后就又下載了量產(chǎn)工具但是又不能量產(chǎn),不知道事怎么回事!請教在這方面能懂的人… 查看全部問答∨ |
前幾日調(diào)通了應(yīng)急燈的LED驅(qū)動和電源切換部分,今天我就我的原理圖來對我的設(shè)計(jì)做一些說明,其中包含我對Maxim芯片的一些理解,如有不當(dāng)之處,還請大家指正。 首先是LED驅(qū)動部分的原理,請看我的原理圖: 從Maxim工程師建議的芯片列表中選擇了一 ...… 查看全部問答∨ |
求9B96實(shí)驗(yàn)板的實(shí)驗(yàn)手冊! 求9B96實(shí)驗(yàn)板的實(shí)驗(yàn)手冊!光盤里怎么沒有!那位大俠傳一下,謝謝,發(fā)到郵箱也行,wzpstudy@126.com。萬分感謝… 查看全部問答∨ |
折騰了幾天,被Android那點(diǎn)兒少得可憐的shell命令折磨的死去活來,終于下定了革命的決心??匆幌略趺窗衙煨〉膖oolbox替換成偉大的busybox吧。先大致描述一下Android系統(tǒng)中的shell程序部分。shell實(shí)現(xiàn)分為兩部分:一、shell解釋器和內(nèi)置命令源碼位于 ...… 查看全部問答∨ |
前幾天一直在折騰MICO系統(tǒng),下載了最新的源代碼,編譯完成不能用。 具體討論見:[問題討論] MICO系統(tǒng)啟動不了 在@星際之門 的提示之下更改了工程,編譯,運(yùn)行成功!再次感謝星際之門! 下面開始折騰這個(gè)IoT系統(tǒng)! … 查看全部問答∨ |
請問各位大神, 用哪種傳感器可以放在胸口測呼吸?運(yùn)動狀態(tài)下。 用壓電薄膜可行么?據(jù)說放在床墊里是可以的。 用加速度傳感器有人試過么? … 查看全部問答∨ |
求各路大神指點(diǎn)TI電源IC UCC289X 系列電源設(shè)計(jì)方法 求各路大神指點(diǎn)TI電源IC UCC289X 系列電源設(shè)計(jì)方法 … 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- ADI有獎下載活動之13升級版ADI電機(jī)控制解決方案—伺服控制
- 有獎直播:ST60 非接觸式連接器及應(yīng)用探索
- 下載有禮!是德科技5G精選解決方案,幫您勘破 5G 迷宮!
- 話說我接觸的ADI實(shí)驗(yàn)室電路“評估板”
- 試用Vishay新型“IHLP磁芯損耗計(jì)算器”,搶樓贏好禮
- 追趕 WiFi 浪潮,看泰克技術(shù)講座,答題好贏禮!
- 【XILINX 主題分享月】 信號處理資料大搜集?。?!
- LPC8N04測評,激發(fā)你的NFC&物聯(lián)網(wǎng)新創(chuàng)意!
- 免費(fèi)下載|PathWave幫您迎接高速數(shù)字設(shè)計(jì)復(fù)雜性的挑戰(zhàn)
- 愛芯科技AX630A亮相2021 ICDIA
- 51單片機(jī)(三)—— 51單片機(jī)集成開發(fā)環(huán)境介紹
- 是德科技測試解決方案成功贏得DEKRA青睞
- 51單片機(jī)(四)—— 51單片機(jī)仿真芯片的使用
- 機(jī)器人手眼協(xié)調(diào)應(yīng)用技術(shù)公司星猿哲完成 3500 萬美元 B 輪融資
- ASR蜂窩物聯(lián)網(wǎng)芯片助力360兒童手表入網(wǎng)
- 蘋果仍主導(dǎo)全球手機(jī)市場,今年第三季度占66%的行業(yè)利潤
- Redmi K30前置攝像頭為何做成雙攝?
- 面對異構(gòu)挑戰(zhàn) 英特爾oneAPI這個(gè)軟件策略威力怎么樣?
- 華為成立PLC-IoT生態(tài)聯(lián)盟,并在銀聯(lián)合作推出無感支付
- Javascript智能手表
- zigbee通信技術(shù)傳輸距離與穿墻能力介紹
- 請教:初學(xué)wince應(yīng)用開發(fā)!
- EEWORLD大學(xué)堂----電源設(shè)計(jì)研討會: 基于氮化鎵的圖騰柱無橋 PFC (CCM)
- 有人用過KEIL的代碼提示嗎?我的設(shè)置頁面是空白
- 2個(gè)SPI都用從模式,共用一個(gè)外部時(shí)鐘源,能實(shí)現(xiàn)同步發(fā)送嗎
- 如何顯示GBK16x16以及big5繁體點(diǎn)陣字庫
- 51單片機(jī)
- HyperLynx高速電路設(shè)計(jì)與仿真(十一)定量分析信號過驅(qū)動和欠驅(qū)動
- 菜鳥求指導(dǎo)~VHDL交通燈程序的編譯錯誤···