基于51單片機(jī)的電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于51單片機(jī)的電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于51單片機(jī)的電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于51單片機(jī)的電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于51單片機(jī)的電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、. . . . 大學(xué)電子信息學(xué)院電子系統(tǒng)綜合設(shè)計(jì)課程論文基于51單片機(jī)的電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)專 業(yè):年 級(jí):作 者:指導(dǎo)教師:2012年 6月 26日40 / 42目 錄1 課題背景與立項(xiàng)緣由12 實(shí)驗(yàn)方案設(shè)計(jì)22.1設(shè)計(jì)要求22.2數(shù)字鐘的構(gòu)成22.3系統(tǒng)總體框圖33 軟件系統(tǒng)方案設(shè)計(jì)與選擇43.1主程序流程圖43.2定時(shí)器子程序流程圖63.3方案選擇74 硬件系統(tǒng)方案設(shè)計(jì)與選擇74.1單片機(jī)的結(jié)構(gòu)74.2開發(fā)板的結(jié)構(gòu)和使用方法.84.3方案選擇.105 系統(tǒng)測(cè)試115.1測(cè)試環(huán)境115.2測(cè)試過(guò)程115.3測(cè)試結(jié)果.126 實(shí)驗(yàn)心得12參考文獻(xiàn)13附錄1 系統(tǒng)電路圖13附錄2 系統(tǒng)軟件代碼

2、14附錄3 系統(tǒng)器件清單381 課題背景與立項(xiàng)緣由所謂單片機(jī),就是把中央處理器CPU(Central Processing Unit)、存儲(chǔ)器(Memory)、定時(shí)器、I/0(Input/Output)接口電路等一些計(jì)算機(jī)的主要功能部件集成在一塊集成電路芯片上的微型計(jì)算機(jī)。雖然單片機(jī)只是一個(gè)芯片,但從組成和功能上看,它已具有了微型計(jì)算機(jī)系統(tǒng)的含義。中文“單片機(jī)”的稱呼由英文名稱“Single Chip Microcomputer”直接翻譯而來(lái)。單片機(jī)把微型計(jì)算機(jī)的各主要部分集成在一塊芯片上,大大縮短了系統(tǒng)信號(hào)傳送距離,從而提高了系統(tǒng)的可靠性與運(yùn)行速度。因而在工業(yè)測(cè)控領(lǐng)域中,單片機(jī)系統(tǒng)是最理想的

3、控制系統(tǒng)。所以,單片機(jī)是典型的嵌人式系統(tǒng),是嵌入式系統(tǒng)低端應(yīng)用的最佳選擇。單片機(jī)的發(fā)展經(jīng)歷了以下4個(gè)階段:1、芯片化探索階段20世紀(jì)70午代,美國(guó)的Fairchild(仙童)公司首先推出了第一款單片機(jī)F-8,隨后Intel公司推出了影響面大、應(yīng)用更廣的MCS48單片機(jī)系列。MCS48單片機(jī)系列的推出標(biāo)志著在工業(yè)控制領(lǐng)域,進(jìn)入到智能化嵌入式應(yīng)用的芯片形態(tài)計(jì)算機(jī)的探索階段。參與這一探索階段的還有Motorola、Zilog和TI等大公司,它們都取得了滿意的探索效果,確立了在SCMC的嵌入式應(yīng)用中的地位。2、結(jié)構(gòu)體系的完善階段在MCS-48探索成功的基礎(chǔ)上很快推出了完善的、典型的單片機(jī)系列MCS-5

4、l。MCS-51系列單片機(jī)的推出,標(biāo)著Single Chip Microcomputer體系結(jié)構(gòu)的完善。3、從SCMC向MCU化過(guò)渡階段Intel公司推出的MCS96單片機(jī),將一些用于測(cè)控系統(tǒng)的模數(shù)轉(zhuǎn)換器(ADC)、程序運(yùn)行監(jiān)視器(WDT)、脈寬調(diào)制器(PWM)、高速I/O口納入片中,體現(xiàn)了單片機(jī)的微控制器特征。MCS-51單片機(jī)系列向各大電氣商的廣泛擴(kuò)散,許多電氣商競(jìng)相使用80C51為核,將許多測(cè)控系統(tǒng)中使用的電路技術(shù)、接口技術(shù)、可靠性技術(shù)應(yīng)用到單片機(jī)中;隨著單片機(jī)外圍功能電路的增強(qiáng),強(qiáng)化了智能控制器特征。微控制器(Microcontrollers)成為單片機(jī)較為準(zhǔn)確表達(dá)的名詞。4、MCU的

5、百花齊放階段單片機(jī)發(fā)展到這一階段,表明單片機(jī)已成為工業(yè)控制領(lǐng)域中普遍采用的智能化控制工具-小到玩具、家電行業(yè),大到車載、艦船電子系統(tǒng),遍與計(jì)量測(cè)試、工業(yè)過(guò)程控制、機(jī)械電子、金融電子、商用電子、辦公自動(dòng)化、工業(yè)機(jī)器人、軍事和航空航天等領(lǐng)域。為滿足不同的要求,出現(xiàn)了高速、大尋址圍、強(qiáng)運(yùn)算能力和多機(jī)通信能力的8位、16位、32位通用型單片機(jī),小型廉價(jià)型、外圍系統(tǒng)集成的專用型單片機(jī),以與形形色色各具特色的現(xiàn)代單片機(jī)??梢哉f(shuō),單片機(jī)的發(fā)展進(jìn)人了百花齊放的時(shí)代,為用戶的選擇提供了空間。在日常生活和工作中,我們常常使用到定時(shí)控制。早起常用的一些時(shí)間控制單元都是使用模擬電路設(shè)計(jì)和制作的,其定時(shí)準(zhǔn)確性和重復(fù)精度

6、都不是很理想,現(xiàn)在基本上都是基于數(shù)字技術(shù)的新一代產(chǎn)品,隨著單片機(jī)性能價(jià)格比的不斷提高,新一代產(chǎn)品的應(yīng)用也越來(lái)越廣泛,大可構(gòu)成復(fù)雜的工業(yè)過(guò)程的控制系統(tǒng),完成復(fù)雜的控制功能。小則用于家電控制,大則用于工業(yè)和科學(xué)研究中的精確時(shí)間定位,配以適當(dāng)?shù)慕涌谛酒?,可以?gòu)造各式各樣的微電子產(chǎn)品。我們專業(yè)在本學(xué)期的數(shù)字邏輯電路實(shí)驗(yàn)中已經(jīng)能使用脈沖信號(hào)發(fā)生器、相關(guān)芯片、數(shù)碼管和導(dǎo)線在實(shí)驗(yàn)箱上實(shí)現(xiàn)基于基本門電路的數(shù)字時(shí)鐘;在電子系統(tǒng)綜合設(shè)計(jì)(2)這門課上,我們學(xué)習(xí)了單片機(jī)的相關(guān)知識(shí),了解了其低功耗、可靠性和穩(wěn)定性強(qiáng)、可以在部的EPROM上寫入和擦除程序的相對(duì)先進(jìn)的特點(diǎn)與功能。因此,我們希望在有單片機(jī)芯片的開發(fā)板上通過(guò)

7、編程實(shí)現(xiàn)數(shù)字鐘,并期望它能有更多的功能和更好的穩(wěn)定性。2 實(shí)驗(yàn)方案設(shè)計(jì)2.1 設(shè)計(jì)要求u 實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)功能u 實(shí)現(xiàn)年、月、日的日歷功能u 體現(xiàn)平閏年的區(qū)別,各時(shí)間單位之間進(jìn)制準(zhǔn)確u 實(shí)現(xiàn)鬧鐘報(bào)警功能2.2 數(shù)字鐘的構(gòu)成數(shù)字鐘實(shí)際上是一個(gè)對(duì)標(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í)間信號(hào)必須做到準(zhǔn)確穩(wěn)定.通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘。晶體振蕩器電路 晶體振蕩器電路給數(shù)字鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的12MHz的方波信號(hào),可保證數(shù)字鐘的走時(shí)準(zhǔn)確與穩(wěn)定.不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體

8、振蕩器電路。時(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ù)器。譯碼驅(qū)動(dòng)電路 譯碼驅(qū)動(dòng)電路將計(jì)數(shù)器輸出的8421BCD碼轉(zhuǎn)換為數(shù)碼管需要的邏輯狀態(tài),并且為保證數(shù)碼管正常工作提供足夠的工作電流。數(shù)碼管 數(shù)碼管通常有發(fā)光二極管(LED)數(shù)碼管和液晶(LCD)數(shù)碼管,本設(shè)計(jì)提供的為L(zhǎng)ED數(shù)碼管。2.3 系統(tǒng)總體框圖開始系統(tǒng)初始化顯示計(jì)時(shí)判斷按鍵是否有按下年、月、日調(diào)整時(shí)分秒調(diào)整定時(shí)調(diào)整星期3 軟件系統(tǒng)方案設(shè)計(jì)與選擇3.1 主程序流程圖3.1主程序流程圖(續(xù))3.2 定時(shí)器子程序流程圖3.3方案選擇與相關(guān)技術(shù)方案

9、一:基本門電路搭肩,用基本門電路來(lái)實(shí)現(xiàn)數(shù)字鐘,電路結(jié)構(gòu)復(fù)雜,鼓掌系數(shù)大,不易調(diào)試。方案二:?jiǎn)纹瑱C(jī)編程,用單片機(jī)設(shè)計(jì)電路,由于使用軟硬件結(jié)合的方式,所以電路結(jié)構(gòu)簡(jiǎn)單,調(diào)試也相對(duì)方便。與第一種方案比較優(yōu)點(diǎn)的是非常明顯的。我們選擇了第二種方案。4 硬件系統(tǒng)方案設(shè)計(jì)與選擇4.1 單片機(jī)的結(jié)構(gòu)4.1.1 結(jié)構(gòu)框圖4.2 開發(fā)板結(jié)構(gòu)與使用方法4.2.1開發(fā)板的結(jié)構(gòu)4.2.2 通過(guò)SST51實(shí)現(xiàn)開發(fā)板只讀模式和程序燒寫的切換打開SSTEasyIAP11F.exe程序,選擇串口選擇芯片型號(hào)和部程序存儲(chǔ)器選擇PC串口,MCU晶振和波特率先選擇確定在復(fù)位MCU通訊成功后窗口右上角顯示芯片信息和版本信息點(diǎn)擊Down

10、load SoftICE選項(xiàng),將MCU中的BOOT LOADER監(jiān)控程序替換為Soft ICE監(jiān)控程序選擇確認(rèn)更換打開Keil C51程序,新建一個(gè)工程保存在自己新建的文件夾中點(diǎn)擊保存出現(xiàn)CPU選擇對(duì)話框,選擇SST系列的89X516RD2出現(xiàn)是否添加標(biāo)準(zhǔn)51初始代碼對(duì)話框,選“否”工程建立之后新建源程序文件,點(diǎn)擊”File”菜單下“New”選項(xiàng)保存在工程文件夾,C程序文件后綴為“.C”,匯編程序文件后綴為“.ASM”在文本編輯區(qū)編寫源程序并保存;在Source Group上右擊選擇“Add Files To Group”選項(xiàng)添加源文件至工程選擇編寫好的源程序文件,點(diǎn)擊Add添加所選文件點(diǎn)擊編

11、譯按鈕,編譯工程進(jìn)入目標(biāo)板調(diào)試選項(xiàng)設(shè)置,點(diǎn)擊“Project”菜單下“Options for Target”選項(xiàng)選擇為硬件仿真功能點(diǎn)擊Setting進(jìn)入通訊參數(shù)設(shè)定菜單,去掉所有Cache選項(xiàng)。至此設(shè)置完畢,進(jìn)入仿真調(diào)試階段點(diǎn)擊DEBUG下的“Start/Stop Debug Session”選項(xiàng)進(jìn)入DEBUG界面進(jìn)入后可以看到信息欄中由顯示連接成功信息。在此仿真界面可以進(jìn)行單步、全速、斷點(diǎn)等調(diào)試方式由Soft ICE監(jiān)控程序轉(zhuǎn)換回SST Boot-Strap Loader監(jiān)控程序打開編輯器SUPERPRO程序進(jìn)入SUPERPRO程序界面,單擊“選擇器件選項(xiàng)”進(jìn)入器件選擇對(duì)話框,在器件類型處選

12、擇“MCU/MPU”在查找處輸入要器件名稱,找到之后選擇“確定”單擊“裝入文件”選項(xiàng)進(jìn)入下載文件選擇對(duì)話框,選擇要下載的Soft ICE監(jiān)控程序,文件格式一般為“.hex”或“.bin”格式因?yàn)镾ST單片機(jī)的監(jiān)控程序存儲(chǔ)在Block1中,Block1的地址為10000h,故數(shù)據(jù)緩沖區(qū)起始地址改為“10000”,下載一般執(zhí)行程序則直接默認(rèn)具體步驟為:Erase=Program=Verify;打開SST BOOT-STRAP LOADER軟件工具,并按之前的步驟與單片機(jī)通訊連接成功。在界面的右下方IAP Function菜單中有下載選項(xiàng),選擇“Download”選項(xiàng)下載程序進(jìn)入了下載文件選擇界面在

13、文件查找對(duì)話框中找到要下載的用戶程序,一般為.Hex或.bin格式文件選擇好用戶程序后,單擊步驟二中的OK選項(xiàng)開始下載,界面最下面的狀態(tài)欄顯示下載進(jìn)度,當(dāng)顯示為Done時(shí)表示程序下載已經(jīng)完成,單片機(jī)上電執(zhí)行用戶程序了4.3 方案選擇與相關(guān)技術(shù)4.3.1顯示模塊顯示模塊是本次單片機(jī)課程設(shè)計(jì)最核心的部分。方案一:采用LCD1602。LCD1602為工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。其采用標(biāo)準(zhǔn)的16腳接口,該液晶模塊部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,所以可分容易的實(shí)現(xiàn)數(shù)字鐘數(shù)碼顯示。方案二:采用LED共陰極數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)將公共極COM

14、接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮?;谝陨戏治?,我們考慮到現(xiàn)實(shí)經(jīng)濟(jì)因素,所以選擇了方案二。共陰極數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類:方案一:靜態(tài)顯示驅(qū)動(dòng)。就是每一個(gè)數(shù)碼管顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,直到要顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼,因此,使用這種辦法單片機(jī)中CPU的占用較小。但對(duì)于靜態(tài)顯示方式,所需的數(shù)據(jù)鎖存裝置很多,引線

15、多而復(fù)雜,且可靠性也較低。方案二:動(dòng)態(tài)顯示驅(qū)動(dòng)。通過(guò)單片機(jī)對(duì)數(shù)碼管位選通COM端電路的控制,只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。動(dòng)態(tài)顯示可以大幅度地降低硬件成本和電源的功耗,因?yàn)槟骋粫r(shí)刻只有一個(gè)數(shù)碼管工作,也就是所謂的分時(shí)顯示,故顯示所需要的硬件電路可分時(shí)復(fù)用。動(dòng)態(tài)顯示方式,可以避免靜態(tài)顯示的問(wèn)題。但設(shè)計(jì)上如果處理不當(dāng),易造成亮度低,閃爍問(wèn)題。因此合理的設(shè)計(jì)既應(yīng)保證驅(qū)動(dòng)電路易實(shí)現(xiàn),又要保證顯示后的數(shù)據(jù)穩(wěn)定,無(wú)閃爍。動(dòng)態(tài)顯示采用多路復(fù)用技術(shù)的動(dòng)態(tài)掃描顯示方式, 復(fù)用的程

16、度不是無(wú)限增加的, 因?yàn)槔脛?dòng)態(tài)掃描顯示使我們看到一幅穩(wěn)定畫面的實(shí)質(zhì)是利用了人眼的暫留效應(yīng)和發(fā)光二極管發(fā)光時(shí)間的長(zhǎng)短, 發(fā)光的亮度等因素. 我們通過(guò)實(shí)驗(yàn)發(fā)現(xiàn), 當(dāng)掃描刷新頻率(發(fā)光二極管的停閃頻率) 為50Hz, 發(fā)光二極管導(dǎo)通時(shí)間1m s 時(shí), 顯示亮度較好, 無(wú)閃爍感.。 鑒于上述的方案分析, 我們采用方案二 4.3.2鬧鈴模塊方案一:采用語(yǔ)音芯片ISD1110鬧鈴。ISD1110 具有多種采樣率對(duì)應(yīng),多種錄放時(shí)間,可以利用振蕩電阻自已決定采樣率。操作簡(jiǎn)單,靈活。音質(zhì)好,適應(yīng)電壓圍廣??上葘?duì)錄放音設(shè)備錄入一段音樂(lè)或其他報(bào)時(shí)方式,當(dāng)?shù)皆O(shè)定時(shí)間時(shí),單片機(jī)控制錄放音設(shè)備放音。方案二:采用蜂鳴器鬧

17、鈴,當(dāng)?shù)皆O(shè)定時(shí)間時(shí),單片機(jī)向蜂鳴器送出低電平,蜂鳴器響鈴。采用蜂鳴器鬧鈴結(jié)構(gòu)簡(jiǎn)單,只需要單路信號(hào)控制,發(fā)出的鬧鈴聲音可以根據(jù)響和不響的不同的軟件延時(shí)時(shí)間來(lái)控制,當(dāng)然也能發(fā)出音樂(lè)聲音?;趦煞N方案分析,雖然語(yǔ)音芯片ISD1110具備更多優(yōu)點(diǎn),但鑒于經(jīng)濟(jì)因素,我們本次設(shè)計(jì)還是決定采用方案二。 4.3.3 LED燈顯示模塊采用LED燈可以方便的用不同的流水方式或單個(gè)LED燈來(lái)判斷系統(tǒng)的工作狀態(tài),實(shí)現(xiàn)不同的顯示功能,是一種經(jīng)濟(jì)又實(shí)用的方式。5 系統(tǒng)測(cè)試5.1 測(cè)試環(huán)境硬件平臺(tái):計(jì)算機(jī)一臺(tái)、通訊電纜一根、數(shù)據(jù)線一根、單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)V1.1軟件平臺(tái):WINDOWS XP操作系統(tǒng)、SoftICE監(jiān)控程序

18、、Keil軟件5.2 測(cè)試過(guò)程硬件測(cè)試: 用SoftICE查看和改變單片機(jī)工作狀態(tài)軟件測(cè)試:將數(shù)字鐘程序燒入單片機(jī),并測(cè)試其功能是否完善5.3 測(cè)試結(jié)果時(shí)鐘精度分析:為進(jìn)一步使本次的系統(tǒng)做得更完美,我使用了標(biāo)準(zhǔn)的秒表對(duì)自己設(shè)計(jì)的時(shí)間進(jìn)行了精度測(cè)量。本次設(shè)計(jì)系統(tǒng)使用的晶振為12MHZ.數(shù)碼管顯示00:5:00時(shí),用秒表測(cè)得相應(yīng)的數(shù)據(jù)如表3所示:序號(hào)12345T(min)5.00.57815.00.47875.00.50405.00.30964.59.2587序號(hào)678910T(min)5.01.43355.00.20034.59.45565.01.20265.00.2597序號(hào)111213141

19、5T(min)4.58.97505.00.11815.00.96045.02.50604.59.8985序號(hào)1617181920T(min)10.00.108110.01.054510.00.956010.00.78545.00.4355通過(guò)計(jì)算可得數(shù)碼管顯示:00:5:00時(shí)秒表測(cè)得的數(shù)值平均值為:00:5:2343 6 實(shí)驗(yàn)心得本次數(shù)字鐘實(shí)驗(yàn)耗時(shí)很久,最后做出的來(lái)的功能也是經(jīng)過(guò)反復(fù)多次調(diào)試才全部達(dá)標(biāo),是一次很有意義的學(xué)習(xí)和動(dòng)手經(jīng)歷。從完全不懂單片機(jī)到在單片機(jī)上編出數(shù)字鐘的程序,我們的感受主要有一下幾點(diǎn):u 看再多的課本可能效果也不如實(shí)際編程的學(xué)習(xí)效率高。事實(shí)上我們編跑馬燈的程序的時(shí)候缺什么

20、就看什么,非常有針對(duì)性,在短時(shí)間掌握了匯編語(yǔ)言編程的基礎(chǔ)。從本課程的角度來(lái)說(shuō),實(shí)踐對(duì)理論的反饋?zhàn)饔皿w現(xiàn)的更加明顯。u 調(diào)試程序比編程本身枯燥的多,但是在某種意義上更加重要。編程是靠靈感的,腦袋里有了算法可以很快寫出來(lái),但是實(shí)際結(jié)果能不能達(dá)到還要看調(diào)試,要考慮算法邏輯、語(yǔ)法、存地址等諸多方面。這一點(diǎn)在對(duì)硬件編程上體現(xiàn)的尤為明顯。u 本實(shí)驗(yàn)最后完成了數(shù)字鐘的諸多功能,并沒(méi)有向其他領(lǐng)域拓展的功能,是比較遺憾的地方。希望能在電子系統(tǒng)綜合設(shè)計(jì)(2)中得到彌補(bǔ)!參考文獻(xiàn)1 樓然苗.單片機(jī)課程設(shè)計(jì)指導(dǎo).航空航天大學(xué),2007.7.2 家健.單片機(jī)原理與應(yīng)用技術(shù).高等教育,2004.11.3市精敏數(shù)字機(jī)器 單

21、片機(jī)入門背景知識(shí),2012.5.4 毅坤 善久 裘雪紅. 單片微型計(jì)算機(jī)原理與應(yīng)用. 電子科技大學(xué)出版,1998.91版.5 學(xué)海.標(biāo)準(zhǔn)80C51單片機(jī)基礎(chǔ)教程:原理篇.航空航天大學(xué),2006.6 王建校.51系列單片機(jī)與C51程序設(shè)計(jì).科學(xué),2002.7 龍三.C語(yǔ)言控制與應(yīng)用.清華大學(xué),1999.8.8 建領(lǐng).51系列單片機(jī)開發(fā)寶典.電子工業(yè),2007.附錄一 系統(tǒng)電路圖附錄二 軟件完整代碼ORG 0000HLJMP MAINORG 0003H ;時(shí)鐘中斷入口LJMP JIA1ORG 000BH ;日期中斷入口LJMP CLOCKORG 0013HLJMP JIAN1ORG 001BHLJ

22、MP NAOZHOORG 0030HDATELED1 EQU 55H ;日期月地址DATELED2 EQU 56H ;日期日地址DATELED3 EQU 57H ;日期年高位地址DATELED4 EQU 67H ;日期年低位地址SHUNAO EQU 58HNAOH EQU 59HNAOM EQU 40HDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHORG 0100HMAIN: MOV R3,#0MOV R0,#12MOV R1,#0MOV NAOH,#12MOV NAOM,#0MOV SHUNAO,#40MOV P1,#0FFHMOV R5,#0FFHMO

23、V 66H,#0FFHMOV SP,#30HMOV R2,#0MOV R7,#7FHMOV DATELED1,#01MOV DATELED2,#01HMOV DATELED3,#00HMOV DATELED4,#20MOV TMOD,#21HMOV TH0,#3CHMOV TL0,#0B0HMOV TH1,#00HMOV TH0,#00HSETB TR0CLR TR1MOV IE,#087HSETB IT1 ;外部中斷模式SETB IT0CLR PSCLR PT1CLR PT0SETB PX1SETB PX0LED: MOV A,R0MOV R7,#7FHLCALL LED1LCALL TIM

24、EMOV A,R0CJNE A,NAOH,NONAOMOV A,R1CJNE A,NAOM,NONAO TR1,NONAOLJMP NAOKAINONAO: INC NAOMMOV A,NAOMMOV 38H,R1CJNE A,38H,NONAO1CLR TR1NONAO1: DEC NAOMMOV A,R1MOV R7,#0EFHLCALL LED1LCALL TIMEMOV A,R2MOV R7,#0FDHLCALL TIMELCALL LED1LCALL TIMEJNB P3.4,SETMJNB P3.5,DATEHLJMP LEDNAOKAI: SETB ET1SETB TR1LJMP

25、 NONAODATEH: LJMP DATESETM: CLR ET1LCALL TIME3 P3.4,LEDSETM3: JNB P3.4,SETM3LCALL TIME3JNB P3.4,SETM3MOV P1,#11111110BSETM1: MOV A,R1MOV R7,#0EFHLCALL LED1LCALL TIMEMOV A,R0MOV R7,#7FHLCALL LED1LCALL TIME P3.4,SETM1C1LCALL TIME3JNB P3.4,SETHSETM1C1: DJNZ R5,SETM1MOV R5,#0FFHSETM2: MOV A,#00HMOV DPTR

26、,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#0EFHMOVX DPTR,ALCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#0F7HMOVX DPTR,ALCALL TIMEMOV A,R0MOV R7,#7FHLCALL LED1LCALL TIME P3.4,SETM1C2LCALL TIME3JNB P3.4,SETHSETM1C2: DJNZ R5,SETM2MOV R5,#0FFHLJMP SETM1SETH: JNB P3.4,SETHLCALL TIM

27、E3JNB P3.4,SETHMOV P1,#11111101BSETH1: MOV A,R0MOV R7,#07FHLCALL LED1LCALL TIMEMOV A,R1MOV R7,#0EFHLCALL LED1LCALL TIME P3.4,SETH2LCALL TIME3JNB P3.4,SETDSETH2: DJNZ R5,SETH1MOV R5,#0FFHSETH3: MOV A,R1MOV R7,#0EFHLCALL LED1LCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#07FHMOV

28、X DPTR,ALCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#0BFHMOVX DPTR,ALCALL TIME P3.4,SETH4LCALL TIME3JNB P3.4,SETDSETH4: DJNZ R5,SETH3MOV R5,#0FFHLJMP SETH1SETD: JNB P3.4,SETDLCALL TIME3JNB P3.4,SETDMOV P1,#11111011BSETD1: MOV A,DATELED4MOV R7,#7FHLCALL LED1LCALL TIMEMOV A,DA

29、TELED3MOV R7,#0DFHLCALL LED1LCALL TIMEMOV A,DATELED1MOV R7,#0F7HLCALL LED1LCALL TIMEMOV A,DATELED2MOV R7,#0FDHLCALL LED1LCALL TIME P3.4,AGAIN2LCALL TIME3JNB P3.4,SETDMAGAIN2: DJNZ R5,SETD1MOV R5,#0FFHSETD3: MOV A,DATELED4MOV R7,#7FHLCALL LED1LCALL TIMEMOV A,DATELED3MOV R7,#0DFHLCALL LED1LCALL TIMEMO

30、V A,DATELED1MOV R7,#0F7HLCALL LED1LCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#0FDHMOVX DPTR,ALCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#0FEHMOVX DPTR,ALCALL TIME P3.4,AGAIN3LCALL TIME3JNB P3.4,SETDMAGAIN3: DJNZ R5,SETD3MOV R5,#0FFHLJMP SETD1SETDM:

31、JNB P3.4,SETDMLCALL TIME3JNB P3.4,SETDMMOV P1,#11110111BSETDM1:MOV A,DATELED4MOV R7,#7FHLCALL LED1LCALL TIMEMOV A,DATELED3MOV R7,#0DFHLCALL LED1LCALL TIMEMOV A,DATELED1MOV R7,#0F7HLCALL LED1LCALL TIMEMOV A,DATELED2MOV R7,#0FDHLCALL LED1LCALL TIME P3.4,AGAIN1LCALL TIME3JNB P3.4,SETDYDAGAIN1: DJNZ R5,

32、SETDM1MOV R5,#0FFHSETDM3: MOV A,DATELED4MOV R7,#7FHLCALL LED1LCALL TIMEMOV A,DATELED3MOV R7,#0DFHLCALL LED1LCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#11110111BMOVX DPTR,ALCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#11111011BMOVX DPTR,ALCALL TIMEMOV

33、 A,DATELED2MOV R7,#0FDHLCALL LED1LCALL TIME P3.4,AGAINLCALL TIME3JNB P3.4,SETDYDAGAIN: DJNZ R5,SETDM3MOV R5,#0FFHLJMP SETDM1SETDYD: JNB P3.4,SETDYDLCALL TIME3JNB P3.4,SETDYDMOV P1,#11101111BSETDYD1: MOV A,DATELED4MOV R7,#7FHLCALL LED1LCALL TIMEMOV A,DATELED3MOV R7,#0DFHLCALL LED1LCALL TIMEMOV A,DATE

34、LED1MOV R7,#0F7HLCALL LED1LCALL TIMEMOV A,DATELED2MOV R7,#0FDHLCALL LED1LCALL TIME P3.4,AGAIND4LCALL TIME3JNB P3.4,SETDYGAGAIND4: DJNZ R5,SETDYD1MOV R5,#0FFHSETDYD3: MOV A,DATELED4MOV R7,#07FHLCALL LED1LCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#11011111BMOVX DPTR,ALCALL TI

35、MEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#11101111BMOVX DPTR,ALCALL TIMEMOV A,DATELED1MOV R7,#0F7HLCALL LED1LCALL TIMEMOV A,DATELED2MOV R7,#0FDHLCALL LED1LCALL TIME P3.4,AGAIND9LCALL TIME3JNB P3.4,SETDYGAGAIND9: DJNZ R5,SETDYD3MOV R5,#0FFHLJMP SETDYD1SETDYG: JNB P3.4,SETDYGLCALL

36、TIME3JNB P3.4,SETDYGMOV P1,#11011111BSETDYG1: MOV A,DATELED4MOV R7,#7FHLCALL LED1LCALL TIMEMOV A,DATELED3MOV R7,#0DFHLCALL LED1LCALL TIMEMOV A,DATELED1MOV R7,#0F7HLCALL LED1LCALL TIMEMOV A,DATELED2MOV R7,#0FDHLCALL LED1LCALL TIME P3.4,AGAING4LCALL TIME3JNB P3.4,NAOSETMAGAING4: DJNZ R5,SETDYG1MOV R5,

37、#0FFHSETDYG3:MOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#01111111BMOVX DPTR,ALCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#10111111BMOVX DPTR,ALCALL TIMEMOV A,DATELED3MOV R7,#0DFHLCALL LED1LCALL TIMEMOV A,DATELED1MOV R7,#0F7HLCALL LED1LCALL TIMEMOV A,DATELED2M

38、OV R7,#0FDHLCALL LED1LCALL TIME P3.4,AGAING9LCALL TIME3JNB P3.4,NAOSETMAGAING9: DJNZ R5,SETDYG3MOV R5,#0FFHLJMP SETDYG1NAOSETM:JNB P3.4,NAOSETMLCALL TIME3JNB P3.4,NAOSETMMOV P1,#10111111BNAOSETM1: MOV A,NAOMMOV R7,#0EFHLCALL LED1LCALL TIMEMOV A,NAOHMOV R7,#7FHLCALL LED1LCALL TIME P3.4,SETM1CNLCALL T

39、IME3JNB P3.4,NAOSETHSETM1CN: DJNZ R5,NAOSETM1MOV R5,#0FFHNAOSETM2: MOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#0EFHMOVX DPTR,ALCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#0F7HMOVX DPTR,ALCALL TIMEMOV A,NAOHMOV R7,#7FHLCALL LED1LCALL TIME P3.4,SETM1CN2LCALL TI

40、ME3JNB P3.4,NAOSETHSETM1CN2: DJNZ R5,NAOSETM2MOV R5,#0FFHLJMP NAOSETM1NAOSETH: JNB P3.4,NAOSETHLCALL TIME3JNB P3.4,NAOSETHMOV P1,#01111111BNAOSETH1: MOV A,NAOHMOV R7,#07FHLCALL LED1LCALL TIMEMOV A,NAOMMOV R7,#0EFHLCALL LED1LCALL TIME P3.4,NAOSETH2LCALL TIME3JNB P3.4,NOSETNAOSETH2: DJNZ R5,NAOSETH1MO

41、V R5,#0FFHNAOSETH3: MOV A,NAOMMOV R7,#0EFHLCALL LED1LCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#07FHMOVX DPTR,ALCALL TIMEMOV A,#00HMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,#0BFHMOVX DPTR,ALCALL TIME P3.4,NAOSETH4LCALL TIME3JNB P3.4,NOSETNAOSETH4: DJNZ R5,NAOSETH3MOV

42、 R5,#0FFHLJMP NAOSETH1NOSET: MOV P1,#0FFHJNB P3.4,$LCALL TIME3JNB P3.4,NOSETLJMP LEDCLOCK: INC R3MOV TH0,#3CH ;定時(shí)器復(fù)位MOV TL0,#0B0HCJNE R3,#20,CHUAN ;以下為小時(shí),分鐘,秒進(jìn)一INC R2MOV R3,#00HCJNE R2,#60,CHUANINC R1MOV R2,#00HCJNE R1,#60,CHUANINC R0MOV R1,#00HCJNE R0,#24,CHUANINC DATELED2MOV R0,#00HMOV R4,DATELED1

43、 ;以下是月份和平閏年選擇與進(jìn)一MOV R6,DATELED2CJNE R4,#01,CLOCK1CJNE R6,#32,CHUANINC DATELED2MOV DATELED1,#01HLJMP ENDDCLOCK1: CJNE R4,#02,CLOCK3MOV B,#4 ;平閏年選擇MOV A,DATELED3DIV ABMOV A,BJNZ CLOCK2CHUANX2: CJNE R6,#30,CHUANX1 ;閏年二月INC DATELED1MOV DATELED2,#01HLJMP ENDDCLOCK2: CJNE R6,#29,CHUANX2ENDDX: INC DATELED1

44、 ;平年二月MOV DATELED2,#01HLJMP ENDDCHUAN: LJMP ENDDCHUANX1: CJNE R6,#31,CHUANX11LJMP ENDDXCHUANX11: CJNE R6,#32,CHUANLJMP ENDDXCLOCK3: CJNE R4,#3,CLOCK4CJNE R6,#32,CHUAN ;INC DATELED1MOV DATELED2,#01HLJMP ENDDCLOCK4: CJNE R4,#4,CLOCK5CJNE R6,#31,ENDD ;四月小INC DATELED1MOV DATELED2,#01HLJMP ENDDCLOCK5: CJ

45、NE R4,#5,CLOCK6CJNE R6,#32,ENDD ;五月大INC DATELED1MOV DATELED2,#01HLJMP ENDDCLOCK6: CJNE R4,#6,CLOCK7CJNE R6,#31,ENDD ;六月小INC DATELED2MOV DATELED1,#01HLJMP ENDDCLOCK7: CJNE R4,#7,CLOCK8CJNE R6,#32,ENDD ;七月大INC DATELED1MOV DATELED2,#01HLJMP ENDDCLOCK8: CJNE R4,#8,CLOCK9CJNE R6,#32,ENDD ;八月大INC DATELED2

46、MOV DATELED1,#01HLJMP ENDDCLOCK9: CJNE R4,#9,CLOCK10CJNE R6,#31,ENDD ;九月小INC DATELED1MOV DATELED2,#01HLJMP ENDDCLOCK10: CJNE R4,#10,CLOCK11CJNE R6,#32,ENDD ;十月大INC DATELED1MOV DATELED2,#01HLJMP ENDDCLOCK11: CJNE R4,#11,CLOCK12CJNE R6,#31,ENDD ;十一月小INC DATELED1MOV DATELED2,#01HLJMP ENDDCLOCK12: CJNE

47、R6,#32,ENDDMOV DATELED1,#01HINC DATELED3 ;年進(jìn)一MOV DATELED2,#01H ;至此月份和年選擇結(jié)ENDD: RETILED1: ;時(shí)間與日期顯示函?MOV B,#10DIV ABMOV DPTR,#0030HMOVC A,A+DPTRMOV DPTR,#0FAFFHMOVX DPTR,AMOV DPTR,#0FBFFHMOV A,R7MOVX DPTR,ARR AMOV R7,ALCALL TIMEMOV A,BMOV DPTR,#0030HMOVC A,A+DPTRLED4: MOV DPTR,#0FAFFHMOVX DPTR,AMOV A,

48、R7MOV DPTR,#0FBFFHMOVX DPTR,ARETDATE: CLR ET1SETB P1.0LCALL TIME3 P3.5,ENDD1DATE2: MOV A,DATELED4 ;日期顯示MOV R7,#7FHLCALL LED1LCALL TIMEMOV A,DATELED3MOV R7,#0DFHLCALL LED1LCALL TIMEMOV A,DATELED1MOV R7,#0F7HLCALL LED1LCALL TIMEMOV A,DATELED2MOV R7,#0FDHLCALL LED1LCALL TIMEJNB P3.5,DATE1LCALL TIME3JNB

49、 P3.5,DATE1LJMP ENDD1DATE1: LJMP DATE2ENDD1: LJMP LEDJIA2X: LJMP JIA2JIA1: JNB P3.2,$LCALL TIMEXLCALL TIMEX/LCALL TIMEXJNB P3.2,JIA1MOV 70H,APUSH 70HMOV 71H,R4PUSH 71HMOV A,P1CPL AJZ JIA2 P1.0,JIA3INC R1CJNE R1,#60,JIA2MOV R1,#00HLJMP JIA2JIA3: P1.1,JIA4INC R0CJNE R0,#24,JIA2MOV R0,#00HLJMP JIA2JIA4: P1.2,JIA5INC DATELED2MOV R4,DATELED2CJNE R4,#32,JIA2MOV DATELED2,#01HLJMP JIA2JIA5: P1.3,JIA6INC DATELED1MOV R4,DATELED1CJNE R4,#13,JIA2/JIA2M: CJNE R4,#14,JIA2/CJNE R4,#13,JIA2MMOV DATELED1,#01HLJMP JIA2JIA6: P1.4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論