資源描述:
《基于液晶顯示的數(shù)字時鐘》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、單片機(jī)原理與應(yīng)用用課程設(shè)計報告設(shè)計課題:基于液晶顯示的數(shù)字時鐘專業(yè):光信息科學(xué)與技術(shù)班級:學(xué)生姓名:指導(dǎo)教師:2010年6月22日(一)設(shè)計目的和原理:設(shè)計目的:把握單片機(jī)的基本原理;了解單片機(jī)與外部電路的數(shù)據(jù)傳輸能和好的把匯編設(shè)計與硬件電路聯(lián)系起來很好的進(jìn)行單片機(jī)的匯編設(shè)計會運(yùn)用protues和keilc對課程進(jìn)行仿真與分析通過對液晶顯示的數(shù)字時鐘設(shè)計,加強(qiáng)對單片機(jī)的了解和知識的運(yùn)用,設(shè)計原理:采用TO端口用工作方式一來進(jìn)行終端定時;采用查表方式把寄存器中的累加時鐘送到LCD顯示器來完成數(shù)字時鐘的顯示并引入外部中斷和內(nèi)部系統(tǒng)的
2、查詢分別來實(shí)現(xiàn)分和時的設(shè)置(一)課程設(shè)計內(nèi)容及步驟1,程序整體結(jié)構(gòu)主程序計時中斷外部中斷LCD顯示程序2,外部中斷實(shí)現(xiàn)時分位調(diào)整程序框圖NNNNNAcc,PSW進(jìn)棧分按鍵識別?MIN加1MIN=0MIN=60?顯示數(shù)據(jù)處理時按鍵識別?HOUR+1HOUR=0HOUR=24?顯示數(shù)據(jù)處理出棧返回主程序3,T0計時中斷處理程序框圖NNNN開T0中斷TIME-1TIME=0?sec加1sec=60?sec=0,并MIN加1MIN=60?MIN=0,并HOUR加1HOUR=24?HOUR=0顯示數(shù)據(jù)處理中斷返回T0中斷賦初值定義中斷次數(shù)
3、TIME=20內(nèi)部中斷一次4,硬件電路的連接(一)課程設(shè)計結(jié)論與誤差分析可以顯示數(shù)字時鐘且可以進(jìn)行分、時的設(shè)計。單片機(jī)可以運(yùn)用很少的外圍電路實(shí)現(xiàn)復(fù)雜的功能。定時/計時器對于時間的設(shè)定很準(zhǔn)確。但是在計數(shù)上海存在一定的誤差。在該設(shè)計中我們采用方式一50ms中斷一次一共中斷20次。由于機(jī)器碼在執(zhí)行時耗用機(jī)器周期使得每一次的中斷計數(shù)大于50ms。改進(jìn)方法:代碼在執(zhí)行時一個機(jī)器周期為1us,因此對代碼進(jìn)行累計計時來設(shè)定中斷次數(shù)經(jīng)過不斷的跳轉(zhuǎn)大概有4500um的延遲機(jī)器周期,側(cè)考慮機(jī)器周期我們應(yīng)該把中斷次數(shù)設(shè)為18更合理,此時的誤差率是98
4、.1%(次誤差分析僅從機(jī)器代碼耗時上考慮)。程序設(shè)計思路由于采用的查詢的方式,因此會占有大量的cup(二)心得體會通過這次的設(shè)計使我認(rèn)識到我對單片機(jī)方面的知識知道的太少了,對于書本上的很多知識還不能靈活運(yùn)用,有很多我們需要掌握的知識在等著我去學(xué)習(xí),我會在以后的學(xué)習(xí)生活中彌補(bǔ)我所缺少的知識。本次的設(shè)計使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實(shí)踐的轉(zhuǎn)化,怎樣將我所學(xué)到的知識運(yùn)用到我以后的工作中去。在大學(xué)的課堂的學(xué)習(xí)只是在給我們灌輸專業(yè)知識,而我們應(yīng)把所學(xué)的用到我們現(xiàn)實(shí)的生活中去,此次的電子時鐘設(shè)計給我奠定了一個實(shí)踐基礎(chǔ),我
5、會在以后的學(xué)習(xí)、生活中磨練自己,使自己適應(yīng)于以后的競爭。(一)參考文獻(xiàn)1)張毅剛編.《單片機(jī)原理及應(yīng)用》[M].北京:高等教育出版社,2003.2)張毅剛編.《單片機(jī)原理與應(yīng)用設(shè)計》[M].沈陽:哈工大出版社,2008.3)周景潤編著.基于Proteus的單片機(jī)設(shè)計與仿真[M].北京:北京航空航天出版社,2007.4)徐愛均編著.KeilCx51V7.0單片機(jī)高級語言編程與uVision2應(yīng)用實(shí)踐[M].電子工業(yè)出版社,2004.6.5)王韌,俞斌簡易電子鐘的設(shè)計[J].《電子世界》2005年7期(二)附錄(程序源代碼);***
6、**********************************************;;完成時間:2010年6月22;**************************************************TIMEEQU30HSECEQU31HMINEQU32HHOUREQU33HORG0000HLJMPMAINORG0003H;外部中斷0入口LJMPINT_0ORG000BH;定時/計數(shù)器T0入口LJMPINTORG0030HMAIN:MOVSP,#60H;置堆棧指針LCALLCHUSHIRDATA:LCA
7、LLBUSYMOVDPTR,#TABLE;讀入表首地址MOVA,R0MOVCA,@A+DPTRMOVDPTR,#0100HMOVX@DPTR,AINCR0CJNEA,#00H,RDATAACALLBUSYLOOP:MOVDPTR,#0000HMOVA,#0C4H;置光標(biāo)于第二行首顯示MOVX@DPTR,ALCALLBUSYMOVDPTR,#0100HMOVA,HOURLCALLYIYILCALLBUSYMOVA,#3AH;顯示冒號MOVX@DPTR,ALCALLBUSYMOVA,MINLCALLYIYILCALLBUSYMOVA
8、,#3AH;顯示冒號MOVX@DPTR,ALCALLBUSYMOVA,SECLCALLYIYILJMPLOOPYIYI:MOVB,#10;對時鐘的時分秒位數(shù)值處理程序DIVAB;高位放A,低位放BADDA,#30HMOVDPTR,#0100HMOVX@DPTR,