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

正文內(nèi)容

基于stc89c52單片機(jī)的紅外鬧鐘裝置設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-02-14 14:44 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 包含初始化程序、按鍵掃描程序、鬧鐘設(shè)定掃描程序、顯示程序、DS1302讀寫程序、鬧鈴程序。(1) 初始化程序 為了使各部分各模塊正常工作,必須進(jìn)行相應(yīng)的初始化,包括液晶屏的初始化、DS1302的初始化、定時(shí)器的初始化。(2) 顯示程序 本設(shè)計(jì)中的顯示程序主要是整個(gè)界面時(shí)間日期鬧鐘的實(shí)時(shí)顯示,分兩行顯示,第一行顯示年月日周和鬧鈴標(biāo)示,第二行顯示實(shí)時(shí)時(shí)間時(shí)分秒和鬧鈴設(shè)置時(shí)間時(shí)分,再有設(shè)置調(diào)整時(shí)的寫入顯示。(3) DS1302讀寫程序 DS1302的讀寫,需要有讀寫操作的開(kāi)啟和禁止,時(shí)間日期星期的讀寫,BCD和十進(jìn)制的互相轉(zhuǎn)換。(4) 按鍵掃描程序 當(dāng)系統(tǒng)檢測(cè)到按鍵S1被按下時(shí),轉(zhuǎn)到相應(yīng)程序處理,第一次按下S1,定時(shí)器關(guān)閉,秒閃爍,S2為上調(diào)按鍵,S3為下調(diào)按鍵,第二次按下S1,分閃爍,SS3作用如前,如上所述S1依次按下實(shí)現(xiàn)秒分時(shí)周日月年的調(diào)節(jié),SS3作為調(diào)節(jié)按鍵,第八次按下S1,定時(shí)器開(kāi)啟,回到主程序。(5) 鬧鐘設(shè)定掃描程序S4為鬧鐘功能鍵,S4第一次按下,定時(shí)器中斷關(guān)閉,鬧鐘標(biāo)志作位為0;S4第二次按下,鬧鐘時(shí)閃爍,SS3實(shí)現(xiàn)上下調(diào)功能;S4第三次按下,鬧鐘分閃爍,可用SS3進(jìn)行調(diào)節(jié);S4第四次按下,鬧鐘標(biāo)志位為1,定時(shí)器中斷開(kāi)啟,回到主程序。(6) 鬧鈴程序先判斷鬧鐘標(biāo)志位是否為1,否則鬧鈴不響,是則判斷是否到鬧點(diǎn)及在鬧點(diǎn)后十分鐘之內(nèi),否則不響,是則判斷外部中斷是否觸發(fā),否則不響,是則鬧鈴響。(7)外部中斷程序本設(shè)計(jì)的主要部分鬧鐘與人體紅外感應(yīng)模塊的結(jié)合處就在于外部中斷的引入。能處理中斷的功能部件被稱為中斷系統(tǒng),能產(chǎn)生中斷請(qǐng)求的源被稱為中斷源,80C51單片機(jī)有5個(gè)中斷源,兩個(gè)外部中斷,兩個(gè)定時(shí)中斷,和一個(gè)串行中斷,要使用此類中斷,要先開(kāi)總中斷(總中斷允許位EA=1)。(INT0)(INT1)端口線引入,可設(shè)置為低電平有效或者下降沿有效。下降沿觸發(fā)方式,當(dāng)高電平向低電平轉(zhuǎn)變時(shí),觸發(fā)產(chǎn)生,不論低電平持續(xù)多久都只會(huì)產(chǎn)生一次,所以,下降沿觸發(fā)適合以負(fù)脈沖形式輸入的外部中斷請(qǐng)求;低電平觸發(fā)方式,在低電平時(shí)間段內(nèi)中斷一直有效,這就是說(shuō)在電平?jīng)]有恢復(fù)之前中斷程序就已經(jīng)執(zhí)行完成而退出,那會(huì)在退出之后又再次進(jìn)入中斷,本設(shè)計(jì)中要實(shí)現(xiàn)持續(xù)觸發(fā)響鈴,所以選擇低電平觸發(fā)這種適合于外部中斷以低電平輸入的方式,INT0外部中斷引入,IT0=1,外部中斷程序主要設(shè)置標(biāo)志位,為鬧鈴程序所調(diào)用。6系統(tǒng)調(diào)試本次設(shè)計(jì)調(diào)試過(guò)程主要是在普中HC6800開(kāi)發(fā)實(shí)驗(yàn)板上進(jìn)行,實(shí)驗(yàn)板上硬件資源較為豐富,包含了STC89C52單片機(jī)、按鍵模塊,蜂鳴器,DS1302時(shí)鐘芯片,只需另外購(gòu)置1602液晶顯示屏,紅外傳感模塊,反相器,搖擺器。該設(shè)計(jì)硬件部分并不十分復(fù)雜,首先按照復(fù)位電路,液晶顯示,按鍵輸入,蜂鳴器,DS1302電路,熱釋電紅外傳感模塊的順序進(jìn)行分立調(diào)試,除了液晶顯示和紅外傳感模塊的調(diào)試,其他基本順利,當(dāng)然最終這兩個(gè)模塊也調(diào)試完成。 1602液晶屏的調(diào)試編寫了一段簡(jiǎn)單的程序在液晶屏上顯示一段文字來(lái)調(diào)試液晶屏,插上開(kāi)發(fā)板,液晶屏背光亮,但是屏幕無(wú)任何顯示,轉(zhuǎn)動(dòng)開(kāi)飯板上的滑動(dòng)變阻器旋鈕調(diào)節(jié)無(wú)效,懷疑是液晶屏損壞,或者排針太短接觸不良,欲重新購(gòu)買,后經(jīng)耐心繼續(xù)嘗試,發(fā)現(xiàn)是由于旋動(dòng)速度過(guò)快,需要慢慢調(diào)節(jié)才能調(diào)好對(duì)比度。 紅外傳感模塊調(diào)試本次設(shè)計(jì)為簡(jiǎn)化各模塊,使用的紅外傳感模塊應(yīng)該為低電平輸出,但是由于知識(shí)的欠缺和粗心,購(gòu)置了高電平輸出的模塊HCSR501。為了節(jié)省成本,決定再加入反相器,所以調(diào)試也是用所購(gòu)置的高電平輸出模塊加上反相器。開(kāi)發(fā)板上有電源和接地的接口,也有8路LED燈模塊,所以只要將傳感模塊加上反相器接上一路LED燈低電平輸入端,電源和地接好,就可調(diào)試,理想狀態(tài)下是感應(yīng)范圍內(nèi)有人,傳感模塊輸出高電平經(jīng)過(guò)反相器轉(zhuǎn)換成低電平,此時(shí)LED燈亮,感應(yīng)范圍內(nèi)無(wú)人,則現(xiàn)象相反??墒窃趯?shí)際調(diào)試過(guò)程中發(fā)現(xiàn),熱釋電紅外傳感器對(duì)靜止人體敏感度不高,當(dāng)人體在感應(yīng)范圍內(nèi)處于準(zhǔn)靜止?fàn)顟B(tài)時(shí),LED燈也是會(huì)熄滅的。一番調(diào)試,查找提高敏感度的辦法,始終沒(méi)辦法達(dá)到理想狀態(tài),一度想更換成主動(dòng)式的紅外傳感模塊,后來(lái)咨詢老師,老師發(fā)了一份包含了主動(dòng)式紅外傳感器和被動(dòng)式紅外傳感器的資料給我,里面提到了改善熱釋電紅外傳感器的方法,就是利用周期性的遮光來(lái)改善,于是我嘗試用條狀物體在傳感器前晃動(dòng),發(fā)現(xiàn)可行,在有周期遮光的情況下,即使人體靜止,LED燈也能亮著,于是決定加入獨(dú)立的周期遮光裝置,為了簡(jiǎn)化過(guò)程,就使用搖擺器來(lái)進(jìn)行周期性遮光,實(shí)驗(yàn)結(jié)果基本達(dá)到目的要求。在編程前畫了流程框圖以便順利編程各程序結(jié)合,思路較為清晰,能夠按部就班進(jìn)行調(diào)試。在未加入感應(yīng)探測(cè)模塊外部中斷前,先對(duì)萬(wàn)年歷鬧鐘進(jìn)行調(diào)試,發(fā)現(xiàn)兩個(gè)問(wèn)題:(1)讀取時(shí)間時(shí)出現(xiàn)部分顯示亂碼。 開(kāi)始以為是液晶屏位置顯示指令有問(wèn)題,或者是讀寫操作有錯(cuò)誤,檢查并且參考其他相關(guān)論文程序附錄,修改調(diào)試,沒(méi)有解決問(wèn)題,再仔細(xì)查看,發(fā)現(xiàn)程序設(shè)置中,部分使用char和uchar ,部分使用int定義,全部改作uchar定義后解決問(wèn)題。(2)按鍵過(guò)于敏感不準(zhǔn)確。調(diào)試按鍵設(shè)置,按一次卻出現(xiàn)按幾次的效果,查閱資料參考相關(guān)程序,發(fā)現(xiàn)需要按鍵防抖。當(dāng)我們按下按鍵時(shí),不論速度有多快,都是接觸-斷開(kāi)-接觸-斷開(kāi)……的過(guò)程,可靠接觸的前面10至20毫秒就是抖動(dòng)狀態(tài),是不穩(wěn)定狀態(tài),抬起手指時(shí)也是如此。有此可見(jiàn)要正確獲取一次按鍵的信息,就要慮除前后的兩段抖動(dòng)時(shí)間,以免計(jì)數(shù)錯(cuò)誤。按鍵防抖有硬件方法和軟件方法,硬件方法里電容濾波法、觸發(fā)器法、中斷法都不易實(shí)現(xiàn),所以選擇軟件方法,加入延時(shí)程序,并在按鍵掃描程序里調(diào)用,20ms延時(shí)去抖,基本解決問(wèn)題。首先上電,直接顯示界面如圖22,未調(diào)節(jié)按動(dòng)鬧鐘設(shè)置鍵,無(wú)顯示鬧鈴標(biāo)志。圖22如圖23,按K1進(jìn)入時(shí)間設(shè)置狀態(tài),按的次數(shù)不同光標(biāo)顯示的位置不同,從而進(jìn)行年、月、日、時(shí)、分、秒、的調(diào)整,按第8次時(shí)退出,按K2時(shí)間上調(diào),K3時(shí)間下調(diào)。圖圖23如圖24,按K4進(jìn)入鬧鐘調(diào)整狀態(tài),按一次關(guān)定時(shí)器,時(shí)間停止顯示走動(dòng),鬧鐘標(biāo)志位顯示0,按第二次光標(biāo)顯示在鬧鈴時(shí)位置,此時(shí)可按KK3進(jìn)行鬧鐘時(shí)調(diào)節(jié),當(dāng)按三次光標(biāo)顯示在鬧鈴分位置,從而可使用KK3進(jìn)行分的調(diào)整,按第四次鬧鐘標(biāo)志位顯示1,退出調(diào)整狀態(tài),開(kāi)定時(shí)器,時(shí)間顯示走動(dòng)。圖24整體功能調(diào)試,為了直觀顯示鬧鈴,使用LED燈代替,LED燈亮表示鬧鈴響,LED燈滅表示鬧鈴不響。首先設(shè)置鬧鐘時(shí)間,程序默認(rèn)設(shè)置為鬧鈴時(shí)間后10分鐘內(nèi)處于鬧鈴可觸發(fā)狀態(tài)。如圖25,先不加入周期遮光裝置搖擺器,人體靜止,鬧鈴不響(LED燈滅);如圖26,加入周期遮光裝置搖擺器,人體存在范圍內(nèi),即使靜止,鬧鈴也響(LED燈亮);如圖27,人體不存在范圍內(nèi)則不響(LED燈不亮),調(diào)試成功。圖25圖26圖27參考文獻(xiàn):[1] :光電光子器件及傳感器[M].化學(xué)工業(yè)出版社,2004.[2] 付少波,[M].化學(xué)工業(yè)出版社,2011..[3] :入門、提高、開(kāi)發(fā)、拓展全攻略[M].電子工業(yè)出版社,2011.[4] 楊天怡,[M].清華大學(xué)出版社,2010.[5] 張洪潤(rùn),[M].北京航空航天大學(xué)出版社,2008.[6] [J].信息科技,2010(12).381382.[7] [J].電子世界,1995(10).2326.致謝大學(xué)四年的學(xué)習(xí)生活時(shí)光已經(jīng)接近尾聲了,在此,我向母校,向父母親人、老師同學(xué)們表達(dá)我由衷的謝意。感謝母校廣州大學(xué)松田學(xué)院給了我大學(xué)四年深造的機(jī)會(huì),讓我得以學(xué)習(xí)和提高;感謝家人對(duì)我四年以來(lái)的支持和關(guān)心,我的成長(zhǎng)離不開(kāi)你們的支持;感謝學(xué)校里各位老師領(lǐng)導(dǎo)的教導(dǎo)指引與幫助,希望我以后能不辜負(fù)你們的期望,成為一個(gè)成功的人;感謝那些陪我度過(guò)四年生活的同學(xué),我們互相關(guān)心,互相學(xué)習(xí)的日子太過(guò)難忘,我們之間的情誼是生命中繽紛的色彩。這次畢業(yè)設(shè)計(jì)得到了許多老師和同學(xué)的幫助,特別是廖老師耐心的指導(dǎo),對(duì)我提出的疑問(wèn)悉心一一解答,還有就是幾位給予我建議和提供元器件的同學(xué)。我再次真誠(chéng)地向幫助過(guò)我的老師和同學(xué)表示感謝! 附錄源程序includeinclude define uint unsigned intdefine uchar unsigned charsbit CLK_1302 = P3^6。//時(shí)鐘 sbit DAT_1302 = P3^4。//數(shù)據(jù) sbit RST_1302 = P3^5。// DS1302復(fù)位sbit LCD_RS = P2^6。 //液晶控制端 sbit LCD_RW = P2^5。sbit LCD_EP = P2^7。sbit LED = P1^5。//與蜂鳴器同一功能,替代蜂鳴器sbit settime = P1^0。//時(shí)間功能鍵,選擇時(shí)分秒年月日和星期的 sbit key_add = P1^1。//加1鍵 sbit key_dec = P1^2。//減1鍵sbit setalarm = P1^3。//鬧鐘功能鍵,選擇開(kāi)關(guān)鬧鐘和時(shí)分的寫入sbit ACC0 = ACC^0。 sbit ACC7 = ACC^7。uchar second,minute,hour,week,day,month,year,alarmhour=0,alarmminute=0。 //時(shí)間和鬧鐘等的變量uchar settimemode=0,setalarmmode=3。 //時(shí)間和鬧鐘的功能選擇標(biāo)志uchar alarmflag=0。 //鬧鐘開(kāi)關(guān)的標(biāo)志位uchar code tab1[] = {20 }。 //液晶第一行默認(rèn)顯示數(shù)據(jù)uchar code tab2[] = { : : 00:00}。 //液晶第二行默認(rèn)顯示數(shù)據(jù)uchar code tab4[] = {MonTueWedThuFriSatSun}。 //星期的列表/******************************************************************//* 函數(shù)聲明 *//******************************************************************/uchar bcd_dec(uchar bcd)。 //BCD碼轉(zhuǎn)十進(jìn)制uchar dec_bcd(uchar dec)。 //十進(jìn)制轉(zhuǎn)BCD碼void delay(uchar ms)。 //延時(shí)函數(shù)void lcd_init()。 //液晶初始化void write_1602_wcmd(uchar )。 //液晶寫入指令函數(shù)void write_1602_wdat(uchar dat)。 //液晶寫入數(shù)據(jù)函數(shù)void write_hms(uchar address,uchar dat)。//1602寫時(shí)分秒void write_ymd(uchar address,uchar dat)。//1602寫年月日void write_week(uchar num)。 //1602寫星期函數(shù)void init_1302()。 //1302初始化void write_1302_byte(uchar dat)。 //1302字節(jié)寫uchar read_1302_byte()。 //1302字節(jié)讀void write_1302(uchar address,uchar dat)。//1302地址寫uchar read_1302(uchar address)。 //1302地址讀void timer0_init()。 //定時(shí)器0初始化void keyscan()。 //按鍵掃描子程序void set_alarm()。 //鬧鐘設(shè)定掃描函數(shù)void alarm()。 //報(bào)時(shí)和鬧鐘函數(shù)uchar Eflag=0。uchar flag=0。/******************************************************************//* 主函數(shù) *//******************************************************************/void main(){ lcd_init()。 //液晶初始化 init_1302()。 //1302初始化 timer0_init()。 //定時(shí)器0初始化 while(1) { keyscan()。 //掃描按鍵 set_alarm()。 //掃描設(shè)定鍵 alarm()。 //鬧時(shí) }}/********************************************************* INT0中斷函數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1