單片機(jī)原理課程設(shè)計(jì)-數(shù)字時(shí)鐘_第1頁(yè)
單片機(jī)原理課程設(shè)計(jì)-數(shù)字時(shí)鐘_第2頁(yè)
單片機(jī)原理課程設(shè)計(jì)-數(shù)字時(shí)鐘_第3頁(yè)
單片機(jī)原理課程設(shè)計(jì)-數(shù)字時(shí)鐘_第4頁(yè)
單片機(jī)原理課程設(shè)計(jì)-數(shù)字時(shí)鐘_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)原理課程設(shè)計(jì)-數(shù)字時(shí)鐘主要內(nèi)容:1.設(shè)計(jì)出電子數(shù)字鐘的電路,并用protus進(jìn)行仿真畫(huà)出對(duì)應(yīng)的電路圖2.設(shè)計(jì)出電子數(shù)字鐘的源程序,并用Keil進(jìn)行編輯生成HEX文件3.在protus中進(jìn)行測(cè)試。基本要求:1、電子數(shù)字鐘電路設(shè)計(jì)圖;2、電子數(shù)字鐘設(shè)計(jì)源程序;

2、keil運(yùn)行源程序;3、protus中仿真;4、運(yùn)行結(jié)果分析。主要參考資料:[1]

譚浩強(qiáng).C.程序設(shè)計(jì).北京:清華大學(xué)出版社,2002[2]

王為青,程國(guó)剛.單片機(jī)

KeilCx51

應(yīng)用技術(shù)開(kāi)發(fā),北京:人民郵電大學(xué)出版社,2007[3]

馬忠梅等.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì).北京航空航天大學(xué)出版社,2003.完

限:12

11

-

12

26

指導(dǎo)教師簽名:

課程負(fù)責(zé)人簽名:

要隨著科技的發(fā)展,時(shí)代的進(jìn)步,數(shù)字電子鐘成為了我們生活當(dāng)中的必需品,數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)

.時(shí),

分,秒.數(shù)字顯示的計(jì)時(shí)裝置

,廣泛用于個(gè)人家庭

,車站,

碼頭辦公室等公共場(chǎng)所

,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?/p>

,

由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用

,

使得數(shù)字鐘的精度,

遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表

,

鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。與傳統(tǒng)的機(jī)械鐘相比,電子鐘具有更突出的優(yōu)點(diǎn)。由于電子鐘采用數(shù)字集成電路的發(fā)展和采用了先進(jìn)的石英技術(shù),使電子鐘具有走時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),電子鐘用于定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播及自動(dòng)控制等各個(gè)領(lǐng)域。本次課程設(shè)計(jì)將采用protus進(jìn)行電路的仿真模擬,使用Keil完成對(duì)程序的編程。最終實(shí)現(xiàn)數(shù)字電子鐘的模擬關(guān)

詞:protus;Keil;1602數(shù)字電子鐘;目錄摘

要目錄1.1602數(shù)字電子鐘開(kāi)發(fā)方法1.1開(kāi)發(fā)背景1.2開(kāi)發(fā)平臺(tái)1.3設(shè)計(jì)目的1.4設(shè)計(jì)要求2.

系統(tǒng)設(shè)計(jì)2.1功能設(shè)計(jì)2.2電路設(shè)計(jì)2.3單片機(jī)控制系統(tǒng)2.4LM016L顯示器3.電路整體設(shè)計(jì)3.1

顯示模塊設(shè)計(jì)3.2按鍵模塊設(shè)計(jì)3.3復(fù)位電路模塊設(shè)計(jì)3.4蜂鳴器設(shè)計(jì)3.5電路整體設(shè)計(jì)4.程序設(shè)計(jì)4.1程序整體設(shè)計(jì)5.測(cè)試與運(yùn)行5.1電子鐘顯示測(cè)試5.2時(shí)間調(diào)節(jié)測(cè)試5.3設(shè)定鬧鐘測(cè)試6.總結(jié)參考文獻(xiàn)1.1602數(shù)字電子鐘開(kāi)發(fā)方法1.1開(kāi)發(fā)背景1602數(shù)字電子時(shí)鐘是人們?nèi)粘I钪胁豢苫蛉钡谋匦杵冯娮隅娭饕抢矛F(xiàn)代電子技術(shù)將時(shí)鐘電子化數(shù)字化與傳統(tǒng)的機(jī)械鐘相比具有時(shí)鐘精確顯示直觀無(wú)機(jī)械傳動(dòng)裝置等優(yōu)點(diǎn)因而得到廣泛應(yīng)用另外在生活和工農(nóng)業(yè)生產(chǎn)中人們對(duì)電子鐘的功能又提出了諸多要求報(bào)時(shí)鬧鐘日歷溫度顯示這就需要電子時(shí)鐘的多功能性與傳統(tǒng)的機(jī)械鐘相比,電子鐘具有更突出的優(yōu)點(diǎn)。由于電子鐘采用數(shù)字集成電路的發(fā)展和采用了先進(jìn)的石英技術(shù),使電子鐘具有走時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),電子鐘用于定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播及自動(dòng)控制等各個(gè)領(lǐng)域。1.2開(kāi)發(fā)平臺(tái)(1)本次數(shù)字電子鐘開(kāi)發(fā)所用的平臺(tái)是proteus,Proteus軟件是英國(guó)LabCenterElectronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是比較好的仿真單片機(jī)及外圍器件的工具。雖然國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛(ài)好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開(kāi)發(fā)應(yīng)用的科技工作者的青睞。Proteus是英國(guó)著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯器。(2)KeilC51是美國(guó)KeilSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(μVision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語(yǔ)言編程,那么Keil幾乎就是你的不二之選,即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。(3)Windows11是由微軟公司(Microsoft)開(kāi)發(fā)的操作系統(tǒng),應(yīng)用于計(jì)算機(jī)和平板電腦等設(shè)備。于2021年6月24日發(fā)布,2021年10月5日發(fā)行。Windows11提供了許多創(chuàng)新功能,增加了新版開(kāi)始菜單和輸入邏輯等,支持與時(shí)代相符的混合工作環(huán)境,側(cè)重于在靈活多變的體驗(yàn)中提高最終用戶的工作效率。1.3

設(shè)計(jì)目的通過(guò)本次課程設(shè)計(jì),運(yùn)用《單片機(jī)微型計(jì)算機(jī)原理及應(yīng)用》的知識(shí),設(shè)計(jì)出一個(gè)簡(jiǎn)單的1602電子鐘,從而將課堂上所講的理論知識(shí)與實(shí)際的操作給結(jié)合在一起,已達(dá)到對(duì)知識(shí)的復(fù)習(xí),提高自己的動(dòng)手能力。1.4

設(shè)計(jì)要求設(shè)計(jì)一個(gè)單片機(jī)系統(tǒng),利用Keil來(lái)進(jìn)行程序的書(shū)寫(xiě)與編程并且用proteus軟件完成系統(tǒng)軟硬件的設(shè)計(jì)及模擬調(diào)試。要求以AT89C51為控制系統(tǒng),LM016為顯示器,便且能夠通過(guò)按鈕來(lái)調(diào)整時(shí)鐘的時(shí)間的一個(gè)建議的電子數(shù)字鐘。最后能夠在顯示器上正常的顯示時(shí)間,并且可以調(diào)節(jié)時(shí)間。2.

系統(tǒng)設(shè)計(jì)2.1功能設(shè)計(jì)1、設(shè)計(jì)一個(gè)有“時(shí)”,“分”,“秒”(23小時(shí)59分59秒)顯示且可以調(diào)節(jié)時(shí)間的電子鐘。2、用中小規(guī)模集成電路組成電子鐘。2.2

電路設(shè)計(jì)想做好一個(gè)單片機(jī)系統(tǒng),首先必須想好應(yīng)該用什么樣子的電路,并且把需要的用的電路元件給拿出來(lái),如圖2-1電路設(shè)計(jì)流程圖所示:圖2-1控制系統(tǒng)2.3

單片機(jī)控制系統(tǒng)本次實(shí)現(xiàn)1602數(shù)字鐘采用的控制系統(tǒng)是AT89C51。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。該控制系統(tǒng)如圖2-2所示:

圖2-2

控制系統(tǒng)2.4LM016L顯示器LM016L液晶模塊采用HD44780控制器,hd44780具有簡(jiǎn)單而功能較強(qiáng)的指令集,可以實(shí)現(xiàn)字符移動(dòng),閃爍等功能,LM016L與單片機(jī)MCU通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個(gè)8位寄存器,指令寄存器(IR)和數(shù)據(jù)寄存器(DR)忙標(biāo)志(BF),顯示數(shù)RAM(DDRAM),字符發(fā)生器ROMA(CGOROM)_字符發(fā)生器RAM(CGRAM),地址計(jì)數(shù)器RAM(AC)IR用于資存指令碼,只能寫(xiě)入丕能讀出;DR用于資存數(shù)據(jù)。數(shù)據(jù)由內(nèi)部操作自動(dòng)寫(xiě)入

DDRAM和CGRAM,或者暫存從

DDRAM和CGRAM讀出的數(shù)據(jù),BF為1時(shí),液品模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和接受數(shù)據(jù),DDTAM用來(lái)存儲(chǔ)顯示的字符,能存儲(chǔ)80個(gè)字符碼,CGROM由8位字符碼生成5*7點(diǎn)陣字符160中和5*10點(diǎn)陣字符32種.8位字符編碼和字符的對(duì)應(yīng)關(guān)系,CGRAM

是為用戶編寫(xiě)特殊字符留用的,它的容量?jī)H64字節(jié),可以自定義8個(gè)5*7點(diǎn)陣字符或者4個(gè)5*10點(diǎn)陣字符,AC可以存儲(chǔ)DDRAM和CGRAM的地址,如果地址碼隨指令寫(xiě)入R,則R自動(dòng)把地址碼裝入AC,同時(shí)選擇

DDRAM或CGRA,LM016L液品模塊的引腳功能如圖2-3所示:圖2-3LM016L顯示器3.

電路整體設(shè)計(jì)3.1

顯示模塊設(shè)計(jì)本次課程設(shè)計(jì)采用的是LM016L為顯示器,以及使用RESPACK-8和3214G-1-104E組成顯示模塊,顯示器模塊圖如圖3-1所示:

圖3-1LM016L顯示器模塊3.2按鍵模塊設(shè)計(jì)因?yàn)橐髸r(shí)鐘可以調(diào)節(jié)時(shí)間,因此按鍵模塊需要使5個(gè)按鍵來(lái)調(diào)節(jié)時(shí)間。用五個(gè)調(diào)整按鍵調(diào)整時(shí)間﹐分別為KI·K2·K3·K4·K5,其中K1鍵為功能選擇鍵﹐可以調(diào)節(jié)時(shí)或分﹔K2為數(shù)值加一鍵﹔K3為數(shù)值減一鍵,K4為確認(rèn)鍵,K5為調(diào)節(jié)鬧鐘的按鍵。按鍵模塊設(shè)計(jì)如圖3-2所示:

圖3-2

按鍵模塊設(shè)計(jì)3.3復(fù)位電路模塊設(shè)計(jì)單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開(kāi)始工作。89系列單片機(jī)的復(fù)位信號(hào)是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),且振蕩器穩(wěn)定后,如果RST引腳上有一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。復(fù)位電路如圖3-3所示:

圖3-3

復(fù)位電路模塊設(shè)計(jì)3.4蜂鳴器設(shè)計(jì)單片機(jī)SOUNDER是什么,sounder是數(shù)字蜂鳴器元件。蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器的設(shè)計(jì)如圖3-4所示:

圖3-4

蜂鳴器設(shè)計(jì)3.5

電路整體設(shè)計(jì)單片機(jī)的電子電路設(shè)計(jì)中要求能夠滿足單一操作的要求,即能夠通過(guò)簡(jiǎn)單的操作就完成電子設(shè)備的系統(tǒng)功能。但是電子電路設(shè)計(jì)在功能作用中卻要求能夠?qū)崿F(xiàn)綜合化發(fā)展。當(dāng)前單片機(jī)在電子設(shè)備系統(tǒng)中的應(yīng)用,其能夠起到完善電子設(shè)備系統(tǒng)安全功能、顯示功能、預(yù)警功能等輔助功能,更好地推動(dòng)電子設(shè)備系統(tǒng)的智能化,精細(xì)化發(fā)展。電路的整體設(shè)計(jì)關(guān)乎此次課程設(shè)計(jì)的成功與否,是本次課程設(shè)計(jì)的重中之重。該1602電子數(shù)字鐘的整體的電路設(shè)計(jì)圖如圖3-5所示:

圖3-4

電路整體設(shè)計(jì)4.

程序設(shè)計(jì)4.1

程序整體設(shè)計(jì)完成了電路的設(shè)計(jì),想要將該電路運(yùn)行起來(lái),當(dāng)然離不開(kāi)程序的設(shè)計(jì),只有程序設(shè)計(jì)的符合電路的工作條件,與電路結(jié)合在一起才能使該電路運(yùn)行起來(lái),因此,該電子時(shí)鐘的程序設(shè)計(jì)的代碼如下所示:#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitRS=P2^6;sbitRW=P2^5;sbitE=P2^7;sbitK1=P1^0;sbitK2=P1^1;sbitK3=P1^2;sbitK4=P1^3;sbitK5=P1^4;sbitBEEP=P3^0;unsignedcharcishu=0;unsignedcharmode_flag;//狀態(tài)標(biāo)志位0表示正處于正常,1設(shè)置時(shí)間,2設(shè)置鬧鐘unsignedcharCurrent_Time[]={"CurrentTime"};

//正常運(yùn)行模式unsignedcharSet_time[]={"SetNewTime..."};

//設(shè)置時(shí)間模式unsignedcharSet_nao[]={"SetnaoTime..."};

//設(shè)置鬧鐘模式unsignedcharshow_time[]={">00:00:00"};unsignedcharnow_shi=12,now_fen=30,now_miao;//運(yùn)行時(shí)的時(shí)間變量unsignedchartemp_shi,temp_fen,temp_miao;//調(diào)時(shí)間的時(shí)間變量unsignedcharnao_shi=13,nao_fen=30,nao_miao;//鬧鐘的時(shí)間變量unsignedcharflag_sf;//0表示設(shè)置時(shí),1表示設(shè)置分//歌曲音調(diào)編碼ucharcodeSONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0};//歌曲長(zhǎng)音節(jié)ucharcodeSONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0};voiddisplay_mode();voiddisplay_time(unsignedcharshi,unsignedcharfen,unsignedcharmiao);voidkeyscan();voidPlayMusic();voidlcd_w_cmd(unsignedcharcom);voidlcd_w_dat(unsignedchardat);voidlcd_int();voiddelay1(unsignedinti);unsignedcharlcd_r_start();voidbeen(unsignedinttime);voidmain(){

lcd_int();

//初始化lcdmode_flag=0;//運(yùn)行display_mode();

//調(diào)用顯示模式函數(shù)TMOD=0x01;

//初始化定時(shí)器EA=1;

//打開(kāi)總中斷TH0=(65536-50000)/256;

//賦初值TL0=(65536-50000)%256;ET0=1;

//打開(kāi)定時(shí)器T0中斷標(biāo)志位TR0=1;

//啟動(dòng)T0while(1){if(mode_flag==0)display_time(now_shi,now_fen,now_miao);

//狀態(tài)標(biāo)志位mode_flag=0表示正處于時(shí)間正常運(yùn)行elsedisplay_time(temp_shi,temp_fen,temp_miao);

//否則mode_flag為1時(shí)設(shè)置時(shí)間,為2時(shí)設(shè)置鬧鐘keyscan();

//調(diào)用按鍵開(kāi)關(guān)控制函數(shù)if(now_shi==nao_shi&&now_fen==nao_fen&&now_miao==nao_miao)PlayMusic();

//如果正在運(yùn)行的時(shí)間為鬧鐘的時(shí)間,則鬧鈴響(此為音樂(lè))}}voiddisplay_mode()//第一行模式的顯示,有三種模式:(1)正在運(yùn)行的顯示Current_Time[]字符串(2)設(shè)置時(shí)間的顯示Set_time[]字符串

(3)設(shè)置鬧鐘的顯示Set_nao[]字符串{

unsignedchari;lcd_w_cmd(0x82);

//設(shè)置顯示地址(第一行)if(mode_flag==0)

//狀態(tài)標(biāo)志位mode_flag=0表示正處于時(shí)間正常運(yùn)行{for(i=0;Current_Time[i]!='\0';i++)

//此處顯示Current_Time[]字符串,字符串結(jié)束符為‘0’{lcd_w_dat(Current_Time[i]);}}elseif(mode_flag==1){for(i=0;Set_time[i]!='\0';i++)

//此處顯示Set_time[]字符串,字符串結(jié)束符為‘0’{lcd_w_dat(Set_time[i]);}}elseif(mode_flag==2){

for(i=0;Set_nao[i]!='\0';i++)

//此處顯示Set_nao[]字符串,字符串結(jié)束符為‘0’{lcd_w_dat(Set_nao[i]);}}}voiddisplay_time(unsignedcharshi,unsignedcharfen,unsignedcharmiao)//第二行的數(shù)字顯示{unsignedchari;if(mode_flag==0)show_time[0]='';

//如果mode_flag=0,第二行第0位顯示''else

show_time[0]='>';

//否則第二行第0位顯示'>'show_time[1]=shi/10+0x30;

//第一位顯示時(shí)的十位數(shù)show_time[2]=shi%10+0x30;

//第二位顯示時(shí)的個(gè)位數(shù)show_time[4]=fen/10+'0';

//第四位顯示分的十位數(shù)show_time[5]=fen%10+'0';

//第五位顯示分的個(gè)位數(shù)show_time[7]=miao/10+'0';

//第七位顯示秒的十位數(shù)show_time[8]=miao%10+'0';

//第八位顯示秒的個(gè)位數(shù)lcd_w_cmd(0xC3);

//更改顯示位置用for(i=0;show_time[i]!='\0';i++)

//此處顯示show_time[]字符串,字符串結(jié)束符為‘0’{lcd_w_dat(show_time[i]);}}voidkeyscan()

//按鍵控制,k1調(diào)時(shí)或分,k2加時(shí)或分,k3減時(shí)或分,k4確定調(diào)好的時(shí)間,k5調(diào)鬧鐘{if(K1==0){delay1(1000);if(K1==0){if(mode_flag==0)

//正在運(yùn)行的時(shí)間要進(jìn)入調(diào)時(shí)間的狀態(tài){been(300);

temp_shi=now_shi;temp_fen=now_fen;temp_miao=now_miao;mode_flag=1;}else{been(300);

flag_sf=~flag_sf;//切換狀態(tài),flag_sf=0調(diào)時(shí)鐘flag_sf=1調(diào)分鐘

}display_mode();while(!K1);

//松手檢測(cè)}}if(K2==0)

//加時(shí)或分delay1(1{{

been(300);

mode_flag=2;

temp_shi=nao_shi;

te;i++){

BEEP=~BEEP;

delay1(10);}}voiddelay(uintms)

//鬧鈴的延時(shí)函數(shù){chart;while(ms--)for(t=0;t<120;t++);}voidPlayMusic(){uinti=0,j,k;while(SONG_LONG[i]!=0||SONG_TONE[i]!=0){for_time(now_shi,now_fen,now_miao);}}//函數(shù)名:time0//函數(shù);}if(now_miao==60)

//60秒時(shí)間到后,秒數(shù)清零,分鐘加一{

now_miao=0;now_fen++;}if(now_fen==60)

//60分鐘時(shí)間到后,分鐘清零,時(shí)鐘加一{

now_fen=0;

now_shi++;}lcd_w_cmd(0x3c);

//設(shè)置工作方式lcd_w_cmd(0x0c);

//設(shè)置顯示狀態(tài)lcd_w_cmd(0x01);

//清屏lcd_w_cmd(0x06);

//設(shè)置輸入方式lcd_w_cmd(0x80);

//設(shè)置初始顯示位置}//函數(shù)名:lcd_w_cmd//函數(shù)功能:寫(xiě)命令//形式參數(shù):命令字已經(jīng)存入com單元中voidlcd_w_cmd(unsignedcharcom){delay1(1);RS=0;

//RW=0,RS=0,寫(xiě)lcd命令字delay1(1);E=1;

//E端時(shí)序以0或1高低波動(dòng)delay1(1);P0=com;

//將com中的命令字寫(xiě)入lcd數(shù)據(jù)口delay1(1);E=0;delay1(1);RW=1;delay1(2);}voidlcd_w_dat(unsignedchardat){unsignedchari;do{

//查忙操作i=lcd_r_start();

//調(diào)用讀狀態(tài)字函數(shù)i&=0x80;

//“與”操作屏蔽掉低7位delay1(2);}while(i!=0);

//lcd忙,繼續(xù)查詢,否則退出循環(huán)RW=0;delay1(1);RS=1;

//RW=0,RS=1,寫(xiě)lcd命令字delay1(1);E=1;dinti){unsignedintk;for(k=0;k<i;k++);}//函數(shù)名:lcd_r_start//函數(shù)功能:讀狀態(tài)字unsignedcharlcd_r_start(){unsignedchars;RW=1;

//RW=1,RS=0,讀lcd狀態(tài)delay1(1);RS=0;delay1(1);E=1;

//E端時(shí)序以0或1高低波動(dòng)del;

//返回值s讀取狀態(tài)忙或空閑}5.測(cè)試與運(yùn)行5.1

電子鐘顯示測(cè)試完成了電路設(shè)計(jì)以及程序設(shè)計(jì)后,把程序做成工程后,把生成的HEX文件放入到AT89C51控制器后便可開(kāi)始測(cè)試,開(kāi)始測(cè)試后電子鐘的顯示如圖5-1所示:

圖5-1

電子鐘顯示測(cè)試5.2

時(shí)間調(diào)節(jié)測(cè)試完成上述電子鐘的顯示測(cè)試后,便要開(kāi)始進(jìn)行電子鐘的時(shí)間調(diào)節(jié)測(cè)試,電子鐘

溫馨提示

  • 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)論