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

正文內(nèi)容

基于單片機(jī)的簡易燈光時(shí)鐘畢業(yè)設(shè)計(jì)(編輯修改稿)

2024-07-24 19:39 本頁面
 

【文章內(nèi)容簡介】 8B20溫度檢測子程序流程圖溫度傳感器 DS18B20溫度檢測子程序流程圖如圖 ,進(jìn)入溫度讀取子函數(shù)時(shí),首先初始化 DS18B20 溫度傳感器的參數(shù),單片機(jī)發(fā)送跳過 ROM命令給 DS18B20,然后發(fā)送溫度轉(zhuǎn)換命令并且延時(shí)一定時(shí)間等待轉(zhuǎn)換完畢,等轉(zhuǎn)換完畢后單片機(jī)在再次初始化 DS18B20,發(fā)送跳過 ROM 命令,溫度到緩沖區(qū),最終溫度處理子程序調(diào)用達(dá)到存儲(chǔ)實(shí)時(shí)溫度的目的。 程序設(shè)計(jì)原理軟件設(shè)計(jì)是基于硬件設(shè)計(jì)的基礎(chǔ)之上,首先要明確硬件設(shè)計(jì)的原理,區(qū)分哪些是需要硬件設(shè)計(jì)的,哪些是軟件設(shè)計(jì)的范疇,軟件設(shè)計(jì)要明確設(shè)計(jì)內(nèi)容的真正目的,設(shè)計(jì)程序最好要簡單明了,盡量減少多余的冗余信息,減少 CPU的宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)19負(fù)擔(dān)。軟件分析方面的任務(wù)是軟件設(shè)計(jì)的一個(gè)總體規(guī)劃。從軟件的功能的角度可以分為兩大類:一類是在軟件的設(shè)計(jì),可以完成各種實(shí)質(zhì)性的功能,如測量,計(jì)算,顯示,打印,導(dǎo)出控制和通信,以及其他的監(jiān)控軟件,其目的是作為軟件調(diào)度軟件的組織來執(zhí)行模塊的作用和運(yùn)作之間的關(guān)系。這兩種類型的軟件設(shè)計(jì)方法都有其自身的特點(diǎn),專注于算法的軟件設(shè)計(jì),不斷提高軟件完成功能效率,以及與之密切相關(guān)的硬件,都有不斷變化的可能性,關(guān)鍵就在于我們設(shè)計(jì)者是怎么進(jìn)行操作的。軟件需求分析的任務(wù),應(yīng)該將執(zhí)行模塊一一的列表,定義每個(gè)執(zhí)行模塊的輸入和輸出,并繪制了相應(yīng)的程序流程圖,并制定可執(zhí)行模塊的引腳和功能。宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)20 硬件調(diào)試在制作硬件電路之前,我們先根據(jù)實(shí)際需要的功能劃分硬件模塊,并且在 PROTEL 里面畫出其硬件原理圖和 PCB 圖,檢查無誤后開始先在萬用板上焊接,調(diào)試無誤后在腐蝕板上制作焊接。在本萬年歷的硬件調(diào)試中遇到過許多常見的問題,現(xiàn)在回想這類問題,只要在當(dāng)時(shí)認(rèn)真一些,多思考,多查下資料,這些問題都是可以避免的,以下為主要的問題:問題 1:剛開始的時(shí)候以為單片機(jī) I/O 口可以直接驅(qū)動(dòng)蜂鳴器發(fā)出聲響,后來調(diào)試了很久都不能發(fā)出聲音。解決:經(jīng)過多方面的查找相關(guān)資料,如進(jìn)入圖書館查找歷年來的設(shè)計(jì)資料,或者進(jìn)入相關(guān)資源的數(shù)據(jù)庫,或者在商家處尋求相關(guān)芯片的 PDF 資料文件,最終我知道了單片機(jī)的 I/O 口給蜂鳴器提供不了足夠的驅(qū)動(dòng)電流,所以我們采用三極管放大器來將電流放大,用以驅(qū)動(dòng)蜂鳴器工作,實(shí)驗(yàn)證明,把三極管放大器加在系統(tǒng)上后蜂鳴器就可以正常工作,發(fā)出聲音了。問題 2:單片機(jī)一直讀取 DS18B20 的溫度總是錯(cuò)誤,顯示的時(shí)候不是亂碼就是總顯示 24 攝氏度或者 85。解決: 經(jīng)過查找芯片手冊,知道 DS18B20 的輸出端是漏極開路結(jié)構(gòu),需要加上拉電阻才能讀取數(shù)據(jù)正常.問題 3:本設(shè)計(jì)要實(shí)現(xiàn)語言實(shí)時(shí)報(bào)時(shí),但是在用萬用版做出來的時(shí)候,不管怎么做,都沒有語音發(fā)出聲音。 解決:剛開始懷疑是對語音芯片設(shè)計(jì)有問題,但是通過查找芯片手冊,發(fā)現(xiàn)對于語言報(bào)時(shí)模塊中的核心芯片設(shè)計(jì)沒有任何問題,接著懷疑是程序方面有問題,因?yàn)橐獙?shí)現(xiàn)語音報(bào)時(shí),必須要進(jìn)行的步驟是要單片機(jī)對語音芯片的內(nèi)部ROM 進(jìn)行查表,但是通過分步驟的對程序進(jìn)行檢查發(fā)現(xiàn),程序也沒有問題,最后仔細(xì)檢查了一下整個(gè)電路設(shè)計(jì),發(fā)現(xiàn)忘記在電路中設(shè)計(jì)喇叭了,誤以為電路中有蜂鳴器就可以發(fā)聲,由于模塊已經(jīng)設(shè)計(jì)完,只好用跳線外接了一個(gè)小喇叭,測試發(fā)現(xiàn),問題得到解決,語音報(bào)時(shí)內(nèi)容為:“今天是 XX 年 X 月 X 日” “現(xiàn)在是 X 時(shí) X 分 X 秒,星期 X”。 軟件調(diào)試本系統(tǒng)是一個(gè)較為復(fù)雜的數(shù)字系統(tǒng),程序更為復(fù)雜,所以在編程和調(diào)試出現(xiàn)了相對更多的問題。首先為了更好的測試效果,我最開始是一個(gè)模塊一個(gè)模塊單獨(dú)做成電路板,然后直接用跳線連接組成的系統(tǒng),在確定無誤后,再把程序燒錄到實(shí)物中運(yùn)行。在系統(tǒng)中調(diào)試號(hào)確定無誤后,再將每個(gè)模塊全部集中在一個(gè)腐蝕板上,再進(jìn)過一番調(diào)試,問題得到解決,功能得到實(shí)現(xiàn)。在該過程中主要遇到的問題如下:問題 1:燒入程序,LCD 液晶出現(xiàn)顯示永遠(yuǎn)閃爍,和不均勻的亮度。解決:剛開始的時(shí)候懷疑是程序的延時(shí)部分有問題,所以在程序中修改對調(diào)用的子程序的延時(shí),結(jié)果我們發(fā)現(xiàn)屏幕顯示閃動(dòng)頻率明顯降低,找到問題點(diǎn)宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)21后,繼續(xù)增大延時(shí),最終達(dá)到解決顯示閃動(dòng)問題的目的。由于該系統(tǒng)采用數(shù)字動(dòng)態(tài)掃描顯示,動(dòng)態(tài)掃描快,人眼無法看到,但是當(dāng)調(diào)用顯示程序,如果沒有返回的最后一個(gè)值,就會(huì)顯得非常明亮或亮度不均勻的現(xiàn)象,所以在顯示指令的后面加一個(gè)屏蔽子令,最終的問題得到解決。問題 2:當(dāng)用戶按下按鈕,設(shè)定的數(shù)值與單片機(jī)讀取的值跟不對應(yīng),而且有時(shí)候按鍵失靈或者是出現(xiàn)某些關(guān)鍵功能有時(shí)候不對應(yīng)有時(shí)候?qū)?yīng)的情況。解決:重新檢查矩陣鍵盤電路的連接,發(fā)現(xiàn)焊接鍵盤電路時(shí)有虛焊,重新焊接好矩陣鍵盤按鍵沒有反應(yīng)的問題得到解決。然后檢查鍵盤掃描程序,重新建立一個(gè)新的對應(yīng)關(guān)系。最終問題得到解決。宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)22參考文獻(xiàn)[1] C 語言程序設(shè)計(jì)實(shí)訓(xùn) 100 年[2] 吳運(yùn)昌.模擬電子線路基礎(chǔ).廣州:華南理工大學(xué)出版社,2022 年[3] 閻石.?dāng)?shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,1997 年[4] 張曉麗等.?dāng)?shù)據(jù)結(jié)構(gòu)與算法.北京:機(jī)械工業(yè)出版社,2022 年[5] 馬忠梅等. ARM amp。 Linux 嵌入式系統(tǒng)教程.北京:北京航空航天大學(xué)出版社,2022 年[6] 李建忠.單片機(jī)原理及應(yīng)用.西安:西安電子科技大學(xué),2022 年[7] 韓志軍等 .單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].機(jī)械工業(yè)出版社,2022[8] 周潤景等 . Proteus在 MCS51amp。ARM7系統(tǒng)中的應(yīng)用百例[M].電子工業(yè)出版社,2022[9] 馬忠梅等 .單片機(jī)的 C語言應(yīng)用程序設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2022[10]劉樹中,孫書膺,[J].微計(jì)算機(jī)信息,2022宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)23致謝通過此次簡易燈光時(shí)鐘的畢業(yè)設(shè)計(jì),我學(xué)到了很多東西,并且,將許多以前在書本上學(xué)到的東西運(yùn)用到實(shí)際生活中,在以前的專業(yè)課書本中,很多概念的模糊的,例如:在以前的學(xué)習(xí)過程中,一直不明白溫度傳感器是怎么進(jìn)行工作的,與單片機(jī)是怎么進(jìn)行通信,單片機(jī)的 I/O 口采集溫度傳感器 DS18B20 的數(shù)據(jù)后是怎么轉(zhuǎn)換數(shù)據(jù)將之對應(yīng)為實(shí)時(shí)的溫度的。而且通過此次設(shè)計(jì),我學(xué)會(huì)了如何點(diǎn)亮液晶,怎么制作功能菜單,會(huì)設(shè)計(jì)單片機(jī)最小系統(tǒng),將許多模糊的概念徹底的搞清楚,同時(shí),在這段時(shí)間里,我明白了我們專業(yè)在以后的生活工作中的運(yùn)用方向,也為我在以后工作中需要學(xué)習(xí),掌握的工作技能奠定基礎(chǔ)。在這次設(shè)計(jì)當(dāng)中,我學(xué)會(huì)使用 STC52 系列單片機(jī),并會(huì)熟練使用protel, keilC51 等軟件,能夠獨(dú)立的搭建一些簡單的硬件設(shè)計(jì),能夠檢查出一些簡單、常見的問題,動(dòng)手能力有所提高,對所學(xué)知識(shí)運(yùn)用加深。感謝在這次設(shè)計(jì)中對我提供幫助的老師,同學(xué),謝謝教我怎樣查找芯片關(guān)鍵資料,教會(huì)我使用 protel 的老師,謝謝你們。宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)24附錄系統(tǒng)整體原理圖 +YHZpFWDBlcdGQ?kuzer系統(tǒng) PCB 圖宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)25實(shí)物圖宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)26元件清單名稱 數(shù)量STC89C52 130PF電容 210UF電容 11000UF電容 110K電阻 310K電位器 1DIP40插座 1LCD1602 1輕觸按鍵 512M晶振 1DS18B20 18550三極管 1DS1302 1蜂鳴器 1語音芯片NY3P035AP632401D 1揚(yáng)聲器 1DIP8插座 2板子 1銅柱 4螺帽 4USB座子 1宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)27系統(tǒng)源程序///說明:第一個(gè)鍵:按一下,當(dāng)前時(shí)間設(shè)置;通過第二個(gè)鍵來選擇年月日時(shí)分秒//按第二下,鬧鐘 1 設(shè)置;通過第二個(gè)鍵選擇時(shí)分秒//添加頭文件include //單片機(jī)頭文件include //液晶include //時(shí)鐘include //按鍵include //溫度傳感器void DisplayInit(void) //初始化 LCD 和時(shí)鐘的顯示,初始化定時(shí)器{LCDInit()。 //初始化液晶 }void Display1(void)//顯示正常界面,時(shí)間的函數(shù){DS1302_read_time()。 //讀取 DS1302 時(shí)間LCDDispNum(1,1,(Nian4))。 //在液晶上顯示年的十位LCDDispNum(2,1,(Nianamp。0x0f))。//在液晶上顯示年的個(gè)位LCDDispChar(3,1,39。39。)。 //在液晶上顯示字符LCDDispNum(4,1,(Yue4))。 //在液晶上顯示月的十位LCDDispNum(5,1,(Yueamp。0x0f))。 //在液晶上顯示月的個(gè)位LCDDispChar(6,1,39。39。)。 //在液晶上顯示字符LCDDispNum(7,1,(Ri4))。 //在液晶上顯示日的十位LCDDispNum(8,1,(Riamp。0x0f))。 //在液晶上顯示日的個(gè)位LCDDispNum(1,2,(Shi4))。 //在液晶上顯示十的十位LCDDispNum(2,2,(Shiamp。0x0f))。 //在液晶上顯示十的個(gè)位LCDDispChar(3,2,39。:39。)。 //在液晶上顯示顯示字符:LCDDispNum(4,2,(Fen4))。 //在液晶上顯示分的十位LCDDispNum(5,2,(Fenamp。0x0f))。 //在液晶上顯示分的個(gè)位LCDDispChar(6,2,39。:39。)。 //在液晶上顯示顯示字符:LCDDispNum(7,2,(Miao4))。 //在液晶上顯示秒的十位LCDDispNum(8,2,(Miaoamp。0x0f))。//在液晶上顯示秒的個(gè)位XingQi = (XingQi amp。 0x0f)+((XingQi4) * 10)。 //星期if(XingQi == 1) //判斷并顯示星期的字符宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)28LCDDispString(12,1,Mon.)。 //如果星期等于 1 則顯示 Mon.else if(XingQi == 2)LCDDispString(12,1,Tues)。 //如果星期等于 2 則顯示 Tueselse if(XingQi == 3)LCDDispString(12,1,Wed.)。 //如果星期等于 3 則顯示 Wed.else if(XingQi == 4)LCDDispString(12,1,Thu.)。 //如果星期等于 4 則顯示 Thu.else if(XingQi == 5)LCDDispString(12,1,Fri.)。 //如果星期等于 5 則顯示 Fri.else if(XingQi == 6)LCDDispString(12,1,Sat.)。 //如果星期等于 6 則顯示 Sat.else if(XingQi == 7)LCDDispString(12,1,Sun.)。 //如果星期等于 7 則顯示 Sun.FenA = (Fen amp。 0x0f) + ((Fen4) * 10)。//把分的 BCD 碼轉(zhuǎn)成 10 進(jìn)制ShiA = (Shi amp。 0x0f) + ((Shi4) * 10)。//把時(shí)的 BCD 碼轉(zhuǎn)成 10 進(jìn)制//鬧鈴,判斷是否有鬧鈴。如果時(shí)間到,則蜂鳴器響,否則不響if(AlarmFlag[0] == 1 amp。amp。 DoneFlag[0] == 1 amp。amp。 ShiA == AlarmClock[0][0] amp。amp。 FenA == AlarmClock[0][1])BEEP = 0。else BEEP = 1。//轉(zhuǎn)點(diǎn)時(shí)的鬧鐘標(biāo)志位要清零if(Shi == 0 amp。amp。 Fen == 0 amp。amp。 Miao == 0){if(AlarmFlag[0] == 1)DoneFlag[0] = 1。}if(Fen == 0 amp。amp。 Miao == 0){Music(L_beijing)。if((Shi4)!=0){if((Shi4)==1)Music(L_shi)。else{Music((Shi4)+1)。Music(L_shi)。}}if((Shiamp。0x0f)==0){if((Shi4)==0)宜賓學(xué)院本科畢業(yè)設(shè)計(jì)(論文)29Music(L_0)。}elseMusic((Shiamp。0x0f)+1)。Music(L_dian)。Music(L_zheng)。}//讀取溫度的值ReadTemperature()。//顯示溫度的值LCDDispString(12,2,temperatureDate)。}void main(void){//初始化操作DisplayInit()。Music(L_1)。while(1)//死循環(huán){if(gFunctionCount == 0)//判斷是否為正常顯示界面{Display1()。//顯示子函數(shù) 1}KeyScan()。 //按鍵掃描子函數(shù)}}includeinclude/********************************************************* Functio
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1