單片機(jī)報(bào)時(shí)及作息時(shí)間的控制文章來源:凌陽大學(xué)計(jì)劃網(wǎng)站 作者:凌陽大學(xué)計(jì)劃網(wǎng)站 發(fā)布時(shí)間:2002-10-23 9:30:33 原理說明 本例所設(shè)計(jì)的是一個(gè)具有報(bào)時(shí)功能及作息時(shí)間控制鐘。它利用SPCE061A單片機(jī)的2Hz時(shí)基計(jì)時(shí),進(jìn)行年歷計(jì)算,并用SPCE061A的語音功能將它報(bào)出來;在進(jìn)行時(shí)間計(jì)算,分每加1時(shí),都與規(guī)定的作息時(shí)間比較,如果相等則進(jìn)行相應(yīng)的控制或動(dòng)作。本例中假定某高校的作息時(shí)間如下所示: 08:00-------08:50 第一節(jié)課 09:00-------09:50 第二節(jié)課 09:52-------10:05 課間操 10:10-------11:00 第三節(jié)課 01:10-------12:00 第四節(jié)課 12:00-------13:30 午間休息 13:30-------14:20 第五節(jié)課 14:30-------15:20 第六節(jié)課 15:21-------15:50 播放歌曲 硬件電路 硬件電路由鍵盤、聲音輸出模塊和指示燈三部分組成,如圖所示。 系統(tǒng)擴(kuò)展三個(gè)按鍵用于報(bào)時(shí)及校正時(shí)間。SPCE061A 的DAC 為電流型輸出,經(jīng)負(fù)載電阻R1 、三極管Q1 放大驅(qū)動(dòng)揚(yáng)聲器SPEAKER 放音,SPEAKER 可選用4 Ω或8 Ω揚(yáng)聲器。IOA15 接一個(gè)LED ,到規(guī)定的作息時(shí)間用LED 閃爍來表示,使用者可根據(jù)具體需要來控制電鈴、播放提示語等。凌陽芯片的工作電壓為3.3v ,在圖8.2中,我們給出了獲得工作電壓兩種方法。 1、通過兩個(gè)二極管連續(xù)降壓使5v 的電壓降至3.6v ,接近3.3v供芯片使用,這種方法比較簡單,但電壓值不是很精確。 2、通過LM7833 可獲得準(zhǔn)確的3.3V電壓。  硬件連接圖
程序說明 整個(gè)程序分為主程序、鍵盤掃描子程序、萬年歷計(jì)算子程序、校時(shí)子程序、播放語音子程序幾部分。 1、主程序 程序按照結(jié)構(gòu)化程序設(shè)計(jì),所有功能都可通過調(diào)用子程序完成,主程序較簡單,流程見0。SPCE061A具有低功耗的睡眠模式,在睡眠模式下功耗電流可降到幾個(gè)μΑ,這對(duì)于用電池供電的系統(tǒng)非常重要,睡眠模式可以通過按鍵中斷喚醒。  主程序流程圖 2、鍵盤掃描程序 由于機(jī)械觸點(diǎn)的彈性作用,在鍵被按下或彈起時(shí)會(huì)出現(xiàn)電壓抖動(dòng),從最初按下到接觸穩(wěn)定要經(jīng)過數(shù)毫秒的彈跳時(shí)間,如錯(cuò)誤!未找到引用源。所示。為保證鍵識(shí)別的準(zhǔn)確,必須進(jìn)行去抖動(dòng)處理,去抖動(dòng)有硬件和軟件兩種方法。硬件方法就是加去抖動(dòng)電路,從根本上避免抖動(dòng);軟件方法有很多種,例子程序主要是利用主程序的循環(huán)掃描,主程序循環(huán)一次,掃描一次按鍵,當(dāng)連續(xù)N次掃描到的鍵值都一樣時(shí),則說明是穩(wěn)定的按鍵值。 3、萬年歷計(jì)算子程序 利用2Hz中斷做時(shí)鐘源進(jìn)行計(jì)時(shí),每兩次中斷秒加1,并進(jìn)行年歷計(jì)算,年歷范圍從2001年到3099年。在進(jìn)行年歷計(jì)算時(shí),有平閏年計(jì)算問題。閏年的條件是:能被400整除,或者能被4整除,但不能被100整除。萬年歷調(diào)整子程序流程圖見0。 萬年歷計(jì)算子程序 4、校時(shí)子程序 系統(tǒng)擴(kuò)展了三個(gè)按鍵,TIME 鍵用于報(bào)時(shí),由于時(shí)間包括年月日和時(shí)分,按一次TIME 鍵,則報(bào)年月日,再按一次則報(bào)時(shí)分。當(dāng)一直按住TIME 鍵3 秒則進(jìn)入時(shí)間校正狀態(tài),語音報(bào)當(dāng)前是XXXX 年,按UP 鍵年份增加,按DOWN 鍵減少;按TIME 鍵來切換月、日、時(shí)、分,調(diào)整完分后,按TIME 鍵確認(rèn),語音報(bào)出年月日時(shí)分。時(shí)間增加的流程如0 所示,時(shí)間減少的流程與增加的相同,所以不再給出時(shí)間減少的流程圖。在校正時(shí)間的狀態(tài)下,如果連續(xù)2分鐘鍵沒有被按下,則自動(dòng)退出。 
校時(shí)子程序 5、播放語音子程序 報(bào)時(shí)用SACM-A2000播放。 |