版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)原理課程設(shè)計</b></p><p> 課題名稱:用數(shù)碼管顯示實時日歷時鐘的設(shè)計 </p><p> 專業(yè)班級:電子信息科學(xué)與技術(shù)(2)班 </p><p> 學(xué)生學(xué)號: </p><p> 學(xué)生
2、姓名: </p><p> 設(shè)計時間:2013年6月15日</p><p> 基于DS1302的數(shù)碼管顯示數(shù)字鐘設(shè)計</p><p> 本次設(shè)計的硬件電路由主控部分(單片機(jī)MCS-51)、計時部分(實時時鐘芯片DS1302)、調(diào)試部分3個部分組成。</p><p> 一、 主控部分(單片機(jī)MCS-51)</p>
3、<p> MCS-51單片機(jī)作為主控芯片,控制整個電路的運(yùn)行。其外圍電路主要有兩部分:復(fù)位電路和晶體振蕩器。</p><p> 圖1、 主控部分電路圖</p><p> 二 、計時部分(實時時鐘芯片DS1302)</p><p> 時鐘芯片DS1302與外圍電路的連接:與MCS-51單片機(jī)的接口是由3條線來完成的,MCS-51單片機(jī)的P1.0與
4、時鐘芯片的數(shù)據(jù)傳輸端I/O相連,P1.1用來作為DS1302輸入時鐘SCLK控制端,P1.2控制DS1302的復(fù)位輸入端RST。只有在SCLK為低電平時,才能將RST置為高電平。</p><p> 圖 2、計時部分電路圖</p><p> 圖 3、原理部分電路 </p><p><b> 三、調(diào)試部分</b><
5、/p><p><b> 四、源程序</b></p><p> IO EQU P1.0 ;實時時鐘數(shù)據(jù)線引腳</p><p> SCLK EQU P1.1 ;實時時鐘時鐘線引腳</p><p> RST EQU P1.2 ;實時時鐘復(fù)位線引腳 </p>
6、<p> SECOND EQU 40H</p><p> MINUTE EQU 41H</p><p> HOUR EQU 42H</p><p> DAY EQU 43H </p><p> MONTH EQU 44H</p>&
7、lt;p> WEEK EQU 45H</p><p> YEAR EQU 46H </p><p> ORG 0000H</p><p> JMP MAIN</p><p> ORG 0003H</p><p> jmp INT_0</p>
8、<p> ORG 0020H</p><p> MAIN:CLR IT0</p><p><b> SETB EX0</b></p><p><b> SETB EA</b></p><p> LCALL GET ;從DS1302讀取時間</p>
9、<p><b> DISPALY:</b></p><p> MOV a,40H ;顯示秒</p><p> ANL a,#0FH ;低位保留</p><p><b> lcall www</b></p><p> lcall delay</p
10、><p> mov a,40h</p><p> anl a,#0f0h</p><p> swap a ;高位低位互換</p><p><b> lCALL aaa</b></p><p> lcall delay</p><p>
11、 MOV a,41H ;顯示分</p><p> ANL a,#0FH ;低位保留</p><p> lcall wwwf</p><p> lcall delay</p><p> mov a,41h</p><p> anl a,#0f0h</p><
12、p> swap a ;高位低位互換</p><p> lCALL aaaf</p><p> lcall delay</p><p> MOV a,42H ;顯示時</p><p> ANL a,#0FH ;低位保留</p><p> lcall www
13、s</p><p> lcall delay</p><p> mov a,42h</p><p> anl a,#0f0h</p><p> swap a ;高位低位互換</p><p> lCALL aaas</p><p> lcall delay&
14、lt;/p><p> ljmp main</p><p><b> sjmp $</b></p><p><b> INT_0: </b></p><p> MOV a,43H ;顯示日</p><p> ANL a,#0FH ;低位保留
15、</p><p> lcall wwwr</p><p> mov a,43h</p><p> anl a,#0f0h</p><p> swap a ;高位低位互換</p><p> lCALL aaar</p><p> lcall delay<
16、;/p><p> MOV a,44H ;顯示月</p><p> ANL a,#0FH ;低位保留</p><p> lcall wwwy</p><p> lcall delay</p><p> mov a,44h</p><p> anl a,#0
17、f0h ;高位低位互換</p><p> swap a </p><p> lCALL aaay</p><p> lcall delay</p><p> MOV a,46H ;顯示年</p><p> ANL a,#0FH ;低位保留</p>
18、<p> lcall wwwn</p><p> lcall delay</p><p> mov a,46h</p><p> anl a,#0f0h</p><p> swap a ;高位低位互換</p><p> lCALL aaan</p>&
19、lt;p> lcall delay</p><p><b> RETI</b></p><p> ??;把寄存器中的內(nèi)容傳給74ls164的子程序</p><p> www: ;給秒的低四位數(shù)碼管賦值</p><p> mov 49h,#8h</p>
20、<p><b> lcall L0</b></p><p><b> eee:</b></p><p> jb acc.7,rrr</p><p> clr p0.0</p><p><b> jmp ttt</b></p>
21、<p><b> rrr:</b></p><p> setb p0.0</p><p><b> ttt: </b></p><p> clr p2.0</p><p> setb p2.0</p><p><b> rl a&
22、lt;/b></p><p> djnz 49h,eee</p><p><b> ret</b></p><p> aaa: ;給秒的高四位數(shù)碼管賦值</p><p> mov 49h,#8h</p><p><b>
23、lcall L0</b></p><p><b> sss:</b></p><p> jb acc.7,ddd</p><p> clr p0.1</p><p><b> jmp fff</b></p><p><b> dd
24、d:</b></p><p> setb p0.1</p><p> fff: clr p2.1</p><p> setb p2.1</p><p><b> rl a</b></p><p> djnz 49h,sss</p><p&
25、gt;<b> ret</b></p><p> wwwf: ;給分的低四位數(shù)碼管賦值</p><p> mov 49h,#8h</p><p><b> lcall L0</b></p><p><b> eeef:</b&
26、gt;</p><p> jb acc.7,rrrf</p><p> clr p0.2</p><p> jmp tttf</p><p><b> rrrf:</b></p><p> setb p0.2</p><p><b>
27、tttf: </b></p><p> clr p2.2</p><p> setb p2.2</p><p><b> rl a</b></p><p> djnz 49h,eeef</p><p><b> ret</b></p&
28、gt;<p> aaaf: ;給分的高四位數(shù)碼管賦值</p><p> mov 49h,#8h</p><p><b> lcall L0</b></p><p><b> sssf:</b></p><p> jb ac
29、c.7,dddf</p><p> clr p0.3</p><p> jmp ffff</p><p><b> dddf:</b></p><p> setb p0.3</p><p><b> ffff: </b></p><
30、;p> clr p2.3</p><p> setb p2.3</p><p><b> rl a</b></p><p> djnz 49h,sssf</p><p><b> ret</b></p><p> wwws:
31、 ;給時的低四位數(shù)碼管賦值</p><p> mov 49h,#8h</p><p><b> lcall L0</b></p><p><b> eees:</b></p><p> jb acc.7,rrrs</p><p> clr
32、 p0.4</p><p> jmp ttts</p><p><b> rrrs:</b></p><p> setb p0.4</p><p><b> ttts: </b></p><p> clr p2.4</p><p
33、> setb p2.4</p><p><b> rl a</b></p><p> djnz 49h,eees</p><p><b> ret</b></p><p> aaas: ;給時的高四位數(shù)碼管賦值</p>&
34、lt;p> mov 49h,#8h</p><p><b> lcall L0</b></p><p><b> ssss:</b></p><p> jb acc.7,ddds</p><p> clr p0.5</p><p> jmp
35、 fffs</p><p><b> ddds:</b></p><p> setb p0.5</p><p><b> fffs: </b></p><p> clr p2.5</p><p> setb p2.5</p><p&
36、gt;<b> rl a </b></p><p> djnz 49h,ssss</p><p><b> ret</b></p><p> wwwr: ;給日的低四位數(shù)碼管賦值</p><p> mov 49h,#8h</p
37、><p><b> lcall L0</b></p><p><b> eeer:</b></p><p> jb acc.7,rrrr</p><p> clr p0.0</p><p> jmp tttr</p><p><
38、;b> rrrr:</b></p><p> setb p0.0</p><p><b> tttr: </b></p><p> clr p2.0</p><p> setb p2.0</p><p><b> rl a</b&g
39、t;</p><p> djnz 49h,eeer</p><p><b> ret</b></p><p> aaar: ;給日的高四位數(shù)碼管賦值</p><p> mov 49h,#8h</p><p><b> lcall
40、L0</b></p><p><b> sssr:</b></p><p> jb acc.7,dddr</p><p> clr p0.1</p><p> jmp fffr</p><p><b> dddr:</b></p>
41、;<p> setb p0.1</p><p><b> fffr: </b></p><p> clr p2.1</p><p> setb p2.1</p><p><b> rl a</b></p><p> djnz 49
42、h,sssr</p><p><b> ret</b></p><p> wwwy: ;給月的低四位數(shù)碼管賦值</p><p> mov 49h,#8h</p><p><b> lcall L0</b></p><p>&
43、lt;b> eeey:</b></p><p> jb acc.7,rrry</p><p><b> clr p0.2</b></p><p><b> jmp ttty</b></p><p><b> rrry:</b></p>
44、<p><b> setb p0.2</b></p><p><b> ttty: </b></p><p><b> clr p2.2</b></p><p><b> setb p2.2</b></p><p><b>
45、; rl a</b></p><p> djnz 49h,eeey</p><p><b> ret</b></p><p> aaay: ;給月的高四位數(shù)碼管賦值</p><p> mov 49h,#8h</p><p><
46、b> lcall L0</b></p><p><b> sssy:</b></p><p> jb acc.7,dddy</p><p><b> clr p0.3</b></p><p><b> jmp fffy</b></p>
47、<p><b> dddy:</b></p><p><b> setb p0.3</b></p><p><b> fffy: </b></p><p><b> clr p2.3</b></p><p><b> s
48、etb p2.3</b></p><p><b> rl a</b></p><p> djnz 49h,sssy</p><p><b> ret</b></p><p> wwwn: ;給年的低四位數(shù)碼管賦值</p>
49、<p> mov 49h,#8h</p><p><b> lcall L0</b></p><p><b> eeen:</b></p><p> jb acc.7,rrrn</p><p><b> clr p0.4</b></p><
50、;p><b> jmp tttn</b></p><p><b> rrrn:</b></p><p><b> setb p0.4</b></p><p><b> tttn: </b></p><p><b> clr
51、p2.4</b></p><p><b> setb p2.4</b></p><p><b> rl a</b></p><p> djnz 49h,eeen</p><p><b> ret</b></p><p> aaan:
52、 ;給年的高四位數(shù)碼管賦值</p><p> mov 49h,#8h</p><p><b> lcall L0</b></p><p><b> sssn:</b></p><p> jb acc.7,dddn</p><p&
53、gt;<b> clr p0.5</b></p><p><b> jmp fffn</b></p><p><b> dddn:</b></p><p><b> setb p0.5</b></p><p><b> fffn:
54、 </b></p><p><b> clr p2.5</b></p><p><b> setb p2.5</b></p><p><b> rl a</b></p><p> djnz 49h,sssn</p><p><b
55、> ret</b></p><p> delay: ;延時60ms</p><p> mov 47h,#60</p><p> lop11:mov 48h,#0ffh</p><p> lop22:nop</p><p><b> nop&
56、lt;/b></p><p> djnz 48h,lop22</p><p> djnz 47h,lop11</p><p><b> ret</b></p><p> ;判斷時鐘每位是幾(1,2,3,4,5,6,7,8,,9,)</p><p> L0:cjne a,#0h,L
57、1</p><p> mov a,#0c0h</p><p><b> ret</b></p><p> L1:cjne a,#1h,L2</p><p> mov a,#0f9h</p><p><b> ret</b></p><p>
58、 L2:cjne a,#2h,L3</p><p> mov a,#0a4h</p><p><b> ret</b></p><p> L3:cjne a,#3h,L4</p><p> mov a,#0b0h</p><p><b> ret</b><
59、;/p><p> L4:cjne a,#4h,L5</p><p> mov a,#99h</p><p><b> ret</b></p><p> L5:cjne a,#5h,L6</p><p> mov a,#92h</p><p><b>
60、ret</b></p><p> L6:cjne a,#6h,L7</p><p> mov a,#82h</p><p><b> ret</b></p><p> L7:cjne a,#7h,L8</p><p> mov a,#0f8h</p><
61、;p><b> ret</b></p><p> L8:cjne a,#8h,L9</p><p> mov a,#80h</p><p><b> ret</b></p><p> L9: mov a,#90h</p><p><b> RET
62、</b></p><p> 從DS1302讀取時間</p><p><b> GET:</b></p><p> MOV R0,#40H </p><p> MOV R1,#81H ;DS1302中讀時間的首地址</p><p> MOV
63、 R7,#7</p><p><b> GETLOOP:</b></p><p> CLR RST</p><p><b> nop</b></p><p> CLR SCLK</p><p><b> nop</b>&l
64、t;/p><p> SETB RST</p><p><b> nop</b></p><p> MOV B,R1 </p><p> LCALL WRITE ;寫命令字</p><p> LCALL READ ;讀時間<
65、/p><p> MOV @R0,A </p><p> ;將從DS1302中讀取的時間從內(nèi)存中保存</p><p> INC R0 ;修改地址指針</p><p> INC R1</p><p> INC R1</p>&
66、lt;p> SETB SCLK</p><p><b> nop</b></p><p> CLR RST</p><p><b> nop</b></p><p> DJNZ R7,GETLOOP</p><p><b> R
67、ET</b></p><p> WRITE: </p><p> MOV 30H,#8 ;寫入命令子程序DS1302</p><p><b> LOP1:</b></p><p><b> MOV A,B</b></p
68、><p><b> RRC A</b></p><p><b> MOV B,A</b></p><p> MOV P1.0,C</p><p> SETB P1.1</p><p> CLR P1.1</p><p> DJ
69、NZ 30H,LOP1</p><p> RET </p><p> READ: ;讀出數(shù)據(jù)子程序DS1302</p><p> MOV 30H,#8 </p><p> LOP2:
70、 </p><p> MOV C,P1.0</p><p><b> RRC A</b>&
71、lt;/p><p> SETB P1.1</p><p> CLR P1.1</p><p> DJNZ 30H,LOP2</p><p> RET </p><p><b> END</b></p><p><b>
72、 五、心得體會</b></p><p> 通過本次設(shè)計,使我們對單片機(jī)的了解有了更加深一步,我發(fā)現(xiàn)只有動手做才會孰能技巧,還有對材料的整理和理解。這次設(shè)計運(yùn)用到的知識很多方面,尤其是單片機(jī),像AT89C51,引腳多,硬件內(nèi)部線路接通,所以用起來很方便,還有ds1302芯片與單片機(jī)之間的連接,以及如入使用ds1302芯片。當(dāng)然也要對這些元器件作相應(yīng)調(diào)查。主要就是電路原理圖,還有對引腳的作用熟悉。對于
73、軟件方面則是靈活運(yùn)用單片機(jī)有關(guān)的程序語言,還有很多擴(kuò)展功能,由于知識匱乏,但是理論知識還是比較詳細(xì)的。我們最大的成功之處是在這整個過程,動腦尋求解決一個一個問題的辦法,對程序是不斷思索,務(wù)必寫出很簡單的程序來,使得電子時鐘能做成功!</p><p><b> 參考文獻(xiàn)</b></p><p> 《單片機(jī)原理及其接口技術(shù)》(第二版) 清華大學(xué)出版社</p&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ds12rc887時鐘數(shù)碼管
- 數(shù)碼管時鐘顯示按鍵調(diào)時間
- 項目二數(shù)碼管時鐘顯示器
- 基于ds1302實時日歷時鐘顯示系統(tǒng)畢業(yè)設(shè)計說明書
- 數(shù)碼管顯示課程設(shè)計報告
- plc數(shù)碼管顯示課程設(shè)計
- 數(shù)碼管學(xué)號滾動顯示課程設(shè)計
- 用lcd顯示實時日歷時鐘單片機(jī)課程設(shè)計
- 用lcd顯示實時日歷時鐘單片機(jī)課程設(shè)計
- 課程設(shè)計---單只數(shù)碼管循環(huán)顯示設(shè)計
- 用led數(shù)碼管顯示的秒表設(shè)計
- eda技術(shù)課程設(shè)計--數(shù)碼管顯示數(shù)字鐘設(shè)計
- 兩位數(shù)碼管顯示課程設(shè)計
- 數(shù)碼管按鍵顯示
- led數(shù)碼管顯示
- 兩位數(shù)碼管顯示設(shè)計-課程設(shè)計
- 單片機(jī)技術(shù)課程設(shè)計報告(數(shù)碼管電子時鐘)
- proteus仿真論文-動態(tài)數(shù)碼管時鐘仿真
- 數(shù)字電子技術(shù)數(shù)碼管課程設(shè)計---數(shù)碼管設(shè)計及原理分析
- 基于ds1302顯示時鐘硬件技術(shù)綜合課程設(shè)計
評論
0/150
提交評論