課程設(shè)計(jì)(論文)基于單片機(jī)的倒計(jì)時(shí)牌的設(shè)計(jì)_第1頁(yè)
課程設(shè)計(jì)(論文)基于單片機(jī)的倒計(jì)時(shí)牌的設(shè)計(jì)_第2頁(yè)
課程設(shè)計(jì)(論文)基于單片機(jī)的倒計(jì)時(shí)牌的設(shè)計(jì)_第3頁(yè)
課程設(shè)計(jì)(論文)基于單片機(jī)的倒計(jì)時(shí)牌的設(shè)計(jì)_第4頁(yè)
課程設(shè)計(jì)(論文)基于單片機(jī)的倒計(jì)時(shí)牌的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、目錄1. 方案選擇21.1題目:倒計(jì)時(shí)牌 21.2要求 21.3 總體設(shè)計(jì) 21.4功能說(shuō)明 22.硬件原理電路圖的設(shè)計(jì)及分析2 2.1 模塊方框圖 2 2.2 電路圖 33程序設(shè)計(jì)及分析 3 3.1 軟件系統(tǒng)模塊圖 3 3.2各子程序設(shè)計(jì)4 3.2.1主程序4 3.2.2轉(zhuǎn)換子程序及顯示子程序模塊 5 3.2.3 定時(shí)器t0中斷 6 3.2.4 外部中斷0 7 3.2.5 外部中斷18 3.2.6 延時(shí)子程序 104. 參考文獻(xiàn) 105. 源程序 11倒計(jì)時(shí)牌1.方案選擇1.1題目:倒計(jì)時(shí)牌1.2要求:(1)實(shí)現(xiàn)日歷功能;(2)顯示距倒計(jì)時(shí)時(shí)刻還有多長(zhǎng)時(shí)間(顯示天、時(shí)、分、秒);(3) 倒計(jì)

2、時(shí)的時(shí)間可人為設(shè)定;1.3 總體設(shè)計(jì):本倒計(jì)時(shí)牌以at89c51單片機(jī)作為核心,最長(zhǎng)可以倒計(jì)時(shí)100天。可以顯示距倒計(jì)時(shí)時(shí)刻還有多長(zhǎng)時(shí)間,顯示格式為天(十位,個(gè)位)、時(shí)(十位、個(gè)位)、分(十位、個(gè)位)、秒(十位、個(gè)位);倒計(jì)時(shí)的時(shí)間可以人為設(shè)定;另外還可以顯示當(dāng)前的日歷,顯示格式為年(四位),月(兩位),日(兩位)。倒計(jì)時(shí)設(shè)置時(shí)間時(shí)的位切換、設(shè)定數(shù)值、啟動(dòng)定時(shí)器、切換日歷通過(guò)外部中斷來(lái)實(shí)現(xiàn)。倒計(jì)時(shí)牌天、時(shí)、分、秒的計(jì)時(shí)分別利用100、24、60、60進(jìn)制自減計(jì)數(shù)來(lái)實(shí)現(xiàn)。倒計(jì)時(shí)的顯示電路由led數(shù)碼管組成, 利用8只數(shù)碼管顯示,從左至右依次顯示為天(十位,個(gè)位)、時(shí)(十位、個(gè)位)、分(十位、個(gè)位

3、)、秒(十位、個(gè)位)及年(四位),月(兩位),日(兩位)。1.4功能說(shuō)明1、倒計(jì)時(shí)牌具有兩種工作狀態(tài):設(shè)置狀態(tài)和運(yùn)行狀態(tài);2、倒計(jì)時(shí)牌上電后,顯示全零;3、設(shè)置倒計(jì)時(shí)時(shí)間時(shí),按k1鍵,開始設(shè)置時(shí)間,這是設(shè)置的是秒,按一下k2鍵,秒加1;再按k1鍵,設(shè)置分,依此類推;設(shè)置完天后,按k1鍵則啟動(dòng)定時(shí)器,開始倒計(jì)時(shí)。4、在倒計(jì)時(shí)牌運(yùn)行狀態(tài)下,按k2鍵,顯示當(dāng)前的日期(年,月,日),再按一下,回到倒計(jì)時(shí)時(shí)間顯示。注:int0對(duì)應(yīng)的開關(guān)為位切換/啟動(dòng)按鈕k1;int1對(duì)應(yīng)的開關(guān)為修改/日歷切換按鈕k2。 本系統(tǒng)最長(zhǎng)可倒計(jì)時(shí)100天,可通過(guò)外部中斷設(shè)置初始時(shí)間,及顯示當(dāng)前日歷。本系統(tǒng)在設(shè)計(jì)時(shí)考慮到只需倒計(jì)

4、時(shí)100天,所以顯示的日歷只是最近3個(gè)月的,并且初始日期是在程序中設(shè)置的,即不能任意設(shè)定初始值。2.硬件原理電路圖的設(shè)計(jì)及分析倒計(jì)時(shí)牌硬件系統(tǒng)的設(shè)計(jì),關(guān)鍵是其顯示器接口電路的設(shè)計(jì),本設(shè)計(jì)采用直接利用單片機(jī)at89c51的并行i/o口構(gòu)成倒計(jì)時(shí)牌顯示接口電路,其硬件系統(tǒng)主要包括單片機(jī)(包含晶振、電源)、控制電路(設(shè)置初始時(shí)間以及日歷切換)及顯示接口電路。2.1 模塊方框圖硬件系統(tǒng)數(shù)碼管單片機(jī)晶振電源2.2 電路圖 3程序設(shè)計(jì)及分析3.1 軟件系統(tǒng)模塊圖軟件系統(tǒng)主程序顯示子程序t0溢出中斷外部中斷0轉(zhuǎn)換子程序外部中斷1延時(shí)子程序3.2各子程序設(shè)計(jì)3.2.1主程序主程序(main)的主要功能是初始化

5、程序、轉(zhuǎn)換子程序和調(diào)用延時(shí)子程序以及數(shù)碼管的斷碼表,其流程圖如下:初始化開 始轉(zhuǎn)換子程序顯示子程序調(diào)用延時(shí)程序代碼(加注釋)如下:main: mov tmod,#01h;定時(shí)器t0設(shè)為方式一 mov r1,#17;日歷 mov r2,#00h;切換顯示(日歷和倒計(jì)時(shí)的切換) mov r5,#0ah;十次中斷產(chǎn)生一秒 mov r3,#00h;利用外部中斷0對(duì)天、時(shí)、分、秒進(jìn)行切換 mov r4,#00h;當(dāng)?shù)褂?jì)時(shí)開始(r3=5)時(shí)對(duì)倒計(jì)時(shí)的初值不能再進(jìn)行設(shè)置 mov 30h,#00h;天 mov 31h,#00h;時(shí) mov 32h,#00h;分 mov 33h,#00h;秒 mov 34h,#

6、20;年的前兩位 mov 35h,#09;年的后兩位 mov 36h,#06;月 mov 37h,#17;日 setb ex0 setb ex1 setb it0;外部中斷0為邊沿觸發(fā) setb it1 ;外部中斷1為邊沿觸發(fā) setb et0 setb ea mov th0,#3ch ;定時(shí)器t0置初值 mov tl0,#0b0h/*下面為轉(zhuǎn)換子程序*/loop:/*下面為顯示程序*/ disply: /*下面為延時(shí)程序*/ dl1ms:mov r7,#02hdl: mov r6,#0ffhdl6: djnz r6,dl6 djnz r7,dl ret3.2.2轉(zhuǎn)換子程序及顯示子程序模塊轉(zhuǎn)換

7、子程序(loop)將中斷服務(wù)程序中產(chǎn)生的天、時(shí)、分、秒數(shù)據(jù),轉(zhuǎn)換成適應(yīng)led數(shù)碼管顯示的數(shù)據(jù),并將其存放在緩沖區(qū)中;各個(gè)要顯示的單元都存放在數(shù)據(jù)緩沖區(qū)中,如下表:顯示子程序(disply)動(dòng)態(tài)控制數(shù)碼管的點(diǎn)亮同時(shí)顯示數(shù)據(jù),完成8個(gè)led數(shù)碼管的動(dòng)態(tài)顯示,顯示字符通過(guò)查表方式實(shí)現(xiàn),在顯示過(guò)程中調(diào)用延時(shí)程序;各顯示單元顯示前須將其數(shù)據(jù)由存放地址單元拆分后傳送至顯示緩沖區(qū)中,再將其傳送至對(duì)應(yīng)的端口。下面是秒的轉(zhuǎn)換子程序和顯示模塊loop: mov dptr,#dmb ;段碼表首地址放進(jìn)dptr mov a,33h ;對(duì)秒進(jìn)行拆分 mov b,#10 div ab movc a,a+dptr mov

8、46h,a ;秒的十位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)46h mov a,b movc a,a+dptr mov 47h,a ;秒的個(gè)位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)47h/*下面為顯示程序*/ disply: clr p2.7 mov a,47h mov p1,a lcall dl1ms setb p2.7 clr p2.6 mov a,46h mov p1,a lcall dl1ms setb p2.63.2.3 定時(shí)器t0中斷定時(shí)器t0溢出中斷(it0p)程序主要用于產(chǎn)生秒的時(shí)間基準(zhǔn), 以及在此基礎(chǔ)上的天、時(shí)、分、秒的正常倒計(jì)時(shí)以及日期的累加。流程圖如下:開 始設(shè)置初值是否到一秒秒減1秒是否減至-1將秒置為5

9、9,分減1分是否減至-1將分置為59,時(shí)減1時(shí)是否減至-1將時(shí)置為23,天減1,日期加1中斷返回3.2.4 外部中斷0:外部中斷0(int0p)用于設(shè)置倒計(jì)時(shí)牌時(shí)間時(shí)切換各個(gè)位以及開啟定時(shí)器,其中切換時(shí)以r3為標(biāo)志位,標(biāo)志位單元取值實(shí)現(xiàn)功能r30初始化值r31設(shè)置秒單元r32設(shè)置分單元r33設(shè)置時(shí)單元r34設(shè)置天單元r35啟動(dòng)定時(shí)器,開始倒計(jì)時(shí)其中涉及到標(biāo)志位r4,標(biāo)志位單元取值實(shí)現(xiàn)功能r4 0初始化值,此時(shí)可以設(shè)置時(shí)間r4 1倒計(jì)時(shí)運(yùn)行狀態(tài),此時(shí)不能設(shè)置時(shí)間其流程圖如下:外部中斷0開始r3加1r3等于5嗎,開啟t0,開始倒計(jì)時(shí),r3清零,r4置為1中斷返回3.2.5 外部中斷1:外部中斷1(

10、int1p)程序主要用于天、時(shí)、分和秒的修改,按一次加1。其中涉及到標(biāo)志位r2,工作組寄存器數(shù)值功能r20送倒計(jì)時(shí)時(shí)間r21送當(dāng)前日歷r22清0其流程圖如下:外部中斷1 開始r4是否為0r3是否為0r3是否為1秒單元加1秒加到60了嗎mmama 嗎秒單元清0r3是否為2分單元加1分加到60了嗎分單元清0r3是否為3時(shí)單元加1時(shí)加到24了嗎時(shí)單元清0r3是否為4天單元加1天加到100了嗎天單元清0中斷返回r2+1,r2等于2嗎r2 清03.2.6 延時(shí)子程序 延時(shí)程序(dl1ms)主要用于數(shù)碼管顯示時(shí)延時(shí),其流程圖如下開 始設(shè)置循環(huán)次數(shù)2設(shè)置循環(huán)次數(shù)0ffh0ffh自減是否為0r7自減是否為0結(jié)

11、束程序如下:dl1ms:mov r7,#02hdl: mov r6,#0ffhdl6: djnz r6,dl6 djnz r7,dl ret6. 參考文獻(xiàn)張毅剛單片機(jī)原理及應(yīng)用(第一版)高等教育出版社,2008年5、源程序 /*該程序最多可產(chǎn)生100天的倒計(jì)時(shí),采用6mhz的晶振,外部中斷0對(duì)初值設(shè)置時(shí) 的各單元進(jìn)行切換,同時(shí)還控制t0的開始;外部中斷1對(duì)相應(yīng)的單元設(shè)置初值,每按一次該單元增加1。r3=1設(shè)置秒單元,r3=2設(shè)置分單元,r3=4設(shè)置時(shí)單元,r3=4設(shè)置天單元,r3=5,t0開始計(jì)時(shí)。*/ org 0000h ljmp main org 0003h ljmp int0p org

12、00bh ljmp it0p org 0013h ljmp int1p org 0100hmain: mov tmod,#01h;定時(shí)器t0設(shè)為方式一 mov r1,#17;日歷 mov r2,#00h;切換顯示(日歷和倒計(jì)時(shí)的切換) mov r5,#0ah;十次中斷產(chǎn)生一秒 mov r3,#00h;利用外部中斷0對(duì)天、時(shí)、分、秒進(jìn)行切換 mov r4,#00h;當(dāng)?shù)褂?jì)時(shí)開始(r3=5)時(shí)對(duì)倒計(jì)時(shí)的初值不能再進(jìn)行設(shè)置 mov 30h,#00h;天 mov 31h,#00h;時(shí) mov 32h,#00h;分 mov 33h,#00h;秒 mov 34h,#20;年的前兩位 mov 35h,#09

13、;年的后兩位 mov 36h,#06;月 mov 37h,#17;日 setb ex0 setb ex1 setb it0;外部中斷0為邊沿觸發(fā) setb it1 ;外部中斷1為邊沿觸發(fā) setb et0 setb ea mov th0,#3ch ;定時(shí)器t0置初值 mov tl0,#0b0hloop: mov dptr,#dmb ;段碼表首地址放進(jìn)dptr mov a,33h ;對(duì)秒進(jìn)行拆分 mov b,#10 div ab movc a,a+dptr mov 46h,a ;秒的十位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)46h mov a,b movc a,a+dptr mov 47h,a ;秒的個(gè)位對(duì)應(yīng)的段

14、碼放進(jìn)緩沖區(qū)47h mov a,32h ;對(duì)分進(jìn)行拆分 mov b,#10 div ab movc a,a+dptr mov 44h,a ;分的十位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)44h mov a,b movc a,a+dptr mov 45h,a ;分的個(gè)位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)45h mov a,31h ;對(duì)時(shí)進(jìn)行拆分 mov b,#10 div ab movc a,a+dptr mov 42h,a ;時(shí)的十位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)42h mov a,b movc a,a+dptr mov 43h,a ;時(shí)的個(gè)位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)43h mov a,30h ;對(duì)天進(jìn)行拆分 mov b,#10 div

15、ab movc a,a+dptr mov 40h,a ;天的十位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)40h mov a,b movc a,a+dptr mov 41h,a ;天的個(gè)位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)41h mov a,37h ;對(duì)日期進(jìn)行拆分 mov b,#10 div ab movc a,a+dptr mov 4eh,a ;日期的十位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)4eh mov a,b movc a,a+dptr mov 4fh,a ;日期的個(gè)位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)4fh mov a,36h ;對(duì)月份進(jìn)行拆分 mov b,#10 div ab movc a,a+dptr mov 4ch,a ;月份的十位對(duì)應(yīng)的段碼

16、放進(jìn)緩沖區(qū)4ch mov a,b movc a,a+dptr mov 4dh,a ;月份的個(gè)位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)4dh mov a,35h ;對(duì)年的后兩位進(jìn)行拆分 mov b,#10 div ab movc a,a+dptr mov 4ah,a ;年的后兩位的十位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)4ah mov a,b movc a,a+dptr mov 4bh,a ;年的后兩位的個(gè)位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)4bh mov a,34h ;對(duì)年的前兩位進(jìn)行拆分 mov b,#10 div ab movc a,a+dptr mov 48h,a ;年的前兩位的十位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)48h mov a,b movc

17、 a,a+dptr mov 49h,a ;年的前兩位的個(gè)位對(duì)應(yīng)的段碼放進(jìn)緩沖區(qū)49h /*下面為顯示程序*/ display: clr p2.7 cjne r2,#00h,s7 mov a,47h sjmp s77s7: mov a,4fh s77: mov p1,a lcall dl1ms setb p2.7 clr p2.6 cjne r2,#00h,s6 mov a,46h sjmp s66s6: mov a,4ehs66: mov p1,a lcall dl1ms setb p2.6 clr p2.5 cjne r2,#00h,s5 mov a,45h sjmp s55s5: mov

18、a,4dhs55: mov p1,a lcall dl1ms setb p2.5 clr p2.4 cjne r2,#00h,s4 mov a,44h sjmp s44s4: mov a,4chs44: mov p1,a lcall dl1ms setb p2.4 clr p2.3 cjne r2,#00h,s3 mov a,43h sjmp s33s3: mov a,4bhs33: mov p1,a lcall dl1ms setb p2.3 clr p2.2 cjne r2,#00h,s2 mov a,42h sjmp s22s2: mov a,4ahs22: mov p1,a lcall

19、 dl1ms setb p2.2 clr p2.1 cjne r2,#00h,s1 mov a,41h sjmp s11s1: mov a,49hs11: mov p1,a lcall dl1ms setb p2.1 clr p2.0 cjne r2,#00h,s0 mov a,40h sjmp s00s0: mov a,48hs00: mov p1,a lcall dl1ms setb p2.0 ljmp loop it0p: mov th0,#3ch mov tl0,#0b0h djnz r5,return mov r5,#0ah mov a,33h dec a mov 33h,a cjn

20、e a,#0ffh,return mov 33h,#3bh mov a,32h dec a mov 32h,a cjne a,#0ffh,return mov 32h,#3bh mov a,31h dec a mov 31h,a cjne a,#0ffh,return mov 31h,#17h mov a,30h dec a mov 30h,a push acc mov a,37h inc a inc r1 mov 37h,a cjne r1,#31,go1 mov 36h,#07h mov 37h,#01hgo1: cjne r1,#62,go2 mov 36h,#08h mov 37h,#01hgo2: cjne r1,#93,go3 mov 36h,#09h mov 37h,#01hgo3: cjne r1,#123,go4 mov r1,#17 mov 36h,#06h mov 37h,#17 go4: pop acc cjne a,#0ffh,return clr tr0 mov 30h,#00h mov 31h,#00h mov 32h,#00h mov 33h,#00hreturn:reti dl1ms:mov r7,#02hdl: mov r6,#0ffhdl6: djnz r6,dl6 dj

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論