




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、闖“工轉(zhuǎn)天等ichei i fiirsitv of enrineeri hr課程設(shè)計(jì)說明書(2014/2015學(xué)年第2學(xué)期)課程名稱: 單片機(jī)課程設(shè)計(jì)題 目:廚房提醒器專業(yè)班級(jí):自動(dòng)化3班學(xué)生姓名:郭少偉學(xué) 號(hào):120410329指導(dǎo)教師:趙奇設(shè)計(jì)周數(shù):2周設(shè)計(jì)成績(jī):2015年6月26日15一、課程設(shè)計(jì)的題目 1二、課程設(shè)計(jì)的目的 2三、課程設(shè)計(jì)的任務(wù) 3四、設(shè)計(jì)原理器件說明 4五、設(shè)計(jì)方案 131、硬件部分 142、軟件分析 143、程序設(shè)計(jì) 164、系統(tǒng)調(diào)試22六、課程設(shè)計(jì)心得 23七、參考文獻(xiàn) 231、課程設(shè)計(jì)目的1、通過本次課程設(shè)計(jì)加深對(duì)單片機(jī)課程的全面認(rèn)識(shí)復(fù)習(xí)和掌握,對(duì)單片機(jī)課程的應(yīng)
2、用進(jìn)一步的了解。 知道單片機(jī)的各個(gè)引腳的功能, 以及如何通過編寫的程序讓它實(shí)現(xiàn)我們所需要的功能,期間要進(jìn)行電路的焊接和程序調(diào)試,最后實(shí)現(xiàn)我們所需要的功能。2、掌握定時(shí)器、外部中斷的設(shè)置和編程原理。3、通過此次課程設(shè)計(jì)能夠?qū)纹瑱C(jī)軟硬件結(jié)合起來,對(duì)程序進(jìn)行編輯,校驗(yàn)。4、提高綜合以及靈活應(yīng)用所學(xué)知識(shí),并且從中培養(yǎng)了針對(duì)課題需要,選擇和查閱有關(guān)手冊(cè)和圖表以及文獻(xiàn)資料的自學(xué)能力,提高組成系統(tǒng)和變成以及調(diào)試的動(dòng)手能力。2、課程設(shè)計(jì)正文2.1 設(shè)計(jì)所需器材電阻: 1k (5 個(gè)) 330(8 個(gè)) 10k(5 個(gè))開關(guān):5 個(gè)電容:30 p f (2個(gè)) 22科f (1個(gè))晶振:12mhz ( 1 個(gè))
3、集成芯片:at89c51 ( 1 片)三極管: pnp( 5 個(gè))共陽(yáng)極數(shù)碼管: 4 個(gè)蜂鳴器: 1 個(gè)底座:dip40 ( 1 個(gè))萬能電路板: 1 個(gè)2.2 設(shè)計(jì)任務(wù)和要求本次課程設(shè)計(jì),我們這一組要求做的是廚房提醒器設(shè)計(jì)。提醒器在家庭中很實(shí)用,能夠幫助提醒人做飯或者做菜的時(shí)間等,市面上賣的成品提醒器一般都比較貴,我們可以利用已經(jīng)學(xué)過的知識(shí)自制簡(jiǎn)易的提醒器。設(shè)計(jì)的主要內(nèi)容是采用 at89s51 作為控制單元,實(shí)現(xiàn)提醒器的設(shè)計(jì)。 ( 1 ) 設(shè)計(jì)鍵盤輸入電路; ( 2) 設(shè)計(jì)顯示電路; ( 3) 合理分配地址, 編寫寫程序; ( 4 )利用protel設(shè)計(jì)硬件電路原理圖和 pcb圖;(5)軟硬
4、件聯(lián)機(jī)調(diào)試;(6)書寫實(shí)驗(yàn)報(bào)告。主要技術(shù)要求:(1)設(shè)置提醒器的“開始”鍵,“清除”鍵,“分十位加一”鍵,“分個(gè)位加一”鍵和“秒十位加一”鍵。剛通電時(shí)和按下“清除”鍵時(shí),均可使顯示器顯示一00: 00-0按下開始鍵,則按照設(shè)定的時(shí)間減一定時(shí)。當(dāng)顯示器再次顯示為 00: 00時(shí)則蜂鳴器提醒定時(shí)到。(2) 4個(gè)數(shù)碼管分別顯示分十位,分個(gè)位,秒十位。2.2.1 設(shè)計(jì)基本原理廚房提醒器設(shè)計(jì),主要的部分是 at89s51,編寫程序,實(shí)現(xiàn)軟硬結(jié)合,實(shí)現(xiàn)提醒功能。采用中斷的方式,先清除按鈕,然后設(shè)置分十位,分個(gè)位,秒十位,然后按開始按鈕開始倒計(jì)時(shí),當(dāng)時(shí)間變?yōu)?0: 00時(shí)蜂鳴器提醒則目的實(shí)現(xiàn) 。2.2.2
5、器件說明2.2.2.1 at89c51 單片機(jī)p1.0 匚 vcc140p1.1 匚239 po o (ado)p1.2 匚338 p0.1 (ad1)p1.3 匚437 pg (ad2)p1.4 匚536 p03 (ad3)p1.5 匚635 p0.4 (ad4)p1.6 匚734 p0.5 (ad6)p1.7 匚833 p0.6 (ad6)rst匚932 p0.7 (ad7)(rxd) p3.0 匚1031 ea/vpp(txd) p3j 匚1130al曰prog(into) p3.2 匚1229 psen(int1) p3.3 匚1328 p2.7 (a15)(to) p3.4 匚142
6、7 p2.6 (a 14)(t1) p3.5 匚1526 p2.5 (a13)(wr) p3.6 匚1625 p24 (a12)(hd) p3 7 匚1724 p2.3 (a11)xtal2 匚1823 p2.2 (a10)xtal1 匚1922 p2.1 (a9)gnd匚2021 p2.0 (ab)圖1 at89c51的引腳圖at89s51的引說明和功能說明如下:vcc : at89s51電源正極輸入,接+5v電壓。gnd :電源接地端。xtal1 :接外部晶振的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一反相放大器輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。它采用外部振蕩器時(shí),些引腳應(yīng)接地。xtal2 :接外部
7、晶振的一個(gè)引腳。在片內(nèi)接至振蕩器的反相放大器輸出端和內(nèi)部時(shí)鐘發(fā)生器輸入端。當(dāng)采用外部振蕩器時(shí),則此引腳接外部振蕩信號(hào)的輸入。rst : at89c51的復(fù)位信號(hào)輸入引腳, 高電位工作,當(dāng)要對(duì)芯片又時(shí),只要將此引腳電位提 升到高電位,并持續(xù)兩個(gè)機(jī)器周期以上的時(shí)間,at89c51便能完成系統(tǒng)復(fù)位的各項(xiàng)工作,使得內(nèi)部特殊功能寄存器的內(nèi)容均被設(shè)成已知狀態(tài)。ale/ prog : ale是英文address latch enabl的縮寫,表示允許地址鎖存允許信號(hào)。當(dāng)訪問外部存儲(chǔ)器時(shí),ale信號(hào)負(fù)跳變來觸發(fā)外部的8位鎖存器(如74ls373),將端口 p0的地址總線(a0-a7)鎖存進(jìn)入鎖存器中。在非訪問
8、外部存儲(chǔ)器期間,ale引腳的輸出頻率是系統(tǒng)工作頻率的1/16 ,因此可以用來驅(qū)動(dòng)其他外圍芯片的時(shí)鐘輸入。當(dāng)問外部存儲(chǔ)器期間, 將以1/12振蕩頻率輸出。ea/vpp該引腳為低電平時(shí),則讀取外部的程序代碼(存于外部eprom中)來執(zhí)行程序。因此在8031中,ea引腳必須接低電位,因?yàn)槠鋬?nèi)部無程序存儲(chǔ)器空間。如果是使用at89c51或其它內(nèi)部有程序空間的單片機(jī)時(shí),此引腳接成高電平使程序運(yùn)行時(shí)訪問內(nèi)部程序存儲(chǔ)器,當(dāng)程序指針pc值超過片內(nèi)程序存儲(chǔ)器地址 (如8051/8751/89c51的pc超過0fffh)時(shí),將自 動(dòng)轉(zhuǎn)向外部程序存儲(chǔ)器繼續(xù)運(yùn)行。此外,在將程序代碼燒錄至8751內(nèi)部eprom、89c
9、51內(nèi)部falsh時(shí),可以利用此引腳來輸入提供編程電壓(8751為2lv、at89c51為12v、8051是由生產(chǎn)廠方一次性加工好 )。psen :此為program store enable的縮寫。訪問外部程序存儲(chǔ)器選通信號(hào),低電平有效。在訪問外部程序存儲(chǔ)器讀取指令碼時(shí),每個(gè)機(jī)器周期產(chǎn)生二次psen信號(hào)。在執(zhí)行片內(nèi)程序存儲(chǔ)器指令時(shí),不產(chǎn)生psen信號(hào),在訪問外部數(shù)據(jù)時(shí),亦不產(chǎn)生psen信號(hào)。p0 口(p0.0p0.7)是一個(gè)8位漏極開路雙向輸入輸出端口, 當(dāng)訪問外部數(shù)據(jù)時(shí), 它是地址總 線(低8位)和數(shù)據(jù)總線復(fù)用。外部不擴(kuò)展而單片應(yīng)用時(shí),則作一般雙向i/o 口用。p0 口每一個(gè)引腳可以推動(dòng)
10、8個(gè)lsttl負(fù)載。p2 口(p2.0p2.7)是具有內(nèi)部提升電路的雙向i/0端口(準(zhǔn)雙向并行i/o 口),當(dāng)訪問外部程序存儲(chǔ)器時(shí),它是高 8位地址。外部不擴(kuò)展而單片應(yīng)用時(shí),則作一般雙向i/o 口用。每一個(gè) 引腳可以推動(dòng)4個(gè)lstl負(fù)載。p1 口(p1.0p1.7)是具有內(nèi)部提升電路的雙向i/0端口(準(zhǔn)雙向并行i/o 口),其輸出可以推動(dòng)4個(gè)lsttl負(fù)載。僅供用戶作為輸入輸出用的端口。p3 口(p3.0p3.7)是具有內(nèi)部提升電路的雙向i/0端口(準(zhǔn)雙向并行i/o 口),它還提供特殊功能,包括串行通信、外部中斷控制、計(jì)時(shí)計(jì)數(shù)控制及外部隨機(jī)存儲(chǔ)器內(nèi)容的讀取或?qū)懭肟?制等功能。其特殊功能引腳分配
11、如下:p3.0 rxd串行通信輸入p3.1 txd串行通信輸出p3.2 int 0外部中斷0輸入,低電平有效p3.3 int1外部中斷1輸入,低電平有效p3.4 t0計(jì)數(shù)器0外部事件計(jì)數(shù)輸入端p3.5 t1計(jì)數(shù)器1外部事件計(jì)數(shù)輸入端p3.6 wr外部隨機(jī)存儲(chǔ)器的寫選通,低電平有效p3.7 rd外部隨機(jī)存儲(chǔ)器的讀選通,低電平有效2、內(nèi)存空間1、內(nèi)部程序存儲(chǔ)器(flash ) 4k字節(jié)。2、外部程序存儲(chǔ)器(rom ) 64k字節(jié)。3、內(nèi)部數(shù)據(jù)存儲(chǔ)器(ram ) 256字節(jié)。4、外部數(shù)據(jù)存儲(chǔ)器(ram ) 64k字節(jié)。只讀程序存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器分別如下圖所示:(54kb)ooodhoffffh外
12、部故據(jù)存儲(chǔ)器offffh(60ks)圖2只讀程序存儲(chǔ)器外部置序存儲(chǔ)器寄存器符號(hào)名稱節(jié)地址acc累加器e0hbb寄存器f0hpsw程序狀態(tài)字d0hsp堆棧指針81hdptr數(shù)據(jù)指針dph83h 1dpl82hp0p0口鎖在得80hp1p1 鎖存騫90hp2ip2 口鎖在器a0hp3p3u鎖存騫b0hip中斷優(yōu)先級(jí)控制寄存器b8hie中斷允許控制寄存器a3htmod定時(shí)器/計(jì)數(shù)器方式控制寄存器csh 1tcon定時(shí)器/計(jì)數(shù)器控制寄存器s8htho定時(shí)器/計(jì)故事0(高亭節(jié))8chtlo定時(shí)器/計(jì)數(shù)器口 (低字節(jié))8ahth1定時(shí)器/計(jì)數(shù)器1(高字節(jié))8dhtl1 定時(shí)器/計(jì)數(shù)器1(低字節(jié))8bhsc
13、on串行控制寄存器98hsbuf串行數(shù)據(jù)緩沖器99hpc on電源控制寄存器97h圖3外部數(shù)據(jù)存儲(chǔ)器圖5 內(nèi)部高128個(gè)字節(jié)地址空間的特殊功能寄存器區(qū)3.復(fù)位后寄存器狀態(tài)寄存器數(shù)據(jù)值寄存器數(shù)據(jù)值pcoooohtmodoohaoohtconoohb ohth0oohpswdohtldoohsp口 7hth1oohdptroooohtl1oohpd-p3口 ffhsconoohip*odoodsbuf不變ied*oqooopcon04、中斷入口中斷源向量地址外部中斷0 (into) (ie0)0003h定時(shí)/計(jì)數(shù)器0 (tf0qoobh外部中斷1 (inti) (ie1)0013h定時(shí)/計(jì)數(shù)器i
14、001bh中行通訊(ri-fti)0023h5、psw序狀態(tài)字位地址d7d6d5d4d3d2dido符號(hào)1p cyacf01p rsirso ov p cy(psw.7 :高位進(jìn)位標(biāo)志位。常用“ c表示。ac (psw.6 :輔助進(jìn)位標(biāo)志。f0 ( psw.5 :用戶標(biāo)志位。rs1 ( psw.4:寄存器組選擇位 1。rs0 (psw.3:寄存器組選擇位 0。ov(psw.2 :溢出標(biāo)志位。(psw.1 :保留位,無定義。p (psw。:奇偶校驗(yàn)位,在每一個(gè)指令周期中,若累加器( a中的“1”的位個(gè)數(shù)是奇數(shù) 個(gè)則p= 1,偶數(shù)個(gè)則 p= 0。tmod定時(shí)/計(jì)數(shù)器工作方式控制寄存器位地址不可位守
15、址符號(hào)gzctec /tmlm0gatec/tmlmd1類別定時(shí)/ i1數(shù)器1定時(shí)/ i1數(shù)器2gate :當(dāng)gate =1時(shí),into或int1引腳且為高電平,同時(shí) tcon中的tr0或tr1 控制位如為1時(shí),定時(shí)/計(jì)數(shù)器 0或1才會(huì)工作。 若gate =0,同時(shí)只要tcon中的tr0 或tr1控制位如為1時(shí),定時(shí)/計(jì)數(shù)器 0或1即可工作。c/t :選擇定時(shí)或計(jì)數(shù)器模式。當(dāng)c/t=1為計(jì)數(shù)器,由外部引腳 t0或t1輸入計(jì)數(shù)脈沖。c/t = 0時(shí)為計(jì)時(shí)器,由內(nèi)部系統(tǒng)時(shí)鐘提供計(jì)時(shí)工作脈沖。m1 :方式選擇位1。m0 :方式選擇位0。m1、m2的操作方式選擇定義如下:mlmo操作方式功能說明00方
16、式口13位定時(shí)/計(jì)數(shù)器01方式116位定時(shí)/計(jì)數(shù)騫10方式2白動(dòng)再裝入的s位定時(shí)/計(jì)數(shù)器i1方式3定時(shí)/計(jì)時(shí)器1無效,將定時(shí)/計(jì)數(shù)器口分成兩個(gè)8位計(jì)數(shù)器tcon1時(shí)/計(jì)數(shù)器工作方式控制寄存器位地址8fhseh8dhsch3bh8ahs9h8sh符號(hào)tf1tr1tf0tr0e1it1ie01t0tf1 (tcon.7):計(jì)時(shí)器1溢出標(biāo)志,當(dāng)計(jì)時(shí)溢出時(shí),由硬件設(shè)定為 中斷服務(wù)程序后則自動(dòng)清 0。tr1 (tcon.6):計(jì)時(shí)器1啟動(dòng)控制位,可以由軟件來設(shè)定或清除。 器工作,trl=0時(shí)關(guān)閉。tf0 (tcon.5):計(jì)時(shí)器0溢出標(biāo)志,當(dāng)計(jì)時(shí)溢出時(shí),由硬件設(shè)定為 中斷服務(wù)程序后則自動(dòng)清 0。tr0
17、(tcon.4):計(jì)時(shí)器0啟動(dòng)控制位,可以由軟件來設(shè)定或清除。 計(jì)時(shí)器工作,tr0=時(shí)關(guān)閉。1 ,在執(zhí)行相對(duì)的tr1時(shí)啟動(dòng)計(jì)時(shí)1,在執(zhí)行相對(duì)的tr0=1時(shí),啟動(dòng)硬件自動(dòng)設(shè)定此位,ie1 (tcon.3):外部中斷1工作標(biāo)志,當(dāng)外部中斷被檢查出來時(shí),在執(zhí)行中斷服務(wù)程序后,則清 0。it1 (tcon.2):外部中斷1工作形式選擇,it1=1時(shí),由下降緣產(chǎn)生外部中斷,it1=0 時(shí),則為低電位產(chǎn)生中斷。定此ie0 (tcon.1):外部中斷0工作標(biāo)志,當(dāng)外部中斷被檢查出來時(shí),硬件自動(dòng)設(shè)位,在執(zhí)行中斷服務(wù)程序后,則清0。it0 (tcon.0):外部中斷0工作形式選擇,it1=1時(shí),由下降沿產(chǎn)生外部
18、中斷it1=0時(shí),則為低電位產(chǎn)生中斷。scon定時(shí)/計(jì)數(shù)器工作方式控制寄存器位地址9fh9eh9dh9ch9bh9ah99h9sh符號(hào)sm1sm2rentb8rb8tirism0 (scon.7):串行通訊工作方式設(shè)定位 0。sm1 (scon.6):串行通訊工作方式設(shè)定位1。sm2(scon.5):允許方式2或方式3多機(jī)通訊控制位。在方式2或方式3時(shí),如sm2=1 , ren=1 ,則從機(jī)處于只有接收到rb8=1(地址幀)才激發(fā)中斷請(qǐng)求標(biāo)志位 ri=1 ,向主機(jī)請(qǐng)求中斷處理。被確認(rèn)為尋址的從機(jī)復(fù)位sm2=0,才能接收rb8=0的數(shù)據(jù)幀布方式1時(shí),如sm2=l ,則只有在接收到有效停止位時(shí)才置
19、位中斷請(qǐng)求標(biāo)志位ri=1;在方式0時(shí),sm2應(yīng)為0。ren (scon.4) : ren,允許/禁止串行接收控制位。由軟件置位ren=1為允許串行接收狀態(tài),可啟動(dòng)串行接收器rxd ,開始接收信息。軟件復(fù)位 ren = 0,則禁止接收。tb8 (scon.3):在方式2或方式3,它為要發(fā)送的第 9位數(shù)據(jù),按需要由軟件置位或 清0。例如,可用作數(shù)據(jù)的校驗(yàn)位或多機(jī)通訊中表示地址幀/數(shù)據(jù)幀的標(biāo)志位。rb8 (scon.2):在方式2或方式3,是接收到的第 9位數(shù)據(jù)。在方式1,若sm2 = 0, 則rb8是接收到的停止位。方式 0不用rb8。ti (scon.1):發(fā)送中斷請(qǐng)求標(biāo)志位。在方式 0,當(dāng)串行
20、發(fā)送數(shù)據(jù)第 8位結(jié)束時(shí),由內(nèi) 部硬件自動(dòng)置位 ti=1 ,向主機(jī)請(qǐng)求中斷,響應(yīng)中斷后必須用軟件復(fù)位ti=0。在其他方式中,則在停止位開始發(fā)送時(shí)由內(nèi)部硬件置位,必須用軟件復(fù)位。ri (scon.0):接收中斷請(qǐng)求標(biāo)志位。在方式 0,當(dāng)串行接收到第 8位結(jié)束時(shí)由內(nèi)部硬 件自動(dòng)置位ri=1 ,向主機(jī)請(qǐng)求申斷,響應(yīng)中斷后必須用軟件復(fù)位ri=0。在其他方式中,串行接收到停止位的中間時(shí)刻由內(nèi)部硬件置位ri=1(例外情況見sm2說明),必須由軟件復(fù)位 ri=0。其中sm0、sm1按下列組合確定串行通訊的工作方式:sm0sm1匚作方式功能說明波特率0q方式0移位寄存器方式1 / 12u01方式18位uart方
21、式可變10方式29位uart萬式1 / 64 jjc 1 / 3211方式39位uart方式可變pcon電源控制寄存器位地址不可位尋址符號(hào)smddgf1gf0pdidl:雙倍波特率控制位。mod保留。gf1 :通用標(biāo)志。gf0 :通用標(biāo)志。pd : pd= 1時(shí),進(jìn)入掉電方式。idl : idl =1時(shí),進(jìn)入凍結(jié)方式。6、常用波特率與定時(shí)/計(jì)數(shù)器1各參數(shù)關(guān)系方式波特率fastshod定時(shí)器1c / r.j鼠裝初值方式口0.sm6mhzxxxx1m12mhzxxxx方式2187.5m6mhz1xxx375m12mhz1xxx方式1和方式3s2. 5k12mhz102ffh19. 2k6mhzl0
22、2feh19. 2k11, 059 mhz102fdh9.6k6mhz1 10r2fdh9.6kil 059 mhzq02fdh4.8k6mhz00r 2fdhl8k1ld59 mhz0 0 2fah2. 4k6mhz002fah2.1l 059 mhzq02f1h1.26mhz02f1hl2kil 059 mhzc j02f3h1106mhz0q272h11012m0 0p 1fffbh556mhz001fffbh2.2.22、 數(shù)碼管數(shù)碼管可以分為共陽(yáng)極與共陰極兩種,共陽(yáng)極就是把所有l(wèi)ed的陽(yáng)極連接到共同接點(diǎn)com,而每個(gè)led的陰極分別為a、b、c、d、e、f、g及dp (小數(shù)點(diǎn));共陰
23、極則是把所有 led的陰極連接到共同接點(diǎn) com,而每個(gè)led的陽(yáng)極分別為a、b、c、d、e、f、g及dp (小數(shù) 點(diǎn))。圖9共陽(yáng)極內(nèi)部接線圖此設(shè)計(jì)采用的是共陽(yáng)極數(shù)碼管,共陽(yáng)極的 led顯示管的發(fā)光二極管的陰極連在一 塊,通常此公共陽(yáng)極接地,當(dāng)某個(gè)發(fā)光二極管的陽(yáng)極為低電平的時(shí)候,發(fā)光二極 管點(diǎn)亮,相應(yīng)的段被顯示出來,為了使 led顯示器不同的符號(hào)和數(shù)字,就要把不 同段的發(fā)光二極管點(diǎn)亮,這樣就要為 led顯示器提供代碼,因?yàn)檫@些代碼可以使 led相應(yīng)的段發(fā)光,從而顯示不同的字型,因而該代碼稱之為段碼。單片機(jī)led共用檄段網(wǎng)表【0 f】圜(kollh oii4hbohoht 9則 92hb 82比
24、 016h0-7閽80h. 9dil88h 83h. oc6il oalll 86h,加h8 f圖10共陽(yáng)極數(shù)碼管段碼2.3 設(shè)計(jì)方案根據(jù)設(shè)計(jì)的任務(wù)和要求,需要進(jìn)行硬件和軟件的結(jié)合。2.3.1 硬件設(shè)計(jì)具體的電路原理圖如下圖11所示:17圖11廚房提醒器原理圖分析電路圖:2.3.1.1 按鈕電路的分析圖12按鈕電路r 口由叩pd.2md2 ph 3mlp 口就 叩了曲解按鈕電路中五個(gè)按鈕分別代表開始鍵,清除鍵,秒個(gè)位健,秒十位健,分個(gè)位健,分十位健,他們分別與單片機(jī)的 p0.0,p0.1,p02p03p0.4相連,并接10k的上拉電阻,按鈕的另一端接地,當(dāng)相應(yīng)的按鈕按下時(shí),單片機(jī)根據(jù)程序會(huì)檢測(cè)
25、到相應(yīng)p0 口的電平變化,從而執(zhí)行相應(yīng)的子程序。2.3.1.2位選電路的分析e照8pci 7 搞 口7 pc 3md3 fc14/ap4 r3國(guó)同06 pa惘山加 pq 7/ad7pzwmp2 1 泌 pzzmo p2 3mi pzw12 p2 國(guó) *13 p2 ami m p2t*d 5psoiirxd fi utxd p.wjto p3 mnt1甩mfd因國(guó)跖 fl你口snf.-rikl 0 1 r j3t -t二rt r一_1 2 r r r r_-,q3mhqt3 4buz1au?e:圖13位選電路位選電路由五個(gè)三極管與電阻串聯(lián)而成,電阻的主要作用是保護(hù)單片機(jī)的并行口,五個(gè)三極 管的b
26、級(jí)分別接單片機(jī)的 p2.0, p2.1 , p2.2, p2.3, e端接正5v電壓,c端接數(shù)碼管的位 選端,當(dāng)p2 口中相應(yīng)的并行口為低電平時(shí),則三極管導(dǎo)通,并會(huì)選中相應(yīng)的數(shù)碼管。圖14 段碼電路數(shù)碼管的7個(gè)段碼分別由p1 口控制,限流電阻為 330,當(dāng)單片機(jī)p1的相應(yīng)為高電平時(shí), 會(huì)點(diǎn)亮數(shù)碼管的相應(yīng)的段碼。2.3.2 軟件的分析此廚房提醒器采用的是提醒的方式,有五個(gè)按鍵,分別是“開始”鍵,“清除”鍵,“分十位加一”鍵,“分個(gè)位加一”鍵和“秒十位加一”鍵,程序需要設(shè)置各個(gè)按鍵 的時(shí)間,然后按開始鍵倒計(jì)時(shí),當(dāng)再次顯示 00: 00時(shí)則蜂鳴器提醒到時(shí)。具體的程序流程圖 如下圖15所示:圖15流程
27、圖2.3.2.1程序如下:19miaosequp0.4fengeequp0.3fenshequp0.2kaishequp0.1qingcequp0.0;中斷入口程序*org0000hljmpmainorg000bhljmptimer0org0030h; ;主程序開始*main:lcallstloop1:jbmiaos, loop2clrp2.7lcalldelayjbmiaos, loop2mova,41hincamov41h, ajnbmiaos,$cjnea,#06h,loop2mov41h, #00hloop2:jbfenge, loop3clrp2.7lcalldelayjbfenge
28、,loop3mova,42hincamov42h,ajnbfenge,$cjnea,#0ah,loop3mov42h,#00hloop3:jbfensh,startclrp2.7lcalldelayjbfensh,startmova,43hincamov43h,ajnbfensh,$cjnea,#06h,startmov43h,#00hstart:jbkaish,loop5; 上電顯示 00: 00; 秒十位的設(shè)置; 開蜂鳴器;消抖; 判斷秒十位是否按下; 判斷秒十位是否為 6;41h 單元清 0; 分個(gè)位設(shè)置;開蜂鳴器;消抖; 判斷分個(gè)位是否按下; 判斷分個(gè)位是否為 10;42h 單元清 0
29、; 分十位設(shè)置;開蜂鳴器;消抖; 判斷分十位是否按下; 判斷分十位是否為 6;43h 單元清 0; 開始鍵設(shè)置25clrp2.7;開蜂鳴器lcalldelay;消抖jbkaish,loop5; 掃描開始鍵movtmod,#01h; 定時(shí)器初始化movtl0,#60hmovth0,#0f0hsetbet0setbeamovr4,#250setbtr0hedis:acalldispsjmploop1loop5:acalldispjbqingc,st; 清除鍵設(shè)置sjmploop1; 返回秒十位設(shè)置程序;顯示 00:00 程序 *st:movr0,#40h; 將顯示內(nèi)容移到 40hmovr2,#20
30、hmovr3,#00hclramovdptr,#stabsloop:movca,a+dptrmovr0,amova,r3incamovr3,aincr0djnzr2,sloop; 移入完畢lcalldisp; 調(diào)用顯示程序retstab:db 00h,00h,00h,00hdisp:movr1,40hmovr5,#0feh; 掃描控制字初值splay:mova,r5;掃描字放入 amovp2,a;從 p2 口輸出mova,r1; 取顯示數(shù)據(jù)到 amovdptr,#tabs; 取段碼表地址movca,a+dptr; 查顯示數(shù)據(jù)對(duì)應(yīng)段碼movp1,a;段碼放入 p1 口mova,r5lcalldl
31、1ms; 顯示 1msincr1; 指向下一地址mova,r5; 掃描字放入 a*數(shù)碼管顯示程序*movr5,aajmpsplay; 跳回 splay 循環(huán)endouts:movp2,#0ffh;p2 口復(fù)位movp1,#0ffhrettabs:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h; 共陽(yáng)段數(shù)碼表0, 1, 2, 3, 4, 5, 6, 7, 8, 9,;*1ms延時(shí)程序*dl1ms:movr6,#14hdl1:movr7,#19hdl2:djnzr7,dl2djnzr6,dl1ret;*20ms延時(shí)程序,用于消抖*delay:clrp
32、2.7lcalldisplcalldisplcalldispsetbp2.7ret; ;中斷程序*timer0:movtl0,#60hmovth0,#0f0hpushaccpushpswdjnzr4,n5movr4,#250movb,#10mova,41hmulabadda,#40hmov50h,amova,43hmovb,#10mulabadda,42hmov51h,amova,50hcjnea,#00,loop10mova,51hcjnea,#00,loop11;acc.3=0 時(shí),一次顯示結(jié)束;a 中數(shù)據(jù)循環(huán)左移lcall speakeyjnb acc.3,endoutsrl asjmp
33、 n4loop11:mov 50h,#59dec 51h sjmp n4loop10:dec50hn4:mova,50hmov b,#10div abmov 41h,amov 40h,bmov a,51hmov b,#10 div ab mov 43h,a mov 42h,bn5:pop pswpop accretspeakey:clr tr0setb p2.7retend2.3 軟件與硬件結(jié)合調(diào)試硬件調(diào)試:硬件調(diào)試是利用dvcc實(shí)驗(yàn)與開發(fā)系統(tǒng)、基本測(cè)試儀器(萬用表、示波器等), 檢查用戶系統(tǒng)硬件中存在的故障。硬件調(diào)試可分為靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試兩步進(jìn)行。靜態(tài)調(diào)試是在用戶系統(tǒng)未工作時(shí)的一種硬件檢測(cè)。第一步:目測(cè)。檢查外部的各種元件或者是電路是否有斷點(diǎn)。第 二 步 : 用 萬用 表 測(cè)試 。先 用 萬 用 表復(fù) 核 目 測(cè) 中 有 疑 問 的 連 接 點(diǎn) ,再 檢 測(cè) 各 種 電源線與地線之間是否有短路現(xiàn)象。第 三 步 : 加 電檢 測(cè) 。給 板 加 電 ,檢 測(cè) 所 有 插 座或 是 器件 的 電 源 端是 否 符 合 要 求 的值第四步:聯(lián)機(jī)檢查。因?yàn)橹挥杏脝纹瑱C(jī)開發(fā)系統(tǒng)才能完成對(duì)用戶系統(tǒng)的調(diào)試。 動(dòng)態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件 內(nèi) 部 故 障 、器 件 連 接 邏 輯 錯(cuò) 誤等 的 一 種硬 件 檢 查 。動(dòng) 態(tài) 調(diào) 試 的 一 般
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)社區(qū)服務(wù)心理學(xué)研究管理基礎(chǔ)知識(shí)點(diǎn)歸納
- 2024年湖南中煙招聘考試真題及答案
- 歷史村落保護(hù)規(guī)劃基礎(chǔ)知識(shí)點(diǎn)歸納
- 2025年大學(xué)計(jì)算機(jī)復(fù)試題
- 地理(武漢專用)2025年中考考前押題最后一卷
- 冀教版小學(xué)一年級(jí)數(shù)學(xué)三單元教學(xué)設(shè)計(jì)
- 綠色金融產(chǎn)融合作的國(guó)際化發(fā)展趨勢(shì)與實(shí)踐經(jīng)驗(yàn)
- 完善企業(yè)民主管理制度的績(jī)效評(píng)估與反饋機(jī)制
- 智慧養(yǎng)老的策略及實(shí)施路徑
- 天然氣管道項(xiàng)目可行性研究報(bào)告
- 軍隊(duì)文職人員招聘(軍需保管員)歷年考試真題試題庫(kù)(含答案)
- 2024北京海淀區(qū)初三一模英語試卷和答案
- 中建三局三公司安裝分公司勞務(wù)企業(yè)定額
- 《選品與采購(gòu)》中職全套教學(xué)課件
- HG∕T 4591-2014 化工液力透平
- 國(guó)家開放大學(xué)《工程地質(zhì)(本)》形考作業(yè)-1-4參考答案
- 2024年新疆發(fā)聲亮劍發(fā)言稿3則
- JT-T-1344-2020純電動(dòng)汽車維護(hù)、檢測(cè)、診斷技術(shù)規(guī)范
- 【網(wǎng)上書店設(shè)計(jì)與實(shí)現(xiàn)20000字(論文)】
- 江蘇省南京市建鄴區(qū)2023-2024學(xué)年五年級(jí)下學(xué)期6月期末英語試題
- 2024年湖北省武漢市中考語文試卷真題(含答案)
評(píng)論
0/150
提交評(píng)論