版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、東北石油大學(xué)課程設(shè)計任務(wù)書課程 單片機課程設(shè)計 題目 LED電子鐘的制作 一、任務(wù) 用單片機設(shè)計一個電子鐘,采用LED 數(shù)碼管來顯示時間。二、設(shè)計要求1顯示格式為:XX:XX:XX, 即:時:分:秒。2時間可采用12 小時制顯示或24 小時制顯示,采用12 小時顯示時必須在另外一個數(shù)碼管上顯示A(表示上午)或B(表示下午)。3設(shè)置一個按鍵用于時間顯示方式的切換。4系統(tǒng)上電后從上電時初始化顯示: 12-00-00開始計時。5能進行時間的調(diào)整,可暫停時間的變動,暫停時一位數(shù)碼管上顯示字母H三、參考資料1 吳杰.基于ISP 技術(shù)的電子公告牌系統(tǒng)J.科技資訊2008.NO.14:83-87.2殷曉安,
2、吳明亮.基于單片機的LED點陣顯示條屏控制系統(tǒng)設(shè)計J.2008,4月.154-155.3侯玉寶 基于Proteus的51系列單片機設(shè)計與仿真M電子工業(yè)出版社,2008.2702884李川,汪秋蒙.ISP技術(shù)的原理及實現(xiàn)方法J.科技資訊.2007,35期:93-94.5劉文秀.單片機應(yīng)用系統(tǒng)仿真的研究J.現(xiàn)代電子技術(shù).2005, 第286 期2011年 7月 13 日目 錄第1章 緒論11.1 LED電子鐘概述11.2 LED電子鐘技術(shù)狀況11.3 本設(shè)計任務(wù)2第2 章 總體方案論證與設(shè)計32.1 單片機芯片選擇方案32.2 數(shù)碼管顯示選擇方案32.3 數(shù)碼管驅(qū)動選擇方案32.4 總體硬件組成框
3、圖4第3章 系統(tǒng)硬件設(shè)計53.1 電源電路設(shè)計53.2 按鍵電路設(shè)計53.3 時鐘電路設(shè)計53.4 驅(qū)動電路設(shè)計63.5 LED顯示電路設(shè)計73.6 元器件清單7第4章 系統(tǒng)的軟件設(shè)計84.1 主程序設(shè)計84.2 中段服務(wù)程序設(shè)計94.3 顯示子程序設(shè)計9第5章 系統(tǒng)調(diào)試與測試結(jié)果分析115.1使用的儀器儀表115.2系統(tǒng)調(diào)試115.3 測試結(jié)果12結(jié) 論13參考文獻14附錄1 程序15附錄2 仿真效果圖23第1章 緒論圍繞電子鐘系統(tǒng)的設(shè)計與開發(fā)工作進行研究和實踐,詳細(xì)介紹了電子鐘系統(tǒng)的整體結(jié)構(gòu)、硬件設(shè)計、軟件設(shè)計,系統(tǒng)方案以及其的開發(fā)和具體實現(xiàn)。介紹一種基于在系統(tǒng)可編程技術(shù)和C51編譯器配有
4、集成開發(fā)的新型電子鐘的設(shè)計方法,闡述了其工作原理和軟硬件設(shè)計。在硬件上,用KEIL公司的C51大規(guī)模集成芯片對其外圍電路進行集成,用1片8051實現(xiàn)了幾十片分離元件才能實現(xiàn)的功能,幾乎將整個系統(tǒng)下載于同一芯片中,實現(xiàn)了所謂的片上系統(tǒng),從而大大簡化了系統(tǒng)結(jié)構(gòu),增強了系統(tǒng)的可靠性和性價比。該電子鐘特別適用于家庭、辦公大樓、公共場所等。1.1 LED電子鐘概述LED電子鐘的構(gòu)成型式有多種,其中典型的有兩種。一種把所需展示的廣告信息燒寫固化到EPROM芯片內(nèi),能進行固定內(nèi)容的多幅漢字顯示,稱為單顯示型;另一種在機內(nèi)設(shè)置了字庫、程序庫,具有程序編制能力,能進行內(nèi)容可變的多幅漢字顯示,稱可編程序型。目前,
5、國內(nèi)的LED電子鐘大部分是單顯示型,其顯示的內(nèi)容相對較少,顯示花樣較單一。一般在產(chǎn)品出廠時,顯示內(nèi)容就已寫入顯示屏控制系統(tǒng)中的EPROM芯片內(nèi),當(dāng)需要更換顯示內(nèi)容時就非常困難,這樣使該類型的顯示屏使用范圍受到了限制。國內(nèi)的另一種LED電子鐘可編程序型LED電子鐘,雖然增加了顯示屏系統(tǒng)的編程能力,顯示內(nèi)容和顯示花樣都有所增加,但也存在著更換顯示內(nèi)容不便的缺點。隨著社會經(jīng)濟的迅速發(fā)展,如今的廣告牌都存在著顯示內(nèi)容豐富、信息量大、信息更換速度快等特點。因此傳統(tǒng)的LED電子鐘控制系統(tǒng)已經(jīng)越來越不能滿足現(xiàn)代廣告宣傳業(yè)的需要。而利用PC機通信技術(shù)控制LED電子鐘,則具有顯示內(nèi)容豐富,信息更換靈活等優(yōu)點。1
6、.2 LED電子鐘技術(shù)狀況時鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時間的推移,科學(xué)技術(shù)的不斷發(fā)展,人們對時間計量的精度要求越來越高,應(yīng)用越來越廣。怎樣讓時鐘更好的為人民服務(wù),怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設(shè)計出新型時鐘。 現(xiàn)今,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計時,譯碼代替機械式傳動,用LED顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時,分,秒的顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。 時鐘電路在計算機系統(tǒng)
7、中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個單片機應(yīng)用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時時鐘,即定時時間,它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機內(nèi)部的可編程定時/計數(shù)器來實現(xiàn),但誤差很大,主要用在對時間精度要求不高的場合;二是用專門的時鐘芯片實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法,典型的時鐘芯片有:DS1302,DS12887,X1203等都可以滿足高精度的要求。本文主要介紹用單片機內(nèi)部的定時/計數(shù)器來實現(xiàn)電子時鐘的方法以及借助鍵盤直接
8、控制整時的調(diào)整,本設(shè)計由單片機AT89S51芯片,LED數(shù)碼管和鍵盤為核心,輔以必要的電路,構(gòu)成了一個單片機電子時鐘。目前單片機應(yīng)用于各個領(lǐng)域,其應(yīng)用于儀器儀表中顯得更為優(yōu)越。以單片機制成的電子時鐘具有計時準(zhǔn)確,功耗低的優(yōu)點。從而得到了各界的領(lǐng)域的廣泛應(yīng)用。單片機正處在微控制器的全面發(fā)展階段,各公司的產(chǎn)品在盡量兼容的同時,向高速,強運算能力,尋址范圍大以及小型廉價方面發(fā)展。單片機的發(fā)展推動了應(yīng)用系統(tǒng)的發(fā)展,應(yīng)用系統(tǒng)的發(fā)展又反過來對單片機提出了更高要求,從而促進單片機的發(fā)展。單片機正在向著功能更強,速度更快,功耗更低,輻射更小的方向發(fā)展。隨著集成度的不斷提高,把眾多的外圍功能器件集成在片內(nèi)已經(jīng)具
9、備了充分的條件。這也是單片機以后發(fā)展的重要趨勢。除了一般必須具有的ROM、RAM、定時器/計數(shù)器、中斷系統(tǒng)外,隨著單片機檔次的提高,以適應(yīng)檢測、控制功能更高的要求,片內(nèi)集成的器件通常還有電源監(jiān)控與復(fù)位電路、WDT、A/D轉(zhuǎn)換器、DMA控制器、中斷控制器、鎖相器、頻率合成器、字符發(fā)生器、聲音發(fā)生器、CRT控制器、譯碼驅(qū)動器等。由此來看,此次設(shè)計也是發(fā)展比較好的一種基于單片機的LED電子時鐘。1.3 本設(shè)計任務(wù)本設(shè)計主要分為兩部分:硬件電路及軟件程序。而硬件電路又大體可分為單片機小系統(tǒng)電路、電源電路、上電復(fù)位電路、A/D轉(zhuǎn)換電路、LED顯示電路,各部分電路的設(shè)計及原理將會在硬件電路設(shè)計部分詳細(xì)介紹
10、;程序的設(shè)計使用匯編語言編程,利用偉福軟件對其編譯和仿真,詳細(xì)的設(shè)計算法將會在程序設(shè)計部分詳細(xì)介紹。第2 章 總體方案論證與設(shè)計2.1 單片機芯片選擇方案方案一:80C51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器。主要性能有:與MCS-51單片機產(chǎn)品兼容、全靜態(tài)操作:0Hz33Hz、 三級加密程序存儲器、32個可編程I/O口線、三個16位定時器/計數(shù)器、八個中斷源、全雙工UART串行通道、掉電后中斷可喚醒、看門狗定時器、雙數(shù)據(jù)指針、掉電標(biāo)識符、易編程8。方案二:AT8
11、9C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM)。主要性能有:兼容MCS51指令系統(tǒng)、32個雙向I/O口、256x8bit內(nèi)部RAM、3個16位可編程定時/計數(shù)器中斷、時鐘頻率0-24MHz、2個串行中斷、可編程UART串行通道、2個外部中斷源、6個中斷源、2個讀寫中斷口線、3級加密位、低功耗空閑和掉電模式、軟件設(shè)置睡眠和喚醒功能7。從單片機芯片主要性能角度出發(fā)4,本數(shù)字電子鐘單片機芯片選擇設(shè)計采用方案一。2.2 數(shù)碼管顯示選擇方案方案一:靜態(tài)顯示。靜態(tài)顯示,即當(dāng)顯示器顯示某一字符時
12、,相應(yīng)的發(fā)光二極管恒定導(dǎo)通或截止。該方式每一位都需要一個8 位輸出口控制。靜態(tài)顯示時較小電流能獲得較高的亮度,且字符不閃爍。但因當(dāng)所需顯示的位數(shù)較多時,靜態(tài)顯示所需的I/O口數(shù)較大,造成資源的浪費。方案二:動態(tài)顯示。動態(tài)顯示,即各位數(shù)碼管輪流點亮,對于顯示器各位數(shù)碼管,每隔一段延時時間循環(huán)點亮一次。利用人的視覺暫留功能可以看到整個顯示,但須保證掃描速度足夠快,人的視覺暫留功能才可察覺不到字符閃爍。顯示器的亮度與導(dǎo)通電流、點亮?xí)r間及間隔時間的比例有關(guān)。調(diào)整參數(shù)可以實現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了I/O口,降低了能耗。從節(jié)省單片機芯片I/O口和降低能耗角度出發(fā),本數(shù)字電子鐘數(shù)碼管顯示選擇設(shè)計采
13、用方案二。2.3 數(shù)碼管驅(qū)動選擇方案方案一:上拉電阻驅(qū)動方式。數(shù)碼管段碼與接有上拉電阻的單片機芯片I/O口相連,通過編程,單片機芯片即控制段碼電平的高低。該方式經(jīng)費低,但實物制作較復(fù)雜。方案二:74LS245芯片驅(qū)動方式。數(shù)碼管段碼與74LS245芯片B口相連,74LS245芯片A口與單片機芯片I/O口,通過編程,單片機芯片即可控制段碼電平的高低。該方式實物制作簡單,增強驅(qū)動數(shù)碼管段碼能力。從實物制作簡易程度與驅(qū)動數(shù)碼管段碼能力角度出發(fā),本數(shù)字電子鐘數(shù)碼管驅(qū)動選擇設(shè)計采用方案二。2.4 總體硬件組成框圖單片機模塊按鍵模塊按鍵模塊按鍵模塊時鐘模塊LED顯示模塊圖2-1總體硬件組成框圖整個系統(tǒng)用單
14、片機作為中央控制器,由單片機執(zhí)行采集芯片內(nèi)部時鐘信號,時鐘信號通過單片機I/O口傳給單片機,單片機模塊控制驅(qū)動模塊驅(qū)動顯示模塊,通過顯示模塊來實現(xiàn)信號的輸出、LED的顯示及相關(guān)的控制功能。系統(tǒng)設(shè)有按鍵模塊用于對時間進行調(diào)整及擴展多個小鍵盤,系統(tǒng)整體框圖如圖2-1所示。第3章 系統(tǒng)硬件設(shè)計3.1 電源電路設(shè)計本數(shù)字電子鐘設(shè)計所需電源電壓為直流、電壓值大小5V的電壓源 。從硬件實物設(shè)計簡易程度與經(jīng)費方面考慮,用兩節(jié)電壓值大小2.5V干電池與電路電壓源引腳相連接即可達到硬件設(shè)計要求。即本數(shù)字電子鐘設(shè)計用兩節(jié)電壓值大小2.5V干電池做硬件電路電壓源。電路如圖3-1所示。圖3-1電源電路圖3.2 按鍵電
15、路設(shè)計 本數(shù)字電子鐘設(shè)計所需按鍵用于進行顯示時間的調(diào)整與設(shè)置擴展的小鍵盤。單片機芯片4個I/O口可與按鍵直接相連,通過編程,單片機芯片即可控制按鍵接口電平的高低,即按鍵的開與關(guān),以達到用按鍵進行顯示時間的調(diào)整與設(shè)置擴展的小鍵盤的設(shè)計要求5。電路如圖3-2所示。圖3-2按鍵電路圖3.3 時鐘電路設(shè)計單片機芯片可使用內(nèi)部時鐘電路和外部時鐘電路兩種方式產(chǎn)生電路所需的時鐘脈沖,內(nèi)部時鐘電路實現(xiàn)可用石英晶體和微調(diào)電容外接即可達到,外部時鐘電路實現(xiàn)需要一個外部脈沖源引入脈沖信號以保證個單片機之間時鐘信號的同步。從硬件實現(xiàn)難易角度考慮,內(nèi)部時鐘電路的實現(xiàn)比外部時鐘電路的實現(xiàn)更簡易。既本數(shù)字電子鐘設(shè)計所需的時
16、鐘源采用內(nèi)部時鐘電路實現(xiàn)。所用定時方式為工作方式1,石英晶振為12M,即最小定時時間為1us,最大定時時間約為65.5ms,其電路圖如下圖3-3所示。 圖3-3 時鐘電路圖3.4 驅(qū)動電路設(shè)計從實物制作簡易程度與驅(qū)動數(shù)碼管段碼能力角度出發(fā),本數(shù)字電子鐘設(shè)計采用數(shù)碼管段碼與74LS245芯片B口相連,74LS245芯片A口與單片機芯片I/O口,通過編程,單片機芯片即可控制段碼電平的高低的方式實現(xiàn)數(shù)碼管段碼控制,74LS245芯片圖如下圖3-4所示。圖3-4 74LS245芯片圖3.5 LED顯示電路設(shè)計數(shù)字電子鐘設(shè)計的顯示模塊用8個一位數(shù)碼管實現(xiàn),也可用兩個四位一體數(shù)碼管實現(xiàn)。兩種實現(xiàn)方式實現(xiàn)效
17、果一樣1。從實物制作的難易程度出,本數(shù)字電子鐘設(shè)計采用兩個四位一體數(shù)碼管實現(xiàn)。即數(shù)碼管引腳與單片機芯片和74LS245對應(yīng)引腳相連接2。電路如圖3-5所示。圖3-5 LED顯示圖3.6 元器件清單表3-1元器件列表名稱數(shù)量型號芯片1片AT89S52四位一體數(shù)碼管2個共陰極按鍵5個晶振1個12M電容2個30p74LS2451片電阻2個220歐電阻1個1.5k發(fā)光二極管1個LED第4章 系統(tǒng)的軟件設(shè)計軟件是該LED電子鐘控制系統(tǒng)的重要組成部分,在系統(tǒng)的軟件設(shè)計中我們也才用了模塊化設(shè)計,將系統(tǒng)的各部分功能編寫成子模塊的形式,這樣增強了系統(tǒng)軟件的可讀性和可移植性。4.1 主程序設(shè)計主程序流程首先由主程
18、序進入,然后到堆棧區(qū),顯示緩沖單元清零,再設(shè)置定時器工作方式,裝載計數(shù)初值,定時開始,開中斷并設(shè)置循環(huán)次數(shù),最后調(diào)出顯示子程序,等待中斷請求以重復(fù)上述過程。主程序流程圖如圖4-1所示:開始主程序定義堆棧區(qū)顯示緩沖單元清0定時器0工作方式1裝載計數(shù)初值定時開始開中斷設(shè)置循環(huán)次數(shù)調(diào)出顯示子程序等待定時中斷請求圖4-1主程序流程圖4.2 中段服務(wù)程序設(shè)計進入中斷程序后,首先初始化驅(qū)動器件,然后調(diào)整指向字模的指針,進入字模處理程序,給驅(qū)動器件跳變完驅(qū)動,檢查P指針是否跳到結(jié)束位,若跳到結(jié)束位,指針指回字模數(shù)組首位,延時后返回到字模處理程序;若未跳到結(jié)束位,則直接返回到字模處理程序。中斷服務(wù)程序流程圖如
19、圖4-2所示:開始YN初始化驅(qū)動器件字模處理程序調(diào)整指向字模的指針給驅(qū)動器件跳變完驅(qū)動p是否指到結(jié)束位指針指回字模數(shù)組首位延時圖4-2 中斷服務(wù)程序流程圖4.3 顯示子程序設(shè)計進入顯示子程序后,首先檢查切換鍵是否按下,若有,則判斷小時是否大于等于12,若大于等于12,則標(biāo)志位顯示B;若小于12,則標(biāo)志位顯示A。若無切換鍵按下,則標(biāo)志位顯示A,并依次分離顯示秒、分、時。顯示子程序流程圖如圖4-3所示:開始顯示程序切換鍵是否按下?小時大于大于等于12?標(biāo)志位顯示B標(biāo)志位顯示A分離秒值個位、十位時分秒個位、十位顯示秒十位、個位分離分值個位、十位顯示分十位、個位分離小時個位、十位顯示小時十位、個位NY
20、NY圖4-3顯示子程序流程圖第5章 系統(tǒng)調(diào)試與測試結(jié)果分析5.1使用的儀器儀表 數(shù)字萬用表DT9203單片機仿真器WAVE6000燒寫器 GF2100雙蹤穩(wěn)壓穩(wěn)流電源DH1718E-55.2系統(tǒng)調(diào)試根據(jù)系統(tǒng)設(shè)計方案,本系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。由于在系統(tǒng)設(shè)計中采用模塊設(shè)計法,所以方便對各電路模塊功能進行逐級測試10。5.2.1硬件調(diào)試對各個模塊的功能進行調(diào)試,主要調(diào)試各模塊能否實現(xiàn)指定的功能。把相應(yīng)編譯好的目標(biāo)程序代碼加載到單片機芯片AT89S52,可接上5V電壓源即開始進行硬件電路的調(diào)試工作。如果顯示結(jié)果不符合設(shè)計要求,即檢查電路各連接點是否正確連接,再次進行
21、硬件電路的調(diào)試工作,或是檢查代碼程序是否符合硬件電路的設(shè)計,若有錯即進行相應(yīng)的修改,編譯后,再進行硬件電路的調(diào)試工作。如此反復(fù)操作,直到調(diào)試出正確結(jié)果。5.2.2軟件調(diào)試軟件調(diào)試采用單片機仿真器WAVE6000L及微機,將編好的程序進行調(diào)試,主要是檢查語法錯誤。(1) 在計算機上運行程序調(diào)試軟件Keil,進行程序調(diào)試,若顯示0錯誤(S),0警告(S)即證明程序代碼正確。(2)在Proteus軟件畫好的電路原理圖中加載程序代碼到單片機芯片AT89S52中,進行模擬仿真3。若出現(xiàn)錯誤,查看錯誤后進行相應(yīng)修改再進行調(diào)試與模擬仿真,直到調(diào)試出正確結(jié)果6。如圖5-1所示:圖5-1軟件調(diào)試圖5.2.3硬件
22、軟件聯(lián)調(diào) 將調(diào)試好的硬件和軟件進行聯(lián)調(diào),主要調(diào)試系統(tǒng)的實現(xiàn)功能9。5.3 測試結(jié)果此次系統(tǒng)設(shè)計結(jié)果較好,電子鐘能夠準(zhǔn)確顯示時間(顯示格式為:時時,分分,秒秒),可隨時進行時間調(diào)整,時間可采用12 小時制顯示或24 小時制顯示,采用12 小時顯示時可在標(biāo)志位數(shù)碼管上顯示A(表示上午)或B(表示下午),可暫停時間的變動,暫停時一位數(shù)碼管上顯示字母H。如圖5-2所示:圖5-2仿真效果圖結(jié) 論本單片機LED電子鐘系統(tǒng)的功能基本符合顯示格式為:XX:XX:XX,即時:分:秒。時間可采用12 小時制顯示或24 小時制顯示,采用12 小時顯示時必須在另外一個數(shù)碼管上顯示A(表示上午)或B(表示下午)。設(shè)置一
23、個按鍵用于時間顯示方式的切換。系統(tǒng)上電后從上電時初始化顯示: 12-00-00開始計時,能進行時間的調(diào)整,可暫停時間的變動,暫停時一位數(shù)碼管上顯示字母H,可按自己的要求設(shè)置擴展的小鍵盤個數(shù)設(shè)計任務(wù)的要求,經(jīng)過測試數(shù)據(jù)顯示, 系統(tǒng)的可靠性已經(jīng)基本能夠達到實際電子鐘的設(shè)計要求,同時本單片機數(shù)字電子鐘系統(tǒng)具有擴展性。參考文獻1吳杰 基于LED技術(shù)的電子公告牌系統(tǒng)J.科技資訊2008.NO.14:83-87.2殷曉安,吳明亮 基于單片機的LED控制系統(tǒng)設(shè)計J.2008,4月.154-155.3侯玉寶 基于Proteus的51系列單片機設(shè)計與仿真M電子工業(yè)出版社,2008.2702884張友德 單片微型
24、機原理、應(yīng)用與實驗M.上海:復(fù)旦大學(xué)出版社,2007.225256.5蔡希彪,曹洪奎 單片機電子時鐘系統(tǒng)的設(shè)計與仿真 J;中國科技信息; 2007年04期6曹洪奎,馬瑩瑩 基于Proteus單片機系統(tǒng)設(shè)計與仿真 遼寧工學(xué)院學(xué)報2007年04期7謝維成 單片機原理及應(yīng)用與51程序設(shè)計. 北京:清華大學(xué)出版社,2006.88萬光毅 單片機實驗與實踐教程M.北京航空航天大學(xué)出版社.2005.1.9周潤景 基于Proteus的電路與單片機仿真系統(tǒng)設(shè)計與仿真M.北京航空航天大學(xué)出版社. 2005.10劉文秀 單片機應(yīng)用系統(tǒng)仿真的研究J.現(xiàn)代電子技術(shù).2005, 第286 期附錄1 程序/*描述 電子時鐘
25、,LED數(shù)碼管顯示,晶振使用12MHzK1-時調(diào)整K2-分調(diào)整 K3-秒調(diào)整 K4-時間暫停 K5-12小時制和24小時制切換 上電時初始化顯示:12-00-00 */#include #include unsigned char data dis_digit;unsigned char key_s, key_v;unsigned char code dis_code11=0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00;/0,1,2,3 4, 5, 6, 7, 8, 9, off /共陰數(shù)碼管unsigned char data
26、dis_buf8;unsigned char data dis_index;unsigned char hour,min,sec;unsigned char sec100; unsigned char flag,flag1,flag2; /falg用于時間停止和啟動標(biāo)志,falg1為12小時和24小時的切換標(biāo)志,falg2為12小時的上午和下午的切換標(biāo)志sbit K1 = P10;/用于時的調(diào)整sbit K2 = P11;/用于分的調(diào)整sbit K3 = P12;/用于秒的調(diào)整sbit K4 = P13;/用于時間調(diào)整的開關(guān),按下一次暫停時間,再按一次時則開始計時sbit K5 = P14;/
27、用于24小時制和12小時制的切換bit scan_key();void proc_key();void inc_sec();void inc_min();void inc_hour();void inc_hour1();void delayms(unsigned char ms);void main(void) P0 = 0xff; P2 = 0xff; TMOD = 0x11; / 定時器0, 1工作模式1, 16位定時方式 TH1 = 0xd8;/使用12MHz的晶振,定時時間為:10ms TL1 = 0xf0;TH0 = 0xf8; /定時時間為2ms,用于數(shù)碼管的動態(tài)掃描 TL0 =
28、0x30;hour = 12; min = 00; sec = 00;sec100 = 0;flag = 0; flag1 = 0;dis_buf0 = dis_codehour / 10; / 時十位 dis_buf1 = dis_codehour % 10; / 時個位dis_buf2 = dis_codemin / 10; / 分十位 dis_buf3 = dis_codemin % 10; / 分個位dis_buf4 = dis_codesec / 10; / 秒十位 dis_buf5 = dis_codesec % 10; / 秒個位 dis_buf6 = 0x00; / 關(guān)閉該位數(shù)
29、碼管 dis_buf7 = 0x7f; / 顯示 B 表示下午dis_digit = 0xfe; dis_index = 0; TCON = 0x01;/T1:TF1 TR1 T0:TF0 TR0 定時中斷:IE1 IT1 IE0 IT0 /外部中斷0的觸發(fā)方式為下降沿觸發(fā) IE = 0x8a; / 使能timer0,1 中斷,控制IE寄存器的格式:EA - - ES ET1 EX1 ET0 EX0/1 0 0 0 1 0 10 TR0 = 1; /開定時器0 TR1 = 1; /開定時器1 key_v = 0x1f;/定義為K1,K2,K3,K4,K5相應(yīng)的按鍵,當(dāng)沒有按下時則為,K1,K2
30、,K3,K4,K5,都為高電平,0x1f while(1) if(scan_key()/先掃描一次是否有按鍵按下 delayms(10); /延時 if(scan_key() /再次掃描一次是否有按鍵 按下 key_v = key_s;/將key_s的值傳給key_v proc_key(); bit scan_key() key_s = 0x00; /設(shè)置key_s先為0key_s |=K5; key_s = 1; key_s |= K4; key_s = 1; key_s |= K3; key_s P1.1,若K2按下則為0,當(dāng)K2按下時key_s與K2或的結(jié)果會使得key_s為0x00,未
31、按下時K2則為1,key_s與K2或的結(jié)果會使得key_s為0x01 key_s P1.0,若K1按下則為0,當(dāng)K1按下時key_s與K1或的結(jié)果會使得key_s為0x00或是0x02,沒有按下時則得到的結(jié)果為0x01或是0x03 return(key_s key_v); /進行邏輯異或運算,相同為0,不同為1. 已經(jīng)定義了變量:key_v = 0x1f; 如果兩個按鍵都沒有按下則是得到0x03,異或的結(jié)果是為0void proc_key() if(K4=0) /K4是否按下 flag+; /關(guān)閉定時器 TR1=0; /關(guān)閉定時器1 dis_buf6 = 0x76; / 顯示 H,用于表示設(shè)定
32、時間的標(biāo)志 if(K5=0) flag1+; /flag1的初始值是0,falg1為12小時和24小時的切換標(biāo)志 if(flag1=1) /24小時制 if(dis_buf7=0x7f) /判斷是不是下午 hour=hour+12;dis_buf7=0x00; dis_buf7 = 0x00; / 關(guān)閉顯示 if(hour 23) hour = 0; if(hour 9) dis_buf0 = dis_codehour / 10; / 時十位 else dis_buf0 = 0x00; / 當(dāng)小時的十位為0時不顯示 dis_buf1 = dis_codehour % 10; / 時個位if(f
33、lag1=2) /12小時制flag1=0;if(hour12|hour=0) /判斷是不是下午,并用于處理24小時制的大于13和等于0的處理 if(hour12) hour=hour-12;if(hour=0)hour=12;dis_buf7=0x7f; /顯示下午 B elsedis_buf7 = 0x77; / 顯示 A 表示上午if(hour 9) dis_buf0 = dis_codehour / 10; / 時十位 else dis_buf0 = 0x00; / 當(dāng)小時的十位為0時不顯示 dis_buf1 = dis_codehour % 10; / 時個位 if(key_v &
34、0x01) = 0) / K1,當(dāng)只有K1按下時,則key_s為0x02,沒有按下時key_s則為0x03 if(flag1=0) inc_hour(); if(flag1=1) inc_hour1(); else if(key_v & 0x02) = 0) / K2, 當(dāng)只有K2按下時,則key_s為0x01,沒有按下時key_s則為0x03 min+; if(min 59) min = 0; dis_buf2 = dis_codemin / 10; / 分十位 dis_buf3 = dis_codemin % 10; / 分個位 else if(key_v & 0x04) = 0) / K
35、3是否按下 sec+; if(sec 59) sec = 0; dis_buf4 = dis_codesec / 10; / 秒十位 dis_buf5 = dis_codesec % 10; / 秒個位 if(flag=2) flag=0;TR1=1;dis_buf6 = 0x00;if(flag1=0)if(flag2) dis_buf7 = 0x77; / 顯示 A 表示上午 else dis_buf7 = 0x7f; / 顯示 B 表示下午 void timer0() interrupt 1/ 定時器0中斷服務(wù)程序, 用于數(shù)碼管的動態(tài)掃描/ dis_index - 顯示索引, 用于標(biāo)識當(dāng)前顯示的數(shù)碼管和緩沖區(qū)的偏移量/ dis_digit - 位選通值, 傳送到P0口用于選通當(dāng)前數(shù)碼管的數(shù)值, 如等于0xfe時,/ 選通P2.0口數(shù)碼管/ dis_buf - 顯于緩沖區(qū)基地址 TH0 = 0xf8; /定時時間為2msTL0 = 0x30;P2 = 0xff;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車抵押貸款居間擔(dān)保合同
- 網(wǎng)絡(luò)電商平臺加盟合同范本
- 機械部件外協(xié)加工協(xié)議
- 房產(chǎn)質(zhì)押貸款協(xié)議
- 2024年電子商務(wù)安全性論文
- 代理補充協(xié)議書格式
- 房屋裝潢施工協(xié)議案例
- 勞動合同終止后的社保轉(zhuǎn)移
- 標(biāo)準(zhǔn)建設(shè)工程借款合同范本
- 私人物品交易合同模板
- 方寸之間 課件 2024-2025學(xué)年蘇少版(2024)初中美術(shù)七年級上冊
- Unit4《This is my friend》-2024-2025學(xué)年三年級上冊英語單元測試卷(譯林版三起 2024新教材)
- 2024-2025學(xué)年秋季第一學(xué)期1530安全教育記錄(第一、二、三周安全教育記錄表)
- 第三單元達標(biāo)練習(xí)(單元練習(xí))2024-2025學(xué)年統(tǒng)編版語文一年級上冊
- 小學(xué)語文“跨學(xué)科學(xué)習(xí)任務(wù)群”內(nèi)涵及解讀
- 血標(biāo)本采集法并發(fā)癥
- 漢語詞匯與文化智慧樹知到期末考試答案章節(jié)答案2024年浙江師范大學(xué)
- 三年級語文上冊第五單元【教材解讀】
- 工程項目技術(shù)管理人員批評與自我批評
- 進境肉類指定口岸建設(shè)項目可行性研究報告模板
- Conners兒童行為量表(父母問卷)
評論
0/150
提交評論