freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于51單片機的電子萬年歷的研究畢業(yè)論文-閱讀頁

2025-07-04 13:09本頁面
  

【正文】 //DQ 復(fù)位 delay_18B20(8)。 //單片機將 DQ 拉低 delay_18B20(80)。 //拉高總線 delay_18B20(14)。 //稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 delay_18B20(20)。鍵盤模塊的設(shè)計,關(guān)鍵是消陡。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。因為硬件消抖需要添加額外的硬件,故這里我們采用軟件消抖。當檢測到按鍵釋放后,也要給 5ms~10ms 的延時,待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序。當然,我們的萬年歷再開機時會提醒用戶是否開啟按鍵時,蜂鳴器是否聲音提醒,實現(xiàn)的方法是:我們在蜂鳴器中設(shè)置了 flag 標志位,6當開機時,用戶的選擇會賦給 flag 標志位,從而由單片機判斷是否讓蜂鳴器工作,為了記錄用戶的選擇,我們將 flag 標志位放在了 DS1302 的空閑寄存器中,以保證用戶的選擇不會因為系統(tǒng)的掉電而消失,當系統(tǒng)重新上電時,系統(tǒng)還可以恢復(fù)用戶的選擇。通過下載將在電腦上已完成的程序下載到單片機芯片中。通過反復(fù)的調(diào)試與實驗,可以證明該系統(tǒng)能夠較好地完成設(shè)計所需的基本要求。在完成軟件系統(tǒng)時,剛開始我是用的是12M的晶振,所有器件正常,后來我換了,結(jié)果溫度就不正常了,經(jīng)過認真排查才發(fā)現(xiàn)是由于DS18B20在數(shù)據(jù)讀取時,對時間要求很精確,由于晶振的不同造成了讀數(shù)據(jù)的錯誤,經(jīng)過這次調(diào)試,讓我更清晰的認識到了時序?qū)υ骷闹匾?。?jīng)過萬年歷的設(shè)計,讓我學(xué)到了很多,讓我認識到了學(xué)習(xí)基礎(chǔ)知識的重要性,當設(shè)計完整的系統(tǒng)時,要考慮到硬件和軟件兩者的結(jié)合,有時硬件的不足,我們可以用軟件程序來彌補,從而節(jié)約硬件成本,在設(shè)計軟件程序時要模塊化,可以提高程序的可讀性。在我做畢業(yè)設(shè)計的整個過程中,余老師都以他最大的可能來幫助我,教導(dǎo)我,跟著余老師做畢業(yè)設(shè)計,我學(xué)會了好多東西,這些都對我未來的工作和生活產(chǎn)生重大的影響。他以一個教育工作者熱忱的心胸不厭其煩地指導(dǎo)著我們,教育者我們,使我們不僅學(xué)到了扎實的專業(yè)知識,更學(xué)到了做人的道理。在此,特向他表示真誠的感謝。同時,在我四年的大學(xué)生活中,也得到了很多老師、同學(xué)、朋友的支持和幫助,在此一并表示感謝,正是由于你們,才使我的大學(xué)生活更加豐富多彩,感謝你們。0參考文獻[1] 李群芳,、:清華大學(xué)出版社,2022[2] : 清華大學(xué)出版社,2022[3] 張?zhí)旆玻?《51 單片機 C 語言開發(fā)詳解》 ,電子工業(yè)出版社;[4] 鄔寬明, 《單片機外圍器件實例手冊》 ,北京航空航天大學(xué)出版社;[5] :電子工業(yè)出版社,2022[6] :中國鐵道出版社 ,2022[7] 王為青, Keil C51 :人民郵電出版社,2022[8] :清華大學(xué)出版社,2022[9] Muhammad Ali Mazidi,Janice Gillispie,Rolin 8051 Microcontroller and Embedded Systems:Using Assembly and C,Second Education,2022[10] , Fundamentals of electric Circuits ,Tsinghua university press 2022;0附錄電路原理圖:設(shè)計主程序:/* * 萬年歷*/include include include include include include 1TIME time, tmp_time。bit Alarm_flag=0。bit flag=0。 //DS18B20 pin//18B20unsigned char L_18B20,H_18B20,zhengshu,shangwen,xiawen。//18B20//音樂uint8 code SONG_TONE[]={ 212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,129,169,190,119,119,126,159,142,159,0}。//void delay(uint16 n){while (n)。for(i=0。i++)for(j=0。j++)。while(SONG_LONG[i]!=0||SONG_TONE[i]!=0){ for(j=0。j++){ BEEP = ~BEEP。kSONG_TONE[i]/3。}Delay_nms(10)。}BEEP =1。}/*DS18B20 的復(fù)位脈沖 主機通過拉低單總線至少 480us 以產(chǎn)生復(fù)位脈沖 然后主機釋放單總線并進入接收模式 此時單總線電平被拉高 DS18B20 檢測到上升沿后 延時 15~60us,拉低總線 60~240us 產(chǎn)生應(yīng)答脈沖 */void Init_DS18B20(void) { unsigned char x=0。 //DQ 復(fù)位 delay_18B20(8)。 //單片機將 DQ 拉低 delay_18B20(80)。 //拉高總線 delay_18B20(14)。 //稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 delay_18B20(20)。 for (i=8。 i) { DQ = 0。0x01。 DQ = 1。 }} /*所有讀時隙至少 60us 且兩次獨立的讀時隙之間至少需要 1us 的恢復(fù)時間 每次讀時隙由主機發(fā)起,拉低總線至少 1us。unsigned char dat = 0。i0。 // 給脈沖信號 dat=1。 // 給脈沖信號 if(DQ) dat|=0x80。 } return(dat)。WriteOneChar(0xCC)。 // 啟動溫度轉(zhuǎn)換delay_18B20(100)。WriteOneChar(0xCC)。 //讀取溫度寄存器等(共可讀 9 個寄存器) 前兩個就是溫度delay_18B20(100)。 //讀取低八位數(shù)據(jù)H_18B20=ReadOneChar()。 //整數(shù)部分xiaoshu_a=(L_18B20amp。 //小數(shù)第一位}//DS18B20//////////////////////////////////////////////////* * 按鍵掃描*/int8 scan_key(void){int8 val=1。while (KeyIn1 == 0)。while (KeyIn2 == 0)。while (KeyIn3 == 0)。return val。play32(32, 2, 10)。play8(40, 0, S_xie)。// play8(120, 0, S_percent)。}/* * 主界面*/void main_show(bit refresh){ uint8 lunar[2]。time)。// 溫濕度 play8_num(104, 6,zhengshu)。}if (refresh)main_frame()。 = 。 }if (refresh || ( != )) // 時更新{if ((!refresh)amp。(Clock_flag))alarm_sound()。play32_num(0, 2, )。play8_num(48, 0, )。time, lunar)。}if (refresh || ( != )) // 周更新{ = 。}if (refresh || ( != )) // 月更新{ = 。// 農(nóng)歷turn_lunar_calendar(amp。play_lunar_calendar(0, 6, lunar[0], lunar[1])。play8_num(0, 0, )。time, lunar)。}}/* * 主機界面設(shè)置 */void main_set(void){int8 key_val, state=1。7while (1){key_val = scan_key()。elsestate++。time)。switch (state){case 0: set_time((uint8 *)amp。 break。 break。 break。 break。 break。 break。 break。 break。}}else if (key_val 1){if (state == 1){if (key_val == 3)++。if ( = 60) = 0。play32_num(96, 2|0x80, )。else8。else if ( 0) = 59。}else if (state == 3){if (key_val == 3)++。if ( = 24) = 0。play32_num(0, 2|0x80, )。else。else if ( 1) = 7。}else if (state == 5){if (key_val == 3)++。if ( = 32) = 1。play8_num(48, 0|0x80, )。else。else if ( 1) = 12。}else if (state == 7){if (key_val == 3)++。if ( = 100) = 0。play8_num(0, 0|0x80, )。}}if (state == 0)break。uint32 t=0。play16(16, 0, zhong)。if (Alarm_flag)play16(48, 0, kai)。play32_num(32, 2, )。play32_num(80, 2, )。play16(16, 6, dian)。play16(48, 6, shi)。if (Clock_flag)play16(80, 6, kai)。for (t=0。 t++){key_val = scan_key()。else if (key_val == 1){if (Alarm_flag)play16(48, 0|0x80, kai)。 while (1){key_val = scan_key()。elsestate++。elseplay16(48, 0, guan)。play32_num(80, 2, )。elseplay16(80, 6, guan)。elseplay16(48, 0|0x80, guan)。case 2:play32_num(80, 2|0x80, )。case 3: play32_num(32, 2|0x80, )。case 4: if (Clock_flag)play16(80, 6|0x80, kai)。break。}}else if (key_val 1){if (state == 1){Alarm_flag = ~Alarm_flag。elseplay16(48, 0|0x80, guan)。else。else if ( 0) = 59。}else if (state == 3){if (key_val == 3)++。if ( = 24) = 0。play32_num(32, 2|0x80, )。if (Clock_flag)play16(80, 6|0x80, kai)。}else{break。}if (state == 0)break。 read_18B20()。//延時 1S,等待 18B20 工作正常LCD_init()。 //清屏幕main_frame()。 //刷新 1 次 read_18B20()。 //顯示溫度while(1){ key_val = scan_key()。}else if (key_val == 2) //K2?{clear12864()。clear12864()。}else if (key_val == 3) //K3?{clear12864()。clear12864()。}else{read_time((uint8 *)amp。main_show(0)。} //每隔 2S 采集一次}// 鬧鐘if (Alarm_flag){if ((flag == 0) amp。 ( == ) amp。 ( == )){14flag = 1。 //清屏幕alarm_show()。 //播放音樂PlayMusic()。 //清屏幕 main_show(1
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1