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

正文內(nèi)容

基于單片機的時鐘系統(tǒng)設(shè)計-wenkub

2022-09-09 11:14:21 本頁面
 

【正文】 2020 年 1 月 10 日 完成日期 2020 年 5 月 24 日 院長 (簽字) 2020 年 月 日 注:本任務(wù)書一式兩份,一份交學(xué)院,一份學(xué)生自己保存。每次導(dǎo)師見面你都能及時參加,并通過電話、郵件等方式積極主動與指導(dǎo)老師聯(lián)系,匯報論文進度。整個軟件與硬件的設(shè)計表現(xiàn)出作者較扎實的專業(yè)知識和語言功底。 由于單片機價格的低成本、高性能,在自動控制產(chǎn)品中得到了廣泛的應(yīng)用。實驗證明效果良好,可以投入使用。 單片機有兩種基本結(jié)構(gòu):一種是在 通用微型計算機中廣泛采用的,程序存儲器和數(shù)據(jù)存儲器共用一個存儲器空間的結(jié)構(gòu),稱為“馮不僅能滿足所需要求而且還有很多功能可供擴展,有著廣泛的應(yīng)用領(lǐng)域。大則可以構(gòu)成復(fù)雜的工業(yè)過程控制系統(tǒng),完成復(fù)雜的控制功能;小則可以用于家電控制,甚至可以用于兒童電子玩具。 根據(jù)這種實際情況,設(shè)計了一個單片機多功能時鐘系統(tǒng),它有基本的時間功能,還有定時功能,既可作為鬧鈴,也可擴展為定時對家電等電氣產(chǎn)品的自動控制,可以避免多種控制器的混淆,利用一個控制器對多路電器進行控制;可增加溫度傳感器,進行實時溫度顯示,進一步擴展為利用不同的溫度某些電氣產(chǎn)品進行自動控制;也可增加濕度傳感器,進行實時濕度顯示,以便對濕度進行控制 ,方便人們的生活。 硬件電路包括單片機最小系統(tǒng)電路、 DS12887 實時時鐘芯片電路模塊、 LCD1602液晶顯示模塊、按鍵模塊;軟件部分主要通過 c 程序的編程實現(xiàn)對時鐘芯片進行時 間數(shù)據(jù)的讀和寫,然后通過液晶顯示程序?qū)r間顯示出來,通過按鍵操作實現(xiàn)功能的轉(zhuǎn)換和屏幕的切換。 圖 功能整體流程框圖 設(shè)計流程和預(yù)期成果 該設(shè)計的主要流程如下:首先閱讀大量參考文獻,進行設(shè)計方案的確定,然后在 Protel 99SE 上進行原理圖的繪制和修改,在電氣檢查無誤的情況下,購買所需要的元器件 (元器件應(yīng)考慮裕量 )。通過按鍵設(shè)置年月日和星期,還具有秒表的功能。在單芯片上,擁有靈巧的 8 位 CPU 和在線系統(tǒng)可編程 Flash,使得 AT89S52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供靈活、高效的解決方案。按使用情況不同可分成低 128 字節(jié)( 00H~ 7FH)和高 128字節(jié)( 80H~ FFH)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的 大部分部件: CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。單片機由芯片內(nèi)僅有 CPU 的專用處理器發(fā)展而來。其中最成功的是 INTEL 的 8031,因為簡單可靠而性能不錯獲得了很大的好評。90 年代后隨著消費電子產(chǎn)品大發(fā)展,單片機技術(shù)得到了巨大的提高。當(dāng)代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機上?,F(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。 單片機又稱單片微控制器 ,它不是完成某一個邏輯功能的芯片 ,而是把一個計算機系統(tǒng)集成到一個芯片上。 第三章 系統(tǒng)硬件設(shè)計 9 單片機內(nèi)部也用和電腦功能類似的模塊,比如 CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過 10元即可 ......用它來做一些控制電器一類不是很復(fù)雜的工作足矣了。在它的兩腳各有 1V 左右的電壓,由分頻器提供。也有的還送到南橋,目的是使南橋的頻率更加穩(wěn)定。 沒有總頻,南、北橋、 CPU、 CACHE、 I/O、內(nèi)存上就沒有頻率。系統(tǒng)時鐘的波形幅度一定要大于 ,這兩腳的阻值在 450700 歐之間,由南橋提供。 復(fù)位電路,就是 利用它把電路恢復(fù)到起始狀態(tài)。一是在給電路通電時馬上進行復(fù)位操作;二是在必要時可以由手動操作;三是根據(jù)程序或者電路運行的需要自動地進行。一般微機電路正常工作需要供電電源為 5V177。其中 JT 為 的晶振,改變兩電容 CB 的值即可對此晶振頻率進行調(diào)節(jié)。該復(fù)位電路能實現(xiàn)上電自動復(fù)位,也能手動復(fù)位,一般復(fù)位時 RESET 應(yīng)保持 20毫秒以上高電平,此 復(fù)位時 間由接地電容控制。掃描時,先置 口為高電平,向 P1 口送 0EFH( MOV P1, 0EFH),再置 口為低電平,讀 P1 口( MOV A, P1),最后判斷 P1 口低 4位哪位是低電平,若某位為低電平,則相應(yīng)按鍵被按下,如 為低電平( =0),則 K1 鍵被按下。字符型液晶顯示模塊 LCD1602是單片 第三章 系統(tǒng)硬件設(shè)計 13 機應(yīng)用設(shè)計中最常用的信息顯示器件。很顯然第二種更簡單、直接,下面就列出典型讀寫的時序要求,以方便編寫程序。時鐘芯片向單片機發(fā)出中斷請求,單片機通過報警模塊進行警報,此時,若按下四個按鍵中的任意一個,報警停止,LCD1602 顯示 的時間繼續(xù)精確顯示。 ( 3)同時按下 k3 鍵和 k4 鍵可對鬧鐘進行開啟和關(guān)閉的操作。 enable_set = F。 display_calender_and_temp ()。 delay (100)。 } delay (200)。 sbit ep = P1^4。 ep = 1。 _nop_()。 return result。 ep = 0。 _nop_()。 ep = 1。 _nop_()。 rs = 1。 _nop_()。 ep = 1。 _nop_()。 for (i = 0。 } } void lcd_clear_line(BYTE line) { BYTE i = 0。 i ++) { lcd_wdat (39。 delay(1)。 delay(1)。 lcd_clear_line(1)。 sbit key_down = P1^3。,39。,39。,39。,39。,39。,39。,39。,39。 39。 39。 39。 39。 39。 39。 39。 39。 BYTE ALARM_STATE = 39。 void lcd_write_line(BYTE line, BYTE *line_data) 。 BYTE enable_set = 0。 0xF0) + 0x10。0xF0) 0X10)|0X9。 bcd_str[1] = (bcd amp。 } void update_display_data() { bcd_to_byte_string (dec_bcd_value(clock_century), amp。 bcd_to_byte_string (clock_month, amp。 bcd_to_byte_string (clock_hour, amp。 memcpy (amp。 bcd_to_byte_string (clock_hour_a, amp。 bcd_to_byte_string (clock_minute_a, amp。 clock_b = 0x22。 } void disable_alarm (void) 26 基于單片機的時鐘系統(tǒng)設(shè)計 { clock_b = 0x2。 clock_month= 0x08。 clock_second = 0x00。 clock_second_a = 0x00。 } else { clock_year = inc_bcd_value(clock_year)。 } break。 case 3: if (clock_hour == 0x23) { clock_hour = 0x0。 } else { clock_minute = inc_bcd_value(clock_minute)。 } break。 case 7: if (clock_minute_a == 0x59) { clock_minute_a = 0x0。 } } void decrease_value(BYTE cur_pos) { switch (cur_pos) { case 0: if (clock_year) { clock_year = dec_bcd_value(clock_year)。 case 1: if (clock_month) { clock_month =dec_bcd_value(clock_month)。 } 第四章 軟件設(shè)計 29 else { clock_day = 0x31。 } break。 case 5: if (clock_week) { clock_week = 0x7。 } else { clock_hour_a = 0x23。 } break。 lcd_write_line (1, Time Over!)。 } void int_1() interrupt 2 { EX1=0。 TR0=1。amp。 !key_down) { static BYTE k = 0。 } else { disable_alarm()。 } if (!key_tab amp。 } } if (!key_set) { enable_set = !enable_set。 } } if (!key_up amp。amp。 EX0=1。 return。 IT0 = 0。 } EX1=1。 enable_set) { increase_value(cur_set_pos)。 } else { Start_calendar()。 enable_set) { cur_set_pos ++。D39。 ALARM_STATE = 39。 } if (!key_up amp。 return。 if (enable_play_song) { TR0=0。 enable_play_song = T。 } } void int_0() interrupt 0 { BYTE i = 0。 case 7: if (clock_minute_a) 30 基于單片機的時鐘系統(tǒng)設(shè)計 { clock_minute_a = dec_bcd_value (clock_minute_a)。 } break。 } else { clock_minute = 0x59。 case 3: if (clock_hour) { clock_hour = dec_bcd_value (clock_hour)。 } break。 clock_century = dec_bcd_value(clock_century)。 } break。 } else { 28 基于單片機的時鐘系統(tǒng)設(shè)計 clock_hour_a = inc_bcd_value(clock_hour_a)。 case 5: if (clock_week == 0x7) { clock_week = 0x1。 } break。 } else { clock_day = inc_bcd_value (clock_day)。 case 1: if (clock_month== 0x12) { clock_
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1