




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、xxxxxxxx大學(xué)課 程 設(shè) 計(jì) 任 務(wù) 書題目 數(shù)字時(shí)鐘 專業(yè)、班級 自動(dòng)化07-2 學(xué)號 01 姓名 xxx 主要內(nèi)容、基本要求、主要參考資料等:主要內(nèi)容:l 功能要求:24小時(shí)制時(shí)間顯示??呻S時(shí)使用鍵盤可調(diào)整時(shí)間,設(shè)置數(shù)據(jù)應(yīng)能保存。整點(diǎn)報(bào)時(shí),響1s,停1s,前四聲為低音,最后一響結(jié)束時(shí)正好為整點(diǎn)。l 硬件要求:led或lcd顯示器、按鍵4個(gè)(計(jì)時(shí)、調(diào)時(shí)、+、-)、蜂鳴器等。上述內(nèi)容為基本要求,可按照自己的理解增加功能使之更完善。基本要求:l 明確課程設(shè)計(jì)任務(wù),復(fù)習(xí)與查閱有關(guān)資料。l 按要求對設(shè)計(jì)進(jìn)行簡要說明,總體設(shè)計(jì)方案,設(shè)計(jì)電路,使用計(jì)算機(jī)繪圖,畫出詳細(xì)的電路接線圖,列出元器件清單。
2、電路圖要求工整、清楚、正確,并標(biāo)明管腳。l 軟件編程必須有流程圖,程序必須加注釋,各程序段的開始要注明該段功能和作用。l 寫出體會(huì)和總結(jié)。要求使用b5打印稿或16開紙手寫,不少于5000字。格式遵照學(xué)校規(guī)定。 主要參考資料:l “單片機(jī)與控制技術(shù)” 楊寧主編,北京航空航天大學(xué)出版社。l “單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)” (修訂版) 周航慈主編,北京航空航天大學(xué)出版社。l “電子技術(shù)應(yīng)用”、“電子設(shè)計(jì)應(yīng)用”、“單片機(jī)與嵌入式系統(tǒng)應(yīng)用”等期刊l (單片機(jī)和元器件資料)l www.icbase.com (元器件資料)l (電子產(chǎn)品世界)完 成 期 限: 2011年1月21日指導(dǎo)教師簽名: 課程負(fù)責(zé)人簽名:
3、 2011年 1 月 21 日目 錄摘 要11. 數(shù)字時(shí)鐘的構(gòu)成21.1 數(shù)字時(shí)鐘的構(gòu)成21.2 設(shè)計(jì)方案論證21.2.1 主控制部分方案選擇21.2.2 顯示部分方案選擇32. 主要硬件介紹32.1 at89c5232.1.1 引腳結(jié)構(gòu)及各端口介紹42.1.2 復(fù)位與時(shí)鐘電路62.2 74hc24473. 硬件電路設(shè)計(jì)83.1設(shè)計(jì)框圖與說明83.2 數(shù)碼管顯示驅(qū)動(dòng)83.3 按鍵操作說明104. 系統(tǒng)程序的設(shè)計(jì)104.1 主程序104.2 顯示子程序104.3 定時(shí)器t0中斷服務(wù)程序114.4定時(shí)器t1中斷服務(wù)程序124.5 調(diào)時(shí)功能程序134.6 秒表計(jì)時(shí)功能程序134.7 鬧鐘時(shí)間設(shè)定功能
4、程序144.8 性能分析145. 總 結(jié)14附錄 電路原理圖16附錄 元器件清單17附錄 單片機(jī)c源程序18參考資料22摘 要單片機(jī)自20世紀(jì)70年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而52單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種,at89c52單片機(jī)是一種帶8k字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的低電壓、高性能cmos8位微處理器。本設(shè)計(jì)是基于mcs51系列單片機(jī)中at89c52所設(shè)計(jì)的一種高精度、智能化的數(shù)字時(shí)鐘,可以實(shí)現(xiàn)鍵盤按鍵與數(shù)字動(dòng)態(tài)顯示并可以用音樂倒數(shù)的數(shù)字時(shí)鐘/計(jì)時(shí)器。本設(shè)計(jì)基于單片機(jī)技術(shù)原理,以單片機(jī)芯片at89c52作為核心控制器,由單
5、片機(jī)控制數(shù)碼管的顯示,修改設(shè)置時(shí)間采用操作方便的按鍵開關(guān),整點(diǎn)報(bào)時(shí)系統(tǒng)使用有源蜂鳴器,通過硬件電路制作以及軟件程序的編制,設(shè)計(jì)制作一個(gè)簡單的數(shù)字時(shí)鐘/計(jì)時(shí)器,包括以下功能:時(shí)、分、秒24小時(shí)制輸出顯示、可隨時(shí)使用按鍵實(shí)現(xiàn)時(shí)、分調(diào)整設(shè)置、具有秒表計(jì)時(shí)功能、能整點(diǎn)報(bào)時(shí)、定時(shí)鬧鈴等。1. 數(shù)字時(shí)鐘的構(gòu)成1.1 數(shù)字時(shí)鐘的構(gòu)成數(shù)字時(shí)鐘實(shí)際上是一個(gè)對標(biāo)準(zhǔn)頻率(1hz)進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路,由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間一致,故需要在電路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的1mhz時(shí)間信號必須做到準(zhǔn)確穩(wěn)定,通常使用石英晶體振蕩器電路構(gòu)成數(shù)字時(shí)鐘。(1)晶體振蕩器電路晶體振蕩器電路給數(shù)字時(shí)鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的
6、12mhz的方波信號,可保證數(shù)字時(shí)鐘的走時(shí)準(zhǔn)確及穩(wěn)定,不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電路。(2)時(shí)間計(jì)數(shù)器電路時(shí)間計(jì)數(shù)器電路由秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器構(gòu)成。秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器。1.2 設(shè)計(jì)方案論證1.2.1 主控制部分方案選擇采用at89c52單片機(jī)芯片為核心控制器,實(shí)現(xiàn)時(shí)、分、秒同步顯示,這種單片機(jī)具有足夠的空余硬件資源,可以實(shí)現(xiàn)其他的功能擴(kuò)展。為了使用的方便性,還可以通過設(shè)置按鍵來更改時(shí)間和計(jì)時(shí)。這正是利用了at89c52單片機(jī)的多管腳功能性,4個(gè)8位并行i/o口,定時(shí)計(jì)數(shù)端口,中斷端口,這使得操作起來更
7、加方便,通過軟件可以隨時(shí)的調(diào)整和更改,使得更加精確。1.2.2 顯示部分方案選擇可以通過數(shù)碼管來顯示時(shí)鐘的時(shí)、分、秒,使用數(shù)碼管的優(yōu)點(diǎn)是直觀清楚,適合用在光線較暗的地方,且成本較低,使用方便。為了實(shí)現(xiàn)led顯示器的數(shù)字顯示,可以采用靜態(tài)顯示法和動(dòng)態(tài)顯示法,由于靜態(tài)顯示法需要數(shù)據(jù)鎖存器等硬件,接口就相對復(fù)雜一些,又考慮到時(shí)鐘顯示只有6位,且系統(tǒng)沒有其他復(fù)雜的處理任務(wù),所以采用動(dòng)態(tài)掃描法實(shí)現(xiàn)led的顯示。動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光二極管的余輝和人眼視
8、覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示節(jié)省了i/o口。2. 主要硬件介紹2.1 at89c52at89c52是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash存儲(chǔ)器,使用atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80c51產(chǎn)品指令和引腳完全兼容。片上flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位cpu和在系統(tǒng)可編程flash,使得at89c52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。at89c52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)閃存,256字節(jié)ram,32位i/o接口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,3
9、個(gè)16位定時(shí)器/計(jì)數(shù)器,1個(gè)6向量二級中斷結(jié)構(gòu),全雙工串口,片內(nèi)晶振及時(shí)鐘電路。另外,at89c52可降至0hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu停止工作,允許ram、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。2.1.1 引腳結(jié)構(gòu)及各端口介紹 vcc:電源gnd:地圖1 at89c52引腳結(jié)構(gòu)圖p0口:p0口是一個(gè)8位漏極開路的雙向i/o口,作為輸出口,每位能驅(qū)動(dòng)8個(gè)ttl邏輯電平,對p0端口寫“1”時(shí),引腳用做高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),p0口也被作為低8位地址
10、/數(shù)據(jù)復(fù)用。在這種模式下,p0口具有內(nèi)部上拉電阻。在flash編程時(shí),p0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。 p1口:p1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向i/o口,p1輸出緩沖器能驅(qū)動(dòng)4個(gè)ttl邏輯電平。對p1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入口使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。此外,p1.0和p1.2分別作為定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(p1.0/t2)和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(p1.1/t2ex)。在flash編程和校驗(yàn)時(shí),p1口接收低8位地址字節(jié)。p2口:p2口是一
11、個(gè)具有內(nèi)部上拉電阻的8位雙向i/o口,p2輸出緩沖器能驅(qū)動(dòng)4個(gè)ttl邏輯電平。對p2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入口使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行movx dptr)時(shí),p2口送出高八位地址。在這種應(yīng)用中,p2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如movx ri)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),p2口輸出p2鎖存器的內(nèi)容。在flash編程校驗(yàn)時(shí),p2口也接收高8位地址字節(jié)和一些控制信號。p3口:p3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向i/o口,p3輸出緩沖器能
12、驅(qū)動(dòng)4個(gè)ttl邏輯電平。對p3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入口使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。p3口亦作為at89s52特殊功能使用。在flash編程和校驗(yàn)時(shí),p3口也能接收一些控制信號。rst:復(fù)位輸入。晶振工作時(shí),rst腳持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。看門狗計(jì)時(shí)完成后,rst腳輸出96個(gè)晶振周期的高電平。特殊寄存器auxr(地址8eh)上的disrto位可以使此功能無效。disrto默認(rèn)狀態(tài)下,復(fù)位高電平有效。ea/vpp:外部訪問允許。欲使cpu 僅訪問外部程序存儲(chǔ)器(地址為0000hffffh),ea
13、端必須保持低電平(接 地)。需注意的是:如果加密位lb1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu 則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。flash 存儲(chǔ)器編程時(shí),該引腳加上+12v 的編程允許電源vpp,當(dāng)然這必須是該器件是使用12v 編程電壓vpp。xtal1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。xtal2:振蕩器反相放大器的輸出端。2.1.2 復(fù)位與時(shí)鐘電路復(fù)位是單片機(jī)的初始化操作,只要給reset引腳加上兩個(gè)機(jī)器周期以上的高電平信號,就可使at89c52單片機(jī)復(fù)位。復(fù)位的主要功能是把程序計(jì)數(shù)器(pc)初始化為0000h,使單片機(jī)從0000h單元開始執(zhí)行
14、程序,同時(shí)復(fù)位操作還對一些寄存器有影響。at89c52的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的,復(fù)位電路分為上電復(fù)位和按鍵復(fù)位兩種方式。其電路如圖2所示。圖2 復(fù)位電路 單片機(jī)的時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常見的時(shí)鐘電路有兩種方式,一種是內(nèi)部時(shí)鐘方式,另一種是外部時(shí)鐘方式。本設(shè)計(jì)選用內(nèi)部時(shí)鐘方式,at89c52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入端為芯片引腳xtal1,輸出端為引腳xtal2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,at89c52時(shí)鐘電路如圖3所示。電路中電容取值通常為30pf,由
15、于單片機(jī)要進(jìn)行串行通信,為了獲得準(zhǔn)確的波特率,選擇12mhz的晶振。圖3 時(shí)鐘電路2.2 74hc244 74hc244為八同相三態(tài)緩沖器/線驅(qū)動(dòng)器。其功能為:如果輸入的數(shù)據(jù)可以保持比較長的時(shí)間(比如鍵盤),簡單輸入接口擴(kuò)展通常使用的典型芯片為74hc244,由該芯片可構(gòu)成三態(tài)數(shù)據(jù)緩沖器。74hc244芯片的引腳排列如圖4所示。圖4 74hc244芯片的引腳排列芯片使用說明:74hc244芯片內(nèi)部共有兩個(gè)四位三態(tài)緩沖器,使用時(shí)可分別以1g和2g作為它們的選通工作信號。當(dāng)1/oe和2/oe都為低電平時(shí),輸出端y和輸入端a狀態(tài)相同;當(dāng)1/oe和2/oe都為高電平時(shí),輸出呈高阻態(tài)。3. 硬件電路設(shè)計(jì)
16、3.1設(shè)計(jì)框圖與說明此設(shè)計(jì)的硬件部分主要由主控制器單片機(jī),顯示電路,按鍵電路,蜂鳴器等構(gòu)成。該電路采用at89c52單片機(jī)最小化應(yīng)用設(shè)計(jì),采用共陽7段led數(shù)碼管顯示器;p0口輸出斷碼數(shù)據(jù);p2.0p2.5口作列掃描輸出;p1.0、p1.1、p1.2和p1.3口接4個(gè)按鈕開關(guān),用于調(diào)時(shí)及功能選擇;p1.7端口接5v的小蜂鳴器,用于按鍵發(fā)音及定時(shí)提醒、整點(diǎn)報(bào)時(shí)提醒等;為了提供共陽數(shù)碼管的列掃描驅(qū)動(dòng)電壓,用三極管9012作電源驅(qū)動(dòng)輸出;采用12mhz晶振,可提高秒計(jì)時(shí)的精確性。數(shù)字時(shí)鐘/計(jì)時(shí)器電路系統(tǒng)的總體設(shè)計(jì)框圖如圖5所示。按鍵電路蜂鳴器6位led顯示器列驅(qū)動(dòng)at89c52 p0單片機(jī)控制器 p
17、2圖5 硬件系統(tǒng)的總體設(shè)計(jì)框圖3.2 數(shù)碼管顯示驅(qū)動(dòng)本設(shè)計(jì)為了簡化電路,降低成本,節(jié)省系統(tǒng)資源,將6位數(shù)碼管并聯(lián)在一起,由一片74hc244控制。由于所有的led的段選碼皆由一個(gè)74hc244并行輸出口控制,因此,在每一瞬間,每位數(shù)碼管會(huì)顯示相同的字符。想要每位顯示不同的字符,就必須采用掃描的方法,即在一瞬間只使用一位顯示字符。在此瞬間,74hc244并行輸出口輸出相應(yīng)字符段選碼,而位選則控制i/o口在該顯示送人選通電平,以保證該位顯示相應(yīng)字符。如此輪流,使每位分時(shí)顯示該位應(yīng)顯示字符。由于74hc244具有鎖存功能,而且串行輸入段選碼需要一定時(shí)間,因此不需要延時(shí),即可形成視覺暫留效果。數(shù)碼管點(diǎn)
18、亮條件:段選和位選。圖6為位選電路,pnp型三極管的集電極接數(shù)碼管的公共端,當(dāng)p2口對應(yīng)的引腳輸出低電平時(shí)三極管導(dǎo)通,對應(yīng)的數(shù)碼管顯示數(shù)據(jù)。這樣,在同一時(shí)間,多位led中只有選通的那1位顯示出字符,而其他5位則是熄滅的,同樣,在下一時(shí)刻,只讓下一位的位選線處于選通狀態(tài),而其他各位的位選線處于關(guān)閉狀態(tài),在段碼線上輸出將要顯示字符的段碼,則同一時(shí)刻,只有選通位顯示相應(yīng)的字符,而其他各位則是熄滅的,如此循環(huán),就可以使各位顯示出將要顯示的字符。雖然這些字符是在不同時(shí)刻顯示的,而在同一時(shí)刻,只有一個(gè)顯示,其他各位熄滅,但由于led的余輝和人眼的視覺暫留作用,只要每位顯示間隔足夠短,則可以造成多位同時(shí)點(diǎn)亮
19、的假象,達(dá)到同時(shí)顯示的效果。圖6 數(shù)碼管位選電路3.3 按鍵操作說明(1)長按p1.0鍵進(jìn)入分調(diào)整狀態(tài):分單元閃爍,按p1.0鍵加1,按p1.1鍵減1。再長按p1.0鍵進(jìn)入時(shí)調(diào)整,時(shí)單元閃爍,加減調(diào)整同調(diào)分,再長按退出調(diào)整。(2)按下p1.1鍵進(jìn)入秒表計(jì)時(shí)狀態(tài):按p1.2鍵秒表清0,再按p1.2鍵秒表啟動(dòng),再按p1.2鍵暫停,再按p1.2鍵又清0,如此循環(huán)。按p1.1鍵退出秒表計(jì)時(shí)回到時(shí)鐘顯示。(3)按p1.3鍵進(jìn)入設(shè)定鬧鐘狀態(tài):顯示式樣為00:00:,可進(jìn)行分設(shè)定,按p1.2鍵,分加1,按p1.0鍵,分減1;再按p1.3鍵為時(shí)調(diào)整,顯示式樣為00:00:,按p1.2鍵,時(shí)加1,按p1.0鍵,
20、時(shí)減1;按p1.1鍵鬧鐘有效,顯示式樣變?yōu)?0:00:0;再按p1.1鍵鬧鐘無效,顯示式樣又變?yōu)?0:00:;按p1.3鍵調(diào)鬧鐘結(jié)束。(4)在鬧鐘時(shí)可按下p1.3鍵停鬧,不按則鬧鈴1分鐘后自行中止。4. 系統(tǒng)程序的設(shè)計(jì)4.1 主程序 本設(shè)計(jì)中計(jì)時(shí)采用定時(shí)器t0中斷完成,秒表使用定時(shí)器t1中斷完成。主程序循環(huán)調(diào)用顯示子程序和查鍵子程序,當(dāng)端口有按鍵按下時(shí),轉(zhuǎn)入相應(yīng)功能程序。其主程序執(zhí)行流程如圖7所示。4.2 顯示子程序時(shí)間顯示子程序每次顯示6個(gè)連續(xù)內(nèi)存單元的十進(jìn)制bcd碼數(shù)據(jù),首地址在調(diào)用顯示子程序時(shí)先指定。內(nèi)存中50h55h為鬧鐘定時(shí)單元,60h-5h為秒表計(jì)時(shí)單元,70h-75h為時(shí)鐘顯示單
21、元。由于采用7段共陽led數(shù)碼管動(dòng)態(tài)掃描實(shí)現(xiàn)數(shù)據(jù)顯示,所以顯示十進(jìn)制bcd碼數(shù)據(jù)的對應(yīng)段碼存放在rom表中。顯示時(shí),先取出內(nèi)存地址中的數(shù)據(jù),然后查得對應(yīng)的顯示用段碼從p0口輸出,p2口將對應(yīng)的數(shù)碼管選中供電,就能顯示該地址單元的數(shù)據(jù)值。為了顯示小數(shù)點(diǎn)及“-”、“a”等特殊字符,在顯示時(shí)間和計(jì)時(shí)時(shí)應(yīng)采用不同的顯示子程序。初始化進(jìn)入功能程序按時(shí)間鳴叫次數(shù)調(diào)用顯示子程序開始鍵按下整點(diǎn)到y(tǒng)ynn圖7 主程序流程圖4.3 定時(shí)器t0中斷服務(wù)程序定時(shí)器t0用于時(shí)間計(jì)時(shí)。定時(shí)溢出中斷周期設(shè)為50ms,中斷進(jìn)入后先進(jìn)行定時(shí)中斷初值校正,當(dāng)中斷累計(jì)20次(即50ms*20=1s)時(shí),對秒計(jì)數(shù)單元進(jìn)行加1操作。時(shí)
22、鐘計(jì)數(shù)單元地址分別在70h-71h(秒)、76h-77h(分)、78h-79h(時(shí))中,最大計(jì)時(shí)值為23時(shí)59分59秒。7ah單元內(nèi)存放“熄滅符”數(shù)據(jù)(#0ah),用于時(shí)間調(diào)整時(shí)的閃爍功能。在計(jì)數(shù)單元中,采用十進(jìn)制bcd碼計(jì)數(shù),滿十進(jìn)位。t0中斷計(jì)時(shí)程序流程圖如圖8所示y保護(hù)現(xiàn)場定時(shí)初值校正加1s處理恢復(fù)現(xiàn)場,中斷返回t0中斷1s到?n圖8 t0中斷計(jì)時(shí)程序流程圖4.4 定時(shí)器t1中斷服務(wù)程序t1中斷程序用于指示時(shí)間調(diào)整單元數(shù)字的閃亮或秒表計(jì)數(shù),在時(shí)間調(diào)整狀態(tài)下,每過0.3s左右,將對應(yīng)調(diào)整單元的顯示數(shù)據(jù)換成“熄滅符”數(shù)據(jù)(#0ah)。這樣,在調(diào)整時(shí)間時(shí),對應(yīng)調(diào)整單元的顯示數(shù)據(jù)會(huì)間隔閃亮。在作
23、秒表計(jì)時(shí)時(shí),每10ms中斷1次,計(jì)數(shù)單元加1,每100次為1s。秒表計(jì)數(shù)單元地址在60h-61h(10ms)、62h-63h(秒)、64h-65h(分)中,最大計(jì)數(shù)值為99分59.99秒。t1中斷服務(wù)程序流程圖如圖9所示。秒表時(shí)鐘調(diào)時(shí)閃爍保護(hù)現(xiàn)場加10ms處理閃爍處理恢復(fù)現(xiàn)場,中斷返回t1中斷秒表/閃爍圖9 t1中斷服務(wù)程序流程圖4.5 調(diào)時(shí)功能程序調(diào)時(shí)功能程序的設(shè)計(jì)方法是:按下p1.0口按鍵,若按下時(shí)間小于1s,則進(jìn)入省電狀態(tài)(數(shù)碼管不亮,時(shí)鐘不停);否則進(jìn)入調(diào)分狀態(tài),等待操作,此時(shí)計(jì)時(shí)器停止走動(dòng)。當(dāng)再按下p1.0口按鍵時(shí),若按下時(shí)間小于0.5s,則時(shí)間加1分鐘;若按下時(shí)間大于0.5s,則進(jìn)
24、入小時(shí)調(diào)整狀態(tài)。按下p1.1按鍵時(shí),可進(jìn)行減1調(diào)整。在小時(shí)調(diào)整狀態(tài)下,當(dāng)按鍵按下時(shí)間大于0.5s時(shí),退出時(shí)間調(diào)整狀態(tài),時(shí)鐘從0s開始計(jì)時(shí)。4.6 秒表計(jì)時(shí)功能程序在正常時(shí)鐘狀態(tài)下,若按下p1.1口按鍵,則進(jìn)行時(shí)鐘/秒表計(jì)時(shí)顯示功能的轉(zhuǎn)換,秒表中斷計(jì)時(shí)程序啟動(dòng),顯示首地址改為60h,led將顯示秒表計(jì)時(shí)單元60h65h中的數(shù)據(jù)。按下p1.2口的按鍵,可實(shí)現(xiàn)秒表清0、秒表啟動(dòng)、秒表暫停功能;當(dāng)再按下p1.1口按鍵時(shí),關(guān)閉t1秒表中斷計(jì)時(shí),顯示首地址又改為70h,恢復(fù)正常時(shí)間的顯示功能。4.7 鬧鐘時(shí)間設(shè)定功能程序在正常時(shí)鐘狀態(tài)下,若按下p1.3口按鍵,則進(jìn)入設(shè)定鬧鐘調(diào)分狀態(tài),顯示首地址改為50h。
25、led將顯示50h55h中的鬧鐘設(shè)定時(shí)間,顯示式樣為00:00:,其中高二位代表時(shí),低二位代表分,在定時(shí)鬧鐘時(shí)精確到分。按p1.2鍵,分加1;按p1.0鍵,分減1。若再按p1.3鍵,則進(jìn)入鬧鐘時(shí)調(diào)整狀態(tài),顯示式樣為00:00:,按p1.2鍵,時(shí)加1;按p1.0鍵,時(shí)減1。按p1.1鍵,鬧鐘設(shè)定有效,顯示式樣變?yōu)?0:00:0;再按p1.1鍵,鬧鐘無效,顯示式樣又變?yōu)?0:00:。再按p1.3鍵,調(diào)整鬧鐘時(shí)間結(jié)束,恢復(fù)正常顯示時(shí)間。4.8 性能分析按照設(shè)計(jì)程序分析,led顯示器動(dòng)態(tài)掃描的頻率約為167hz,通過在proteus軟件上的仿真觀察沒有感覺到明顯的閃爍。由于計(jì)時(shí)中斷程序加了中斷延時(shí)誤差
26、處理,所以實(shí)際計(jì)時(shí)精度較高,可滿足多種場合的應(yīng)用需要。5. 總 結(jié)這次數(shù)字時(shí)鐘的課程設(shè)計(jì),從開始的方案選擇到原理圖的設(shè)計(jì)制作,程序的編寫、仿真,在我們?nèi)齻€(gè)組員的共同努力以及老師和同學(xué)的幫助下,總算有了一定成果。雖然在設(shè)計(jì)中也出現(xiàn)了這樣那樣的錯(cuò)誤,但我們通過查閱相關(guān)資料,同學(xué)之間的相互探討,及使用相關(guān)軟件的仿真,使得錯(cuò)誤逐個(gè)得到修正。針對這次課程設(shè)計(jì),可以說為我們做畢業(yè)設(shè)計(jì)起到鋪墊的作用。雖然之前也有過好幾次相關(guān)的課程設(shè)計(jì)了,但感覺這一次要較為系統(tǒng),課題的要求也相對多一些,同時(shí)老師要求更嚴(yán)格。課程設(shè)計(jì)就是理論與實(shí)踐的結(jié)合,不僅豐富課本的理論知識,同時(shí)也是學(xué)以致用,讓我們平時(shí)所學(xué)的知識得到了一次施
27、展,加深了我對單片機(jī)知識在實(shí)際運(yùn)用的理解,明白了理論知識在電子技術(shù)中的重要性。其中使我更進(jìn)一步掌握51單片機(jī)、74hc244等芯片及設(shè)計(jì)中所用到的相關(guān)電子元器件的知識,特別是一些元器件的應(yīng)用常識、元器件的特性等,也讓我對protel、proteus、keilc這些軟件的操作使用更加熟練,這在理論學(xué)習(xí)中是無法體會(huì)到的。更重要的是自己在實(shí)際中思考問題、解決問題的能力得到了一定的鍛煉,提高了我的動(dòng)手實(shí)踐能力,加深了知識點(diǎn)的學(xué)習(xí)。同時(shí)這次課程設(shè)計(jì)有答辯環(huán)節(jié),這也是畢業(yè)答辯的一次演練從而使我們更加了解答辯流程,答辯方法等。在此,謝謝李老師在設(shè)計(jì)中的指導(dǎo)與幫助,以及幫助我設(shè)計(jì)的同學(xué)。附錄 電路原理圖 附錄
28、 元器件清單元器件名稱封裝形式型號數(shù)量51單片機(jī)mcs51-40at89c5218同相緩沖/驅(qū)動(dòng)器74hc2441共陽數(shù)碼管digital共陽極6電阻axial-1.010k5電阻axial-1.04.7k6電阻axial-1.00.51k8極性電容rb.5/1.047uf1電容rad-0.410uf1電容rad-0.430pf2電容rad-0.40.01uf1晶振xtal12mhz1蜂鳴器beepbeep1三極管pnp90127按鍵sw4bsw45附錄 單片機(jī)c源程序/*/ 采用6位led動(dòng)態(tài)掃描時(shí)鐘演示程序/ 使用keil c51/*/*使用at89c52單片機(jī),12mhz晶振,p0口輸出
29、段碼,p2口作列掃描,用共陽led數(shù)碼管顯示*/key0為調(diào)時(shí)位選用,key1為加1鍵,key2為減1鍵#include “reg51.h”#define char unsigned charchar code dis_711= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0xff;/*共陽led數(shù)碼管表“0”,“1”,“2”,“3”, “4”,“5”,“6”,“7”,“8”,“9”,“不亮”*/char code scan_con8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/列掃描控制字char
30、 data timedata6=0x00, 0x00, 0x00, 0x00, 0x00, 0x00;/計(jì)時(shí)單元數(shù)據(jù)初值char data dis8=0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00;/顯示單元數(shù)據(jù)char data con1s=0x00,con04s=0x00,con=0x00;/秒定時(shí)用sbit key0=p10;sbit key1=p11;sbit key2=p12;/*1ms延時(shí)函數(shù)*/delay1ms(int t)int i,j;for(i=0;it;i+) for(j=0;j=6) con=0; tr1=0;et1=0; tr0=1;et0=1; if(con!=0) if(key1=0) delay1ms(10); while(key1=0); timedatacon+; if(timedatacon=10) timedatacon=0; discon=timedatacon;dis6=0x0a; /if(con!=0) if(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 特來電合同協(xié)議
- 工廠貨物轉(zhuǎn)讓協(xié)議書范本
- 電子設(shè)備合同協(xié)議模板
- 地產(chǎn)公司分紅合同協(xié)議
- 幼兒園安全課程
- 教育的未來與挑戰(zhàn)
- 上海市松江區(qū)九亭第二小學(xué)2025年六年級下學(xué)期小升初招生數(shù)學(xué)試卷含解析
- 山東省煙臺市2025年重點(diǎn)中學(xué)小升初數(shù)學(xué)入學(xué)考試卷含解析
- 吉林省白山市長白縣2024-2025學(xué)年中考沖刺模擬(三)數(shù)學(xué)試題試卷含解析
- 慢性病管理和康復(fù)護(hù)理
- 江蘇省蘇州市2024-2025學(xué)年統(tǒng)編版(2024)第二學(xué)期七年級語文期中模擬卷(二)(含答案)
- 探討“職繼融通”研究的內(nèi)涵、框架及其未來發(fā)展趨勢
- 醫(yī)保飛行檢查培訓(xùn)
- 2025年中考英語押題預(yù)測卷(蘇州專用)(原卷版)
- CT引導(dǎo)下經(jīng)皮胃造瘺術(shù)專家共識(2025版)解讀課件
- 2024年美容師考試相關(guān)法律法規(guī)解讀試題及答案
- 2025年新版勞動(dòng)合同范本
- 高壓預(yù)試施工方案
- 事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)制度
- 2025年河南焦作市孟州市開創(chuàng)人才服務(wù)有限公司招聘筆試參考題庫附帶答案詳解
- 《能源法》重點(diǎn)內(nèi)容解讀與實(shí)務(wù)應(yīng)用
評論
0/150
提交評論