數(shù)字電子鐘劉遠(yuǎn)桃_第1頁
數(shù)字電子鐘劉遠(yuǎn)桃_第2頁
數(shù)字電子鐘劉遠(yuǎn)桃_第3頁
數(shù)字電子鐘劉遠(yuǎn)桃_第4頁
數(shù)字電子鐘劉遠(yuǎn)桃_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 單片機(jī)技術(shù)課程設(shè)計(jì)說明書 數(shù) 字 電 子 鐘 系 、 部: 電氣與信息工程系 學(xué)生姓名: 劉遠(yuǎn)桃 指導(dǎo)教師: 王 韌 職 稱 副教授 專 業(yè): 自動(dòng)化 班 級(jí): 0702班 完成時(shí)間: 2009年12月31日 摘 要本次數(shù)字電子鐘課程設(shè)計(jì)采用ATMEL公司的AT89S52為基本芯片,外配以12MHZ的晶振作為時(shí)鐘電路,按鍵與電阻電容組成的復(fù)位電路,通過程序下載軟件與數(shù)字鐘硬件連接,實(shí)現(xiàn)24小時(shí)的時(shí),分,秒計(jì)時(shí)系統(tǒng)。該電子鐘設(shè)置4個(gè)按鍵,分別實(shí)現(xiàn)對(duì)時(shí),分,秒加一以及開啟電子鐘的作用。在具體數(shù)碼顯示中能夠?qū)崿F(xiàn)自動(dòng)記時(shí),手動(dòng)調(diào)時(shí),滿24小時(shí)自動(dòng)清0的作用。關(guān)鍵詞 數(shù)字電子鐘; AT89S52;硬件

2、設(shè)計(jì);軟件設(shè)計(jì) ABSTRACTThe curriculum design, digital electronic clock with ATMEL Corporation AT89S52 as the basic chips, accompanied by 12MHz crystal as an external clock circuit, composed of key with the resistance and capacitance of the reset circuit, through the program to download software and digital

3、 clock hardware connection, to achieve a 24-hours,minutes and seconds,timekeeping system. The electronic clock is set four buttons, respectively, to realize hours, minutes and seconds, plus one and opening the electronic clock role.In specific digital display can be automatic timer, manual transfer,

4、 the full 24-hour automatic cleaning 0 role.Key words: Digital electronic clock;;AT89S5;Hardware Design;Software Design目 錄1 設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹11.1 設(shè)計(jì)課題任務(wù)11.2 功能要求說明11.3 設(shè)計(jì)總體方案介紹及原理說明12 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)22.1 設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡要介紹22.2 設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖 22.3 設(shè)計(jì)課題元器件清單33 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)43.1 設(shè)計(jì)課題使用單片機(jī)資源的情況43.2 設(shè)計(jì)課

5、題軟件系統(tǒng)各模塊功能簡要介紹43.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖43.4 設(shè)計(jì)課題軟件系統(tǒng)程序清單84 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議94.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明94.2 設(shè)計(jì)課題的仿真結(jié)果94.3 設(shè)計(jì)課題的誤差分析104.4 設(shè)計(jì)體會(huì)104.5 教學(xué)建議10參考文獻(xiàn) 12致 謝 13附 錄 141 設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹1.1 設(shè)計(jì)課題任務(wù)設(shè)計(jì)一個(gè)數(shù)碼顯示的電子鐘,具有以下功能:通電顯示掃描字符P,按鍵實(shí)現(xiàn)自動(dòng)記時(shí),定時(shí)報(bào)時(shí),手動(dòng)調(diào)時(shí)及數(shù)碼顯示的功能。1.2 功能要求說明對(duì)實(shí)驗(yàn)板通電后開始進(jìn)入自動(dòng)掃描系統(tǒng),數(shù)碼顯示為P,按開始鍵自動(dòng)進(jìn)入24小時(shí)計(jì)時(shí)系統(tǒng),在

6、有鍵干擾下,進(jìn)入手動(dòng)調(diào)時(shí)系統(tǒng):按調(diào)時(shí)鍵對(duì)時(shí)進(jìn)行加一,按調(diào)分鍵對(duì)分進(jìn)行加一,按調(diào)秒鍵對(duì)秒進(jìn)行加一,退出手動(dòng)調(diào)時(shí)系統(tǒng)后,計(jì)時(shí)系統(tǒng)在調(diào)整后的狀態(tài)下運(yùn)行。當(dāng)計(jì)時(shí)達(dá)到24小時(shí)后,系統(tǒng)自動(dòng)清0,重新進(jìn)入計(jì)時(shí)系統(tǒng)。1.3 設(shè)計(jì)課題總體方案介紹及工作原理說明本數(shù)字電子鐘主要由時(shí)鐘電路,復(fù)位電路,下載電路,4位獨(dú)立式鍵盤,AT89S52,限流電阻,74LS245驅(qū)動(dòng)以及數(shù)碼管組成。具體設(shè)計(jì)方案如圖1.3所示: 圖1.1 總體設(shè)計(jì)方案圖該數(shù)字電子鐘由“秒脈沖發(fā)生器”,“分脈沖發(fā)生器”,“時(shí)脈沖發(fā)生器”,“時(shí)調(diào)時(shí)器”,“分調(diào)時(shí)器”,“秒調(diào)時(shí)器”,“譯碼顯示器”“鍵掃描器”組成。1秒定時(shí)信號(hào)是整個(gè)系統(tǒng)的時(shí)基信號(hào),它直

7、接決定計(jì)時(shí)系統(tǒng)的精度,一般用石英晶體振蕩器來實(shí)現(xiàn)。將標(biāo)準(zhǔn)秒信號(hào)送入“秒計(jì)數(shù)”緩沖單元,“秒計(jì)數(shù)”緩沖采用10進(jìn)制計(jì)數(shù),每累計(jì)60秒產(chǎn)生一個(gè)“分脈沖”信號(hào),該信號(hào)送入“分計(jì)數(shù)”緩沖單元。“分計(jì)數(shù)”緩沖單元也采用10進(jìn)制計(jì)數(shù),每累計(jì)60分鐘,發(fā)出一個(gè)“時(shí)脈沖”信號(hào),該信號(hào)將被送到“時(shí)計(jì)數(shù)”緩沖單元?!皶r(shí)計(jì)數(shù)器”采用10進(jìn)制計(jì)時(shí),可實(shí)現(xiàn)對(duì)一天24小時(shí)的累計(jì)。通過對(duì)時(shí),分,秒緩沖單元數(shù)據(jù)進(jìn)行譯碼,分時(shí)輸出送至七段LED數(shù)碼管。整點(diǎn)報(bào)時(shí)電路為根據(jù)根據(jù)“時(shí)計(jì)數(shù)”緩沖單元的變化產(chǎn)生一個(gè)“報(bào)時(shí)脈沖”,開啟蜂鳴器報(bào)時(shí)。在電子鐘正常走時(shí)過程中,主要使用了單片機(jī)內(nèi)部RAM的四組工作寄存器區(qū),堆棧緩沖區(qū),自定義的數(shù)據(jù)

8、暫存區(qū),數(shù)據(jù)顯示緩沖區(qū)等。2 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)2.1 設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡要介紹數(shù)字電子鐘的硬件系統(tǒng)模塊設(shè)計(jì)主要分為:時(shí)鐘電路,復(fù)位電路,鍵盤電路,顯示電路,電源電路。(1)時(shí)鐘電路:系統(tǒng)的時(shí)鐘電路設(shè)計(jì)是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。AT89單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個(gè)自激振蕩器。外接晶體諧振器以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對(duì)外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會(huì)影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、

9、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為22F。在焊接刷電路板時(shí),晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。(2)復(fù)位電路:復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST通過一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個(gè)機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路,如圖所示。當(dāng)時(shí)鐘頻率選用6MHz時(shí),C取22F,Rs約為200,Rk約為1K。(3)鍵

10、盤電路:當(dāng)非編碼鍵盤的按鍵較少時(shí),采用獨(dú)立式鍵盤比較方便,可以隨意拿硬件作為預(yù)處理,各鍵盤之間不影響,編程相對(duì)矩陣式鍵盤簡單,但占用的I/O口線較多。(4)顯示電路:顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運(yùn)行狀態(tài)和工作數(shù)據(jù),按照材料及生產(chǎn)工藝,單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器有:發(fā)光二極管LED顯示器、液晶LCD顯示器、CRT顯示器等。LED顯示器是現(xiàn)在最常用的顯示器之一。LED顯示器的顯示控制方式按驅(qū)動(dòng)方式可分成靜態(tài)顯示方式和動(dòng)態(tài)顯示方式兩種。對(duì)于多位LED顯示器,通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,其硬件連接方式如系統(tǒng)原理圖。在動(dòng)態(tài)方式中,逐個(gè)地循環(huán)地點(diǎn)亮各位顯示器。這樣雖然在任一時(shí)刻只有一位顯

11、示器被點(diǎn)亮,但是由于人眼具有視覺殘留效應(yīng),看起來與全部顯示器持續(xù)點(diǎn)亮效果完全一樣。(5)電源電路:現(xiàn)在市面上銷售的編程器有很多都是由PC機(jī)的USB口直接供電,為了降低本設(shè)計(jì)的成本及節(jié)省設(shè)計(jì)時(shí)間,沒有另外設(shè)計(jì)編程器,而直接購買了市場上的USB供電及下載器。2.2 設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖設(shè)計(jì)課題電路原理圖,見附錄二;設(shè)計(jì)課題電路的PCB圖,見附錄三;設(shè)計(jì)課題電路的元器件布局圖,見附錄四;2.3 設(shè)計(jì)課題元器件清單設(shè)計(jì)課題元器件清單如表2.1所示。表2.1 元器件清單名 稱數(shù) 量參 數(shù)電阻5個(gè)1K共陽數(shù)碼管2個(gè)4位一體電阻4個(gè)4.7kISP下載口插座1個(gè)普通插座1個(gè)40PIN電阻

12、8個(gè)470電阻5個(gè)200按鍵5個(gè)插針1排40PIN鎖緊插座1個(gè)40PIN驅(qū)動(dòng)一套74ls245USB供電接口及供電線一套晶振及其插座一套12MHz電容2個(gè)30pF極性電容1個(gè)22F排阻1個(gè)10K芯片1塊AT89S52發(fā)光二極管1個(gè)六角開關(guān)1個(gè)電容 各1個(gè)470f、104P銅柱 (帶螺母)4個(gè)3 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)3.1 設(shè)計(jì)課題使用單片機(jī)資源的情況單片機(jī)資源使用的情況如下:P0口作為段碼輸出口,輸出數(shù)碼管顯示的段碼信號(hào);P3口作為位碼輸出口,輸出數(shù)碼管的位顯示;輸出數(shù)碼管位選信號(hào);晶振11.0592M;調(diào)整狀態(tài)鍵IN_SET:P1.0;通過調(diào)整狀態(tài)鍵來確定時(shí)間是否進(jìn)入調(diào)整時(shí)間狀態(tài);小時(shí)調(diào)整

13、鍵HH_SET:P1.1;按一次使選中位加1;分鐘調(diào)整鍵MM_SET:P1.2;按一次使選中位加1;秒鐘調(diào)整鍵SS_SET:P1.3;按一次使選中位加1;當(dāng)自動(dòng)運(yùn)行到整點(diǎn),蜂鳴器發(fā)聲報(bào)時(shí);30H-3FH;16個(gè)寄存器單元作為數(shù)據(jù)顯示單元; 30H 用于秒個(gè)位數(shù)據(jù)存儲(chǔ);31H 用于秒十位數(shù)據(jù)存儲(chǔ);32H 用于分個(gè)位數(shù)據(jù)存儲(chǔ);33H 用于分十位數(shù)據(jù)存儲(chǔ);34H 用于時(shí)個(gè)位數(shù)據(jù)存儲(chǔ);35H 用于時(shí)十位數(shù)據(jù)存儲(chǔ);3FH 用于秒個(gè)位顯示存儲(chǔ);3EH 用于秒十位顯示存儲(chǔ);3DH 用于分個(gè)位顯示存儲(chǔ);3CH 用于分十位顯示存儲(chǔ);3BH 用于時(shí)個(gè)位顯示存儲(chǔ);3AH 用于時(shí)十位顯示存儲(chǔ);46H 用于1秒計(jì)時(shí)溢出

14、;堆棧棧底:60H。3.2 設(shè)計(jì)課題軟件系統(tǒng)個(gè)模塊功能簡要介紹 本設(shè)計(jì)的軟件系統(tǒng)模塊大致分為:主程序模塊,中斷服務(wù)程序,數(shù)碼驅(qū)動(dòng)顯示程序,鍵掃程序。主程序:用于對(duì)程序進(jìn)行全局控制,包括信號(hào)的輸入輸出,調(diào)用各個(gè)功能的子模塊,調(diào)配按鍵的使用。中斷服務(wù)程序:用于產(chǎn)生1S的脈沖信號(hào)。鍵盤掃描模塊:用于及時(shí)校正計(jì)時(shí)狀態(tài)。數(shù)碼驅(qū)動(dòng)模塊:用于驅(qū)動(dòng)數(shù)碼管的正確顯示計(jì)時(shí)。3.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖系統(tǒng)軟件采用匯編語言按模塊化方式進(jìn)行設(shè)計(jì),然后通過Keil軟件開發(fā)平臺(tái)將程序轉(zhuǎn)變成十六進(jìn)制程序語言,接著使用Proteous 進(jìn)行仿真,讀出顯示數(shù)據(jù)。主程序流程框圖如3.1所示;加1子程序如3.2所示;顯示子

15、程序框圖如3.3所示;中斷服務(wù)程序程序如3.4所示;鍵盤掃描子程序框圖如3.5所示;圖3.1 主程序流程框圖圖3.2 加1子程序流程框圖 圖3.3 顯示子程序圖3.4 中斷子程序圖3.5 鍵盤掃描子程序3.4 設(shè)計(jì)課題軟件系統(tǒng)程序清單設(shè)計(jì)課題軟件系統(tǒng)程序清單,詳見附錄一。4 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議4.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明本次數(shù)字電子鐘的設(shè)計(jì)實(shí)現(xiàn)了24小時(shí)的計(jì)時(shí),在P1口接四個(gè)獨(dú)立式鍵盤對(duì)時(shí)間進(jìn)行控制。設(shè)計(jì)使用了2個(gè)四位一體的共陽數(shù)碼管做為顯示器,用于顯示24小時(shí)的時(shí)間值;設(shè)計(jì)了4個(gè)按鍵對(duì)時(shí)間進(jìn)行控制:按鍵S1有三個(gè)作用:第一用于開啟自動(dòng)計(jì)時(shí),第二用于退出自動(dòng)計(jì)時(shí)并進(jìn)

16、入調(diào)整時(shí)間狀態(tài),第三用于退出調(diào)整時(shí)間狀態(tài),開啟自動(dòng)計(jì)時(shí)狀態(tài);按鍵S2用于對(duì)小時(shí)進(jìn)行調(diào)整;按鍵S3用于對(duì)分鐘進(jìn)行調(diào)整;按鍵S4用于對(duì)秒鐘進(jìn)行調(diào)整。當(dāng)整點(diǎn)時(shí)間到,蜂鳴器報(bào)警。4.2 設(shè)計(jì)課題的仿真結(jié)果在Proteus ISIS的80C51中下載程序生成的HEX文件,按開始符號(hào)運(yùn)行,在數(shù)碼管上觀察程序運(yùn)行結(jié)果,系統(tǒng)仿真結(jié)果如圖4.1與4.2所示。設(shè)計(jì)功能如下: (1)、“P.”狀態(tài):未按鍵之前,上電,數(shù)碼顯示P點(diǎn)。程序運(yùn)行后,按復(fù)位鍵,顯示P點(diǎn)。 (2)、自動(dòng)運(yùn)行狀態(tài):程序開始顯P后,按S1鍵,系統(tǒng)進(jìn)入計(jì)時(shí)狀態(tài),此時(shí),按S2,S3,S4鍵無效。(3)、調(diào)整狀態(tài):在自動(dòng)運(yùn)行過程中,按S1鍵,退出自動(dòng)運(yùn)

17、行狀態(tài),計(jì)時(shí)暫停。此時(shí),按鍵S2,S3,S4有效,均代表調(diào)節(jié)時(shí),分,秒。每按一次,對(duì)應(yīng)的數(shù)碼加一。按鍵S1,退出調(diào)整狀態(tài),接著計(jì)時(shí)。時(shí)間顯示格式為:時(shí)分秒; 圖4.1 “P.”運(yùn)行狀態(tài)仿真圖4.2 時(shí)鐘運(yùn)行狀態(tài)仿真4.3 設(shè)計(jì)課題的誤差分析實(shí)際程序下載到實(shí)驗(yàn)板中的電子鐘顯示存在一定的誤差,誤差來源可能為三個(gè)方面:第一,在程序運(yùn)行過程中,時(shí)鐘周期的不精確導(dǎo)致機(jī)器周期與理論值存在一定的差別;第二在中斷一秒顯示過程中,一些指令需要消耗一定的機(jī)器周期,使得一秒延時(shí)比實(shí)際要長;第三在鍵抖動(dòng)的反應(yīng)程度在運(yùn)行中比較慢。4.3 設(shè)計(jì)體會(huì)本次數(shù)字電子鐘的課程設(shè)計(jì),學(xué)習(xí)將理論與實(shí)踐相結(jié)合,對(duì)數(shù)字器件及集成電路有較

18、深入的認(rèn)識(shí),初步掌握綜合運(yùn)用所學(xué)知識(shí)分析和設(shè)計(jì)一般數(shù)字系統(tǒng)的基本方法,增強(qiáng)動(dòng)手解決實(shí)際問題的能力。認(rèn)識(shí)到了自身的許多缺點(diǎn)和不足,初步接觸到了如何將硬件與軟件相連接來實(shí)現(xiàn)一定的自動(dòng)化。在實(shí)驗(yàn)板的焊接過程中,更深地意識(shí)到焊接技術(shù)的重要性。使我們明白現(xiàn)實(shí)生活中電子鐘的工作原理,鍛煉了查資料的能力。4.4 教學(xué)建議在一個(gè)學(xué)期的相處過程中,通過實(shí)踐形象地將抽象化的單片機(jī)書本知識(shí)具體化,掌握一些與單片機(jī)相關(guān)的軟件,在王韌老師的教學(xué)過程中,課堂氣氛輕松愉快,同學(xué)們學(xué)習(xí)單片機(jī)的熱情高漲,結(jié)合自身情況,希望王韌老師在以后的教學(xué)過程中能夠多與同學(xué)交流思想,討論課程學(xué)習(xí)方法。參考文獻(xiàn)1 馬瑩瑩.基于Proteus的

19、單片機(jī)系統(tǒng)電路設(shè)計(jì)與仿真.遼寧工學(xué)院學(xué)報(bào).2007.8,第4期. Ma Yingying.Microcontroller-based Proteus system circuit design and simulation.2007.8 Journal of Liaoning Institute of Technology, No. 4.2 陳剛.張?zhí)禊i,數(shù)字電子鐘的分析與設(shè)計(jì).辦公自動(dòng)化雜志.2009,第152期. Chen Gang. Zhangtian Peng, digital electronic clock analysis and design. Office utomation

20、 magazine .2009, p. 152.3 曹巧媛.單片機(jī)原理及應(yīng)用M,北京:電子工業(yè)出版社,1997.7. Cao Qiao Yuan. Microcontroller Theory and Application M, Beijing: Electronic Industry Press, 1997.7.4 李廣弟.朱月秀,單片機(jī)基礎(chǔ),北京:航空航天大學(xué)出版社,2007.6. Li Guangdi. Zhu Xiu, microcontroller-based, Beijing: Aeronautics and Astronautics University Press, 2007

21、.6.致 謝在不斷的努力中,單片機(jī)的課程設(shè)計(jì)終于告一段落。在此感謝王韌老師的悉心教導(dǎo),使我學(xué)會(huì)了如何理清編程的思路以及調(diào)試方法,才能夠讓我在程序的編排過程中少走彎路,同時(shí)也感謝同學(xué)的幫助以及鼓勵(lì),使我學(xué)會(huì)了很多的寶貴經(jīng)驗(yàn)。再次衷心的感謝你們。附 錄附錄1;本電子鐘6位數(shù)碼管顯示時(shí)分秒,可整點(diǎn)報(bào)時(shí);顯示格式:00-00-00;通過4只按鍵來調(diào)整時(shí)間;P0口輸出數(shù)碼管段選信號(hào),P3口輸出數(shù)碼管位選信號(hào);晶振11.0592M;P2.1為蜂鳴器發(fā)聲報(bào)時(shí);劉遠(yuǎn)桃 2009年12月31日;變量定義段;SECGE EQU 30H ;秒個(gè)位存儲(chǔ)單元 SECSH EQU 31H ;秒十位存儲(chǔ)單元 MINGE E

22、QU 32H ;分個(gè)位存儲(chǔ)單元 MINSH EQU 33H ;分十位存儲(chǔ)單元 HOUGE EQU 34H ;時(shí)個(gè)位存儲(chǔ)單元 HOUSH EQU 35H ;時(shí)十位存儲(chǔ)單元 INTCISHU EQU 46H ;要求的計(jì)數(shù)溢出次數(shù),即1秒計(jì)時(shí)的循環(huán)次數(shù)IN_SET EQU P1.0HH_SET EQU P1.1MM_SET EQU P1.2SS_SET EQU P1.3;程序起始; ORG 0000H ;程序執(zhí)行開始地址 LJMP DISPP ORG 000BH ;定時(shí)器T0中斷程序入口 LJMP INTT0 ;跳至INTTO執(zhí)行 ORG 0030H DISPP:MOV A, #20H ;位選 TT

23、:MOV P3, A MOV P0, #0CH ;段碼"P." LYT2:JB IN_SET, TT ;鍵是否按下,沒按下則轉(zhuǎn)移 LCALL DLJNB IN_SET, LYT2 ;鍵是否松開,松開往下走 MAIN:MOV R0, #30H ;RAM區(qū)首地址 MOV R7, #16 ;RAM區(qū)單元個(gè)數(shù) TT1:MOV R0, #00H INC R0 DJNZ R7, TT1 MOV SP, #60H ;確立堆棧區(qū)MOV IP, #02HSETB EASETB ET0 ; MOV TMOD, #01H ;設(shè)定定時(shí)器0工作方式1MOV TL0, #0DCH ;裝計(jì)數(shù)初值 MOV

24、 TH0, #0BH SETB TR0 ;啟動(dòng)定時(shí)器0 START:LCALL DISP ;開始計(jì)時(shí)顯示 JNB IN_SET, SETTIME;判斷是否進(jìn)入時(shí)間調(diào)整狀態(tài)LJMP START;時(shí)間調(diào)整段;SETTIME:CLR TR0;暫停計(jì)時(shí) LCALL DISP;調(diào)顯示 JNB IN_SET, SETTIME;判鍵是否松開,松開則往下走LYT:LCALL DISP;調(diào)顯示 JNB IN_SET, OUT_SET;判斷調(diào)整鍵是否再次按下,按下則跳出調(diào)整狀態(tài),正常計(jì)時(shí)JNB SS_SET, S1;IN-SET沒有再次按下,判斷調(diào)秒鍵是否按下,按下則轉(zhuǎn)移到秒加一程序JNB MM_SET, S2;

25、調(diào)秒鍵沒有再次按下,判斷調(diào)分鍵是否按下,按下則轉(zhuǎn)移到分加一程序JNB HH_SET, S3;調(diào)分鍵沒有再次按下,判斷調(diào)時(shí)健是否按下,按下則轉(zhuǎn)移到時(shí)加一程序LJMP LYT S1:LCALL DL ;去抖動(dòng)S11:LCALL DISP;調(diào)顯示JNB SS_SET, S11;判調(diào)秒鍵是否松開,松開則往下執(zhí)行MOV R0, #SECSH ;秒十位存儲(chǔ)單元地址 LCALL DADD1 ;秒加1 LCALL DISP;調(diào)顯示 MOV A, R2 XRL A, #60H ;判是否到60秒 JNZ LYT1 ;是則往下走,沒到則跳轉(zhuǎn) LCALL CLR0LJMP LYT S2:LCALL DL ;去抖動(dòng)S2

26、2:LCALL DISPJNB MM_SET, S22MOV R0, #MINSH ;秒十位存儲(chǔ)單元地址 LCALL DADD1 ;分加1 LCALL DISP MOV A, R2 XRL A, #60H ;判是否到60分 JNZ LYT1 LCALL CLR0 LJMP LYT S3:LCALLDL ;去抖動(dòng)S33:LCALLDISPJNBHH_SET, S33MOV R0, #HOUSH ;秒十位存儲(chǔ)單元地址 LCALL DADD1 ;時(shí)加1 LCALL DISP MOV A, R2 XRL A, #24H ;判是否到24H JNZ LYT1 LCALL CLR0 LJMPLYTOUT_S

27、ET:LCALLDISPJNB IN_SET, OUT_SET ;判鍵是否松開SETB TR0 ;松開則繼續(xù)計(jì)時(shí)LJMPSTART LYT1:LJMP LYT ;1秒中斷程序; INTT0:PUSHDPL PUSHDPH PUSHPSW PUSHACC SETB RS1 ;改變當(dāng)前寄存器組為組3 SETB RS0 CLR ET0 CLR TR0 MOV TL0, #0DCH ;裝計(jì)數(shù)初值 MOV TH0, #0BH SETB TR0 MOV A, INTCISHU ;循環(huán)次數(shù)減1 DEC A MOV INTCISHU,A JNZ RET0 ;不滿20次,轉(zhuǎn)RET0返回 SETB P2.1 MO

28、V INTCISHU,#14H ;滿20次,開始計(jì)時(shí)操作 MOV R0, #SECSH ;秒十位存儲(chǔ)單元地址 LCALL DADD1 ;十進(jìn)制秒加1 MOV A, R2 XRL A, #60H ;判是否到60秒 JNZ RET0 ;不到,轉(zhuǎn)RET0返回 LCALL CLR0 ;到60秒,秒顯示緩沖單元清0 MOV R0, #MINSH ;分十位存儲(chǔ)單元地址 LCALL DADD1 ;十進(jìn)制分加1 MOV A, R2 XRL A, #60H ; 判是否到60分 JNZ RET0 ;不到,轉(zhuǎn)RET0返回 CLRP2.1;開蜂鳴器 LCALL CLR0 ;到60分,分顯示緩沖單元清0 MOV R0, #HOUSH ;時(shí)十位存儲(chǔ)單元地址 LCALL DADD1 ;十進(jìn)制時(shí)加1 MOV A, R2 XRL A, #24H ;判是否到24時(shí) JNZ RET0 ;不到,轉(zhuǎn)RET0返回 LCALL CLR0 ;到24時(shí),時(shí)顯示緩沖單元清0 RET0:POP ACC POP PSW ;恢復(fù)當(dāng)前寄存器組的組號(hào)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論