




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、帶校時(shí)和音樂報(bào)時(shí)功能實(shí)時(shí)時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)1)硬件電路硬件電路如圖11-2所示,PA 口為L(zhǎng)ED數(shù)碼管的8段碼輸出,PC0-PC5共6個(gè)I/O 口, 作為控制時(shí)間顯示的6個(gè)LED數(shù)碼管的位掃描線。PC6、PC7分別接連接兩個(gè)按鍵,用于設(shè) 置時(shí)鐘的工作狀態(tài)和校時(shí)時(shí)間的設(shè)置。圖中音樂報(bào)時(shí)電路部分(未畫出)與第8章中的圖 8-20相同,由端口 PD5輸出產(chǎn)生音樂的脈沖信號(hào),經(jīng)三極管驅(qū)動(dòng)蜂鳴器發(fā)聲。(ADCO)PAO (ADCl)PAl (ADC2)PA2 (ADC3)PA3 (ADC4)PA4 (ADC5)PA5 )(ADC6)PA6 (ADC7)PA7 AREF GND AVcc (TOSC2)PC
2、7 (TOSC1)PC6 (TDI)PC5 (TDO)PC4 (TMS)PC3 (TCK)PC2)(SDA)PC1 ) (SCL)PCO (OC2)PD7圖11-2帶校時(shí)功能的實(shí)時(shí)時(shí)鐘電路圖3938373635343332311329282726 25 j24 Xj23 722 721 70.0.0.0.0.0.LlPlod DPlod DPlod OPlod 心 P;Cjd DPlodATmegal6定義兩個(gè)按鍵的功能為:K1用于設(shè)置轉(zhuǎn)換時(shí)鐘工作狀態(tài),K2用于設(shè)置校時(shí)時(shí)間(加1 操作)。時(shí)鐘工作狀態(tài)轉(zhuǎn)換圖如圖11-3所示,具體每個(gè)狀態(tài)的定義和功能如下:/ 平時(shí)時(shí)鐘工作在時(shí)鐘顯示狀態(tài),每按一下
3、K1鍵,時(shí)鐘依次進(jìn)入校時(shí)時(shí)間的設(shè)置狀 態(tài)。/ 時(shí)鐘由“時(shí)鐘顯示”進(jìn)入“秒低位設(shè)置”時(shí),校時(shí)時(shí)間的初始值為轉(zhuǎn)換時(shí)刻的時(shí)鐘 值。/ 時(shí)鐘由“時(shí)高位設(shè)置”回到(K1作用下)“時(shí)鐘顯示”時(shí),時(shí)鐘時(shí)間由校時(shí)時(shí)間代 替,確認(rèn)完成校時(shí)的設(shè)置。/ 當(dāng)時(shí)鐘處在時(shí)間設(shè)置的6個(gè)狀態(tài)時(shí),每按一次K2鍵,相應(yīng)的位上的數(shù)值加1,并 且要能根據(jù)具體所在的位置自動(dòng)做相應(yīng)的調(diào)整。如秒高位的數(shù)字只能在0-5之間, 而時(shí)高位的數(shù)值要限制在0、1、2 (時(shí)個(gè)位數(shù)小于3時(shí)),或時(shí)高位的數(shù)值要限制 在0、1(時(shí)個(gè)位數(shù)大于3時(shí))。/ 當(dāng)時(shí)鐘處在時(shí)間設(shè)置的6個(gè)狀態(tài)時(shí),在20秒內(nèi)無任何鍵按下,系統(tǒng)自動(dòng)返回“時(shí) 間顯示”狀態(tài),設(shè)置的時(shí)間無效,不
4、改變?cè)瓡r(shí)鐘的計(jì)時(shí)時(shí)間。/ 在效時(shí)時(shí)間設(shè)置的操作過程中,時(shí)鐘不停止其前時(shí)間的計(jì)時(shí)過程,除非當(dāng)時(shí)鐘由“時(shí) 高位設(shè)置”回到(K1作用下)“時(shí)鐘顯示”時(shí),時(shí)鐘的計(jì)時(shí)時(shí)間由確認(rèn)的校時(shí)時(shí)間 代替而改變。/ 時(shí)鐘顯示亮度均勻、無閃爍。當(dāng)設(shè)置相應(yīng)時(shí)間位時(shí),該位應(yīng)閃爍提示。圖11-3時(shí)鐘工作狀態(tài)轉(zhuǎn)換圖2)軟件設(shè)計(jì)本示例的程序是在前幾章所給例子的綜合應(yīng)用基礎(chǔ)上實(shí)現(xiàn)的,代碼中也給出了相應(yīng)的解 釋,因此本節(jié)中不再做更多的說明,留給讀者去自行分析。希望能在真正掌握了前幾章內(nèi)容 的基礎(chǔ)上,慢慢的去品味和體會(huì),掌握如何更好的綜合使用AVR硬件的功能,以及程序設(shè)計(jì) 的方法與技巧。File name:demo_11_4.cCh
5、ip type:ATmega16Program type:ApplicationClock frequency:1.000000 MHzMemory model: SmallExternal SRAM size: 0Data Stack size:256#include flash char led_710 = 0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F;flash char position6 = 0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;flash unsigned int t9 =
6、0,956,865,759,716,638,568,506,470;flash unsigned char d9 = 0,105,116,132,140,157,176,198,209;#define Max_note 32flash unsigned char musicMax_note=5,2,8,2,5,2,4,2,3,2,2,2,1,4,1,2,1,2,2,2,3,2,3,2,1,2,3,2,4,2,5,8;unsigned char note_n;unsigned int int_n;bit play_on;char time3,time_set3;/時(shí)、分、秒計(jì)數(shù)和設(shè)置單元char
7、 dis_buff6;/顯示緩沖區(qū),存放要顯示的6個(gè)字符的段碼值char time_counter,key_stime_counter; / 時(shí)間計(jì)數(shù)單元,char clock_state = 6,return_time;bit point_on,set_on,time_1s_ok,key_stime_ok;void display(void)/ 6位LED數(shù)管動(dòng)態(tài)掃描函數(shù)static char posit=0;PORTC = 0 xff;PORTA = led_7dis_buffposit;if (set_on & (posit=clock_state) PORTA= 0 x00;/ 校時(shí)閃
8、爍if (point_on & (posit=2|posit=4) PORTA |= 0 x80;/ 秒閃爍PORTC = positionposit; if (+posit =6 ) posit = 0; / Timer 0比較匹配中斷服務(wù),2ms定時(shí)interrupt TIM0_COMP void timer0_comp_isr(void) display();/ LED 掃描顯示if (+key_stime_counter =5) key_stime_counter = 0; key_stime_ok = 1;/ 10ms 到if (!(+time_counter % 25) set_o
9、n = !set_on; / 設(shè)置校時(shí)閃爍標(biāo)志 if (time_counter = 100) time_counter = 0; time_1s_ok = 1;/ 1s 到 / T/C1比較匹配A中斷服務(wù) interrupt TIM1_COMPA void timer1_compa_isr(void) if (!play_on) note_n = 0; int_n = 1; play_on = 1; else if (-int_n = 0) TCCR1B = 0 x08; if (note_n Max_note) OCR1A = tmusicnote_n; int_n = dmusicnot
10、e_n; note_n+; int_n = int_n * musicnote_n; note_n+; TCCR1B = 0 x09;elseplay_on = 0;void time_to_disbuffer(char *time)/時(shí)鐘時(shí)間送顯示緩沖區(qū)函數(shù)char i,j=0;for (i=0;i= 60)time0 = 0;(!play_on) TCCR1B =(+time1 = 60)/秒閃爍標(biāo)志/秒加1,以下為時(shí)間調(diào)整ifif0 x09;/ 1分鐘到,播放音樂time1 = 0;if (+time2 = 24) time2 = 0;if (+return_time = 20) & (
11、clock_state != 6) clock_state = 6;if (clock_state = 6) time_to_disbuffer(time);if (key_stime_ok)/ 10ms 到,鍵處理key_stime_ok = 0;/調(diào)用按鍵接口程序/確認(rèn)有鍵按下key_temp = read_key();if (key_temp)return_time = 0;if (key_temp = key_k1) / K1 鍵按下,狀態(tài)轉(zhuǎn)換if (+clock_state = 7) clock_state = 0;if (clock_state = 0)for (i=0;i=2;i+) time_seti = 0;time_to_disbuffer(time_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 港口設(shè)施工程技術(shù)研究考核試卷
- 2025居民生活供用電合同
- 2025合作合同電子產(chǎn)品收益分配協(xié)議書
- 2025辦公室租賃合同書樣本
- 肇慶市實(shí)驗(yàn)中學(xué)高二上學(xué)期期中考試語(yǔ)文(文)試題
- 墊資服務(wù)合同書協(xié)議書二零二五年
- 二零二五百世快遞業(yè)務(wù)員勞動(dòng)合同書
- 大學(xué)生職業(yè)規(guī)劃大賽《針灸推拿學(xué)專業(yè)》生涯發(fā)展展示
- 2025房地產(chǎn)合同范本
- 2025建筑工程弱電安裝合同范本
- 中國(guó)加速康復(fù)外科臨床實(shí)踐指南2021
- 山東省大教育聯(lián)盟學(xué)校2024-2025學(xué)年高三下學(xué)期開學(xué)檢測(cè)化學(xué)試題(原卷版+解析版)
- 2025教科版六年級(jí)科學(xué)下冊(cè)全冊(cè)教案【含反思】
- DB43T-稻-再-油生產(chǎn)技術(shù)規(guī)程
- 中國(guó)慢性冠脈綜合征患者診斷及管理指南2024版解讀
- 課件:《科學(xué)社會(huì)主義概論(第二版)》第五章
- DB36∕T 1720-2022 牧草裹包青貯技術(shù)規(guī)程
- 基于BIM技術(shù)的建筑工程安全管理應(yīng)用與探討
- 基于深度學(xué)習(xí)的電力系統(tǒng)故障恢復(fù)與優(yōu)化方法研究
- 大數(shù)據(jù)與人工智能營(yíng)銷知到智慧樹章節(jié)測(cè)試課后答案2024年秋南昌大學(xué)
- 第20課 清朝君主專制的強(qiáng)化(導(dǎo)學(xué)案)(原卷版)
評(píng)論
0/150
提交評(píng)論