單片機數(shù)字時鐘課程設(shè)計報告_第1頁
單片機數(shù)字時鐘課程設(shè)計報告_第2頁
單片機數(shù)字時鐘課程設(shè)計報告_第3頁
單片機數(shù)字時鐘課程設(shè)計報告_第4頁
單片機數(shù)字時鐘課程設(shè)計報告_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機數(shù)字時鐘設(shè)計目錄1.引言22.關(guān)鍵詞23.內(nèi)容摘要24.設(shè)計內(nèi)容24.1任務(wù)書24.2設(shè)計思路電路原理框圖34.3軟件設(shè)計方面44.4硬件設(shè)計方面45主要元器件的概述46.仿真實現(xiàn)76.1引腳連接(電路連接圖)76.2仿真結(jié)果(電路原理圖)86.3 pcb圖96.4實驗操作97.元件清單108.程序附錄13總結(jié)20參考文獻20【引言】高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英表、石英鐘都采用了石英技術(shù),因此走時精度高、穩(wěn)定性好、使用方便、不需要經(jīng)常調(diào)校。數(shù)字電子時鐘,自從它發(fā)明的那天起,就成為人類的朋友,是人們?nèi)粘I钪斜夭豢缮俚谋匦杵罚瑥V泛用于個人家庭以及車站、航站

2、、劇院、辦公室等公共場所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。但隨著時間的推移,科學(xué)技術(shù)的不斷發(fā)展,生活節(jié)奏越來越快,競爭日益激烈,人們對時間計量的精度要求越來越高,應(yīng)用越來越廣?!緝?nèi)容摘要】本實驗采用lcd液晶屏作為顯示系統(tǒng),以stc89c51單片機為核心,由液晶顯示屏,鍵盤,電容電阻,晶振等元器件組成。所組成的模塊能夠?qū)嶒灂r,分,秒的數(shù)據(jù)顯示,通過程序設(shè)計運用四個按鍵sb0,sb1, sb2, sb3能夠?qū)崿F(xiàn)對數(shù)字時鐘時間的設(shè)置和調(diào)整。本實驗將寫好的軟件燒錄到單片機中,通過單片機來實現(xiàn),是實驗的電路圖更加簡單明了,系統(tǒng)穩(wěn)定性大大提高。【關(guān)鍵詞】單片機,數(shù)字時鐘,中斷,定時,匯編任

3、務(wù)書設(shè)計題目:單片機數(shù)字時鐘設(shè)計主要內(nèi)容與目標(biāo):1:通過單片機內(nèi)定時器控制走時,準(zhǔn)確持續(xù)走時,調(diào)時不影響走時;2:在lcd上顯示時,分,秒;3:通過五個按鍵能夠?qū)r間進行設(shè)定和調(diào)整。具有的設(shè)計基本條件:1:pc機一臺;2:stc89c51單片機一塊;3:keil c調(diào)試環(huán)境、proteus仿真軟件,protel畫圖軟件。計劃設(shè)計進程:1:明確課題對程序功能,運算精度等方面的要求及硬件條件2:把復(fù)雜問題分解為若干模塊,確定各模塊處理方法,畫出流程圖。3:編制程序,根據(jù)流程圖精心選擇合適的指令和尋址方式來編制源程序4:對程序進行匯編,調(diào)試和修改,直到程序運行結(jié)果正確為止。5:購買器材,連接、制作硬

4、件;6:將軟件功能在硬件上得到實現(xiàn),做出數(shù)字鐘實物。設(shè)計思路電路原理框圖:初始化lcd顯示賦值時鐘芯片賦初值是定鬧鐘程序取時鐘否送顯示鍵按下.軟件設(shè)計方面:1:采用模塊化程序結(jié)構(gòu)設(shè)計軟件,首先將整個軟件分成若干功能模塊;2:根據(jù)設(shè)計原理圖編寫程序;3:通過keil軟件編寫調(diào)試程序;4:與硬件一起聯(lián)調(diào),最后完成全部調(diào)試工作。硬件設(shè)計方面:1:將整個硬件系統(tǒng)劃分為若干單元電路,繪出整個邏輯電路,注明單元電路元件接口信號;2:完成各單元電路設(shè)計,包括選擇各類元器件和電路板設(shè)計。主要元件概述:單片機stc89c52概述實驗用到的引腳功能1:電源(1) vcc-芯片電源,接+5v(2) vss-接地端2

5、:時鐘xtal1,xtal2-晶體振蕩電路反向輸入端和輸出端。3:p0口:接lcd進行數(shù)據(jù)顯示p2口:接lcd控制p3口:接按鍵rest功能:復(fù)位信號輸入端單片機引腳圖:1602液晶模塊概述:主要技術(shù)參數(shù)顯示容量:16*2個字符芯片工作電壓:4.55.5v工作電流:2.0ma(5.0v)模塊最佳工作電壓(5.0v)1602各引腳功能:第1腳:vss為地電源。第2腳:vdd接5v正電源。第3腳:v0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,本實驗中通過使用一個10k的電位器調(diào)整對比度。第4腳:rs為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器。第5腳:r

6、w為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。第6腳:e端為使能端,當(dāng)e端由高電平跳變?yōu)榈碗娖綍r,液晶模塊執(zhí)行命令。第714腳:d0d7為8位雙向數(shù)據(jù)線。第1516腳:空腳,可以用來接背光。(15腳接正極,16腳接負極)1602信號真值表rsrwe功能00下降沿寫指令代碼01高電平 讀忙標(biāo)志和ac值10下降沿寫數(shù)據(jù)11高電平讀數(shù)據(jù)仿真實現(xiàn):電路原理圖:仿真效果圖:pcb圖:實驗操作:本時鐘設(shè)置有五個按鍵,其中s1為復(fù)位鍵,s2為調(diào)時移位鍵,s3為移位+,s4為移位-,s5為退出,當(dāng)需要調(diào)時時,摁下s2,可以調(diào)分,再摁下s2就可以調(diào)小時,分別用s3和s4鍵來調(diào)整時間的加減,調(diào)完后摁s5

7、退出元件清單:元件名稱:數(shù)量:stc89c511塊lcd16021塊按鍵5個瓷片電容22pf2個電解電容10uf1個9排阻1個14腳單排插座1個1個dip40插座1個12mhz晶振1個可調(diào)電阻1個10k電阻1個程序附錄:com equ 50h;lcd指令寄存器 dat equ 51h;lcd數(shù)據(jù)寄存器 rs equ p2.4;lcd寄存器選擇信號 rw equ p2.5;lcd讀/寫選擇信號 e equ p2.6 ;lcd使能信號num equ 20h;中斷次數(shù)sec equ 21h;秒min equ 22h;分hou equ 23h;時yiw equ 27h;移位數(shù)單元hou1 equ 28

8、h;小時的十位hou0 equ 29h;小時的個位min1 equ 2bh;分鐘的十位min0 equ 2ch;分鐘的個位sec1 equ 2eh;秒的十位sec0 equ 2fh;秒的個位;-;-主程序開始- org 0000hljmp main org 000bh ;定時器t0中斷入口地址ajmp time ;跳轉(zhuǎn)到中斷服務(wù)程序org 0030hmain:mov sp,#60hlcall int ;調(diào)用lcd間接控制方式下的初始化子程序 mov com,#01h;lcd清0命令 lcall pr1 ;調(diào)用寫命令字程序mov com,#06h;輸入方式命令,光標(biāo)右移 lcall pr1mov

9、 r2,#10h ;共顯示 16個字符 00010000bmov r3,#00hmov 20h,#20h ;中斷次數(shù)mov 21h,#55h ;秒mov 22h,#59h ;分mov 23h,#23h ;時mov 27h,#00h ;移位數(shù)單元 mov ip,#02h ;設(shè)定pt0(定時器0中斷優(yōu)先級設(shè)定位)為高優(yōu)先級,即pt0=1mov ie,#82h ;總禁止位開ea=1.定時器0溢出中斷允許位et01.mov tmod,#01h ;設(shè)定定時器t0工作方式1(gate=0,c/t=0,m1=0,m0=1) mov tl0,#0b0h ;定時器的專用寄存器(sfr)tl0,指定時器t0的低字

10、節(jié) mov th0,#3ch ;定時器的專用寄存器(sfr)th0,指定時器t0的高字節(jié) setb tr0;tr0(tcon.4),定時器0運行控制位,由軟件置位/復(fù)位來開啟和關(guān)閉定時器/計數(shù)器0disp:lcall formatmov com,#80h;設(shè)置ddram地址,首地址為 第一行 第一個字符的地址 80hlcall pr1mov 2ah,#:mov 2dh,#:mov r0,#hou1mov r1,#08htdis:;顯示時間mov a,r0cjne a,#:,goaddtjmp outtgoaddt:add a,#30houtt: mov dat,alcall pr2inc r0

11、djnz r1,tdismov com,#0c0h;設(shè)置ddram地址,首地址為 第一行 第一個字符的地址 xxhlcall pr1mov 32h,#-mov 35h,#-mov r1,#08h ljmp dispformat:;將時間數(shù)據(jù)格式化mov a,sec ;處理秒sec-sec1,sec0 anl a,#0fh;mov sec0,a mov a,21hanl a,#0f0h;swap a;高4位和低4位互換mov sec1,a;秒的十位mov a,min ;處理分鐘min-min1,min0 anl a,#0fh mov min0,a ;分的個位mov a,22h anl a,#0f

12、0h swap a mov min1,a ;分的十位mov a,hou ;處理小時hou-hou1,hou0 anl a,#0fh mov hou0,a mov a,23h anl a,#0f0h swap a mov hou1,a ret time:push acc ;保護現(xiàn)場 push psw mov tl0,#0b0h ;賦定時初值 mov th0,#3chlcall funtion inc num ;中斷次數(shù),滿20次加mov a,numcjne a,#20,reti1 mov 20h,#00h ;一秒鐘時間到,中斷次數(shù)清零 mov a,sec add a,#01h ;秒鐘加一da a

13、 mov sec,a cjne a,#60h,reti1 mov sec,#00h ;一分鐘時間到 ,秒清零mov a,min add a,#01h ;分鐘加一da a mov min,a cjne a,#60h,reti1 mov min,#00h ;一小時時間到 ,分清零 mov a,hou ;小時加一add a,#01h da a mov hou,a cjne a,#24h,reti1 mov hou,#00h ;到時間達到24小時,小時清零.reti1: pop psw ;恢復(fù)現(xiàn)場 pop acc reti ;中斷返回nop nop ;-按鍵判斷子程序-;子程序名:funtion;-f

14、untion:jnb p3.0,fun1;判斷移位鍵是否按下,如按下跳到fun1,沒按判斷27h是否為0mov a,27hcjne a,#00h,fun2;不為零判斷27h是否為1retfun1:lcall delay0 mov a,27h add a,#01hda amov 27h,aclr cmov a,27hmov b,#06hsubb a,bjc fun2mov 27h,#00h retfun2:mov a,27h cjne a,#01h,jud2;判斷27h是否等于2jb p3.1,dec1 ;判斷加法按鍵是否按下,按下22h加1,不按下判斷減是否按下 lcall delay0mov

15、 a,22hadd a,#01hda amov 22h,a;判斷分鐘是否大于60,如果大于60就清零 clr c mov a,22h mov b,#60h subb a,b jc exit2 mov 22h,#00hjmp exit2dec1:;判斷減法按鍵是否按下jb p3.2,exit2dec 22hlcall delay0;判斷分是否小于零,如果小于零就變59 mov a,22h cjne a,#0ffh,su1mov 22h,#59h jmp exit2su1:anl a,#0fh cjne a,#0fh,exit2 anl 22h,#0f0h xrl 22h,#09hjmp exit

16、2jud2: cjne a,#02h,exit;判斷27h是否等于3jb p3.1,dec2 ;判斷加是否按下,按下23h加1,不按下判斷減是否按下 lcall delay0mov a,23hadd a,#01hda amov 23h,a;判斷小時是否大于24,如果大于24就清零 clr c mov a,23h mov b,#25h subb a,b jc exit2 mov 23h,#00hjmp exit2exit2:jmp exitdec2:;判斷減是否按下 jb p3.2,exitdec 23hda alcall delay0;判斷小時是否小于零,如果小于零就變23 mov a,23h

17、 cjne a,#0ffh,su2 mov 23h,#23hjmp exitsu2:anl a,#0fh cjne a,#0fh,exit anl 23h,#0f0h xrl 23h,#09h jmp exit exit:jnb p3.3,fun4;如果exit按下,跳到fun4 ,27h清零retfun4:mov 27h,#00h ret;-;-lcd間接控制方式下的初始化子程序-;-int:lcall delay mov p1,#38h;工作方式設(shè)置指令代碼 clr rsclr rwmov r2,#03;循環(huán)量=3 intt1:setb eclr edjnz r2,intt1mov p1,

18、#38h;工作方式設(shè)置 setb eclr emov com,#38h;工作方式設(shè)置 lcall pr1mov com,#01h;清屏 lcall pr1mov com,#06h;輸入方式命令,光標(biāo)右移 lcall pr1mov com,#0ch;設(shè)置顯示方式 lcall pr1ret;-延時子程序-delay:mov r6,#09hdelay2:mov r7,#3fhdelay1:nopdjnz r7,delay1djnz r6,delay2retdelay0:mov r5,#03h;消除按鍵抖動延時程序mov r6,#0efhmov r7,#0efhwait:djnz r7,waitdjn

19、z r6,waitdjnz r5,waitret;-;-lcd寫指令子程序-;-pr1:push acc clr rssetb rwpr11:mov p0,#0ffhsetb elcall delaynopmov a,p0clr ejb acc.7,pr11clr rwmov p0,comsetb eclr epop accret;-;-lcd寫顯示數(shù)據(jù)子程序-;-pr2:push accclr rssetb rwpr21:mov p0,#0ffhsetb elcall delaymov a,p0 ;讀bf和ac6-0值 clr ejb acc.7,pr21setb rsclr rwmov p0,dat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論