基于單片機(jī)電子時(shí)鐘設(shè)計(jì)_第1頁
基于單片機(jī)電子時(shí)鐘設(shè)計(jì)_第2頁
基于單片機(jī)電子時(shí)鐘設(shè)計(jì)_第3頁
基于單片機(jī)電子時(shí)鐘設(shè)計(jì)_第4頁
基于單片機(jī)電子時(shí)鐘設(shè)計(jì)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理與應(yīng)用課程設(shè)計(jì)與實(shí)現(xiàn) 實(shí)訓(xùn)報(bào)告專業(yè) : 自動(dòng)化年級/班級: 姓名 : 實(shí)訓(xùn)時(shí)間 :實(shí)訓(xùn)地點(diǎn) :指導(dǎo)教師 : 一、 實(shí)訓(xùn)題目:基于51單片機(jī)電子時(shí)鐘設(shè)計(jì)設(shè)計(jì)要求:(1)可設(shè)定時(shí)間; (2)可顯示當(dāng)時(shí)時(shí)間; (3)每小時(shí)振鈴響一次,并且振鈴鈴聲響次數(shù)與時(shí)間一致。二、 實(shí)訓(xùn)目的: (1). 學(xué)習(xí)8051定時(shí)器時(shí)間計(jì)時(shí)處理、按鍵掃描及LED數(shù)碼管顯示的設(shè)計(jì)方法。 (2). 設(shè)計(jì)任務(wù)及要求 利用實(shí)驗(yàn)平臺上6個(gè)LED數(shù)碼管, 設(shè)計(jì)帶有鬧鈴功能的數(shù)字時(shí)鐘。三、 所用器件工作原理及控制方法:189s52AT89S52是一種低功耗、高性能CMOS 8位微控制器,使用 ATMEL 公司高密度非易失性存儲

2、器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。并具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。2.定時(shí) 軟件方法,利用單片機(jī)本身的定時(shí)計(jì)數(shù)功能,節(jié)省成本,提高穩(wěn)定性。3顯示采用LED8段數(shù)碼管

3、,具有耗電低、配置靈活、線路簡單、安裝方便、耐轉(zhuǎn)動(dòng)、價(jià)格低廉且壽命長等優(yōu)點(diǎn)。474LS24474LS244為3態(tài)8位緩沖器,一般用作總線驅(qū)動(dòng)器。74LS244沒有鎖存的功能。地址鎖存器就是一個(gè)暫存器,它根據(jù)控制信號的狀態(tài),將總線上地址代碼暫存起來。8086/8088數(shù)據(jù)和地址總線采用分時(shí)復(fù)用操作方法,即用同一總線既傳輸數(shù)據(jù)又傳輸?shù)刂贰?.簡介 當(dāng)微處理器與存儲器交換信號時(shí),首先由CPU發(fā)出存儲器地址,同時(shí)發(fā)出允許鎖存信號ALE給鎖存器,當(dāng)鎖存器接到該信號后將地址/數(shù)據(jù)總線上的地址鎖存在總線上,隨后才能傳輸數(shù)據(jù)。74ls244圖例鎖存器是一個(gè)很普通的時(shí)序電路。一般的,它在時(shí)鐘上升沿或者下降沿來的

4、時(shí)候鎖存輸入,然后產(chǎn)生輸出,在其他的時(shí)候輸出都不跟隨輸入變化,這就是所謂邊緣觸發(fā)的D觸發(fā)器。 通常用作單片機(jī)的地址鎖存器的芯片有74LS373、8282、74LS273、74HC373等。 用途它主要用于三態(tài)輸出,作為地址驅(qū)動(dòng)器、時(shí)鐘驅(qū)動(dòng)器、總線驅(qū)動(dòng)器和定向發(fā)送器等。其真值表如下:74Ls244真值表   74LS244真值表:L表示低電平 H表示高電平 X表示不定狀態(tài) Z表示高阻態(tài) 74Ls244技術(shù)參數(shù)最小典型最大VCC4.25V5V5.25V高電平輸出電流-15mA低電平輸出電流24mA工作溫度070四、 軟硬件設(shè)計(jì)1. 顯示模塊(1) 硬件設(shè)計(jì)(2) 流程圖(3)

5、軟件設(shè)計(jì)void led_dispiay( ) wx_0=0;wx_1=0; /小時(shí)位選 ledbit=smgtime1s/10; /十位顯示 wx_1=1; delay(); wx_1=0; ledbit=smgtime1s%10; /個(gè)位顯示 wx_0=1; delay(); wx_0=0; wx_2=0;wx_3=0; /分鐘顯示 ledbit=smgtime1f/10; /十位顯示 wx_3=1; delay(); wx_3=0; ledbit=smgtime1f%10; /個(gè)位顯示 wx_2=1; delay(); wx_2=0; wx_4=0;wx_5=0; /分鐘顯示 ledbi

6、t=smgtime1x/10; /十位顯示 wx_5=1; delay(); wx_5=0; ledbit=smgtime1x%10; /個(gè)位顯示 wx_4=1; delay(); wx_4=0;2. 定時(shí)模塊(1) 流程圖(2) 軟件設(shè)計(jì)void time1() interrupt 1time50ms+;if(time50ms=20) /計(jì)數(shù)20個(gè)50ms為1s time50ms=0; time1s+; if( time1s=60) time1s=0; time1f+; if(time1f=60) time1f=0; time1x+; if(time1x=24) time1x=0; TH0=

7、0x3c; TL0=0xb0;3. 鍵盤控制模塊(1) 硬件設(shè)計(jì)(2) 流程圖(3) 軟件設(shè)計(jì)void shezhi_diaplay() if(1) if(yiwei=0) delayms(66);if(yiwei=0) TR0=0; +num; /*.秒調(diào)整.*/ if(num=1&jia=0) delayms(70); if(num=1&jia=0) time1s+; if(num=1&sub=0) delayms(70); if(num=1&sub=0) time1s-; / led_dispiay( );/*.分鐘調(diào)整.*/ if(num=2&j

8、ia=0) delayms(70); if(num=2&jia=0) time1f+; if(num=2&sub=0) delayms(70); if(num=2&sub=0) time1f-; /led_dispiay( );/*.小時(shí)調(diào)整.*/ if(num=3&jia=0) delayms(70); if(num=3&jia=0) time1x+; if(num=3&sub=0) delayms(70); if(num=3&sub=0) time1x-; / led_dispiay( ); if(num>=4) num=0;

9、TR0=1; 4. 總設(shè)計(jì)電路圖五、 實(shí)訓(xùn)總結(jié): 經(jīng)過兩周的單片機(jī)課程設(shè)計(jì),我組基本完成課題要求。雖然還是存在很多不足,但是功能上基本達(dá)標(biāo)。時(shí)鐘顯示功能,精確度完全可以滿足日常生活顯示時(shí)間的需要;調(diào)時(shí)功能,方便快捷。硬件設(shè)施合乎要求,軟件設(shè)計(jì)可以配合硬件實(shí)現(xiàn)要求功能。但是由于時(shí)間比較短,出現(xiàn)部分不足:初期時(shí)鐘不顯示數(shù)字,經(jīng)檢查是由于硬件連接不完善,存在漏焊,虛焊和錯(cuò)焊等問題。不過,我們相信,如果時(shí)間充足,將軟件改進(jìn),我們完全可以很好實(shí)現(xiàn)所有功能。 另外,在本次設(shè)計(jì)的過程中,我們發(fā)現(xiàn)很多的問題,雖然以前沒有做過這樣的設(shè)計(jì)但通過這次設(shè)計(jì)我學(xué)會了很多東西,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要

10、有很巧妙的程序算法,雖然以前寫過幾次程序,但我們覺的寫好一個(gè)程序并不是一件簡單的事,比如寫一個(gè)程序看其功能很少認(rèn)為編寫程序簡單,但到編的時(shí)候才發(fā)現(xiàn)一些細(xì)微的知識或低級錯(cuò)誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。從這次的課程設(shè)計(jì)中,我們真正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的練習(xí)的過程中才能提高,我想這就是我們在這次課程設(shè)計(jì)中的最大收獲。最后非常感謝王老師的悉心指導(dǎo)!六、 附件:附1:程序代碼#include <reg52.h>#inc

11、lude <intrins.h>/有_nop_的頭文件/*變量定義*/#define uchar unsigned char#define uint unsigned intvoid shezhi_display(void);void led_display(uchar m);void zhengdian(void);void delay(void);void delayms(uchar ms); uchar time1s=0,time50ms; /定時(shí)1s計(jì)數(shù)器uchar time1f=0,time1x=0;uchar a,b,k,m,num=0;#define ledbit P

12、0 /P0.0-P0.7-AGextern uchar code smg= /共陽極0-9顯示代碼/-0-1-2-3-4-5-6-7-8-9- 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F ;sbit wx_0=P20;sbit wx_1=P21;sbit wx_2=P22;sbit wx_3=P23;sbit wx_4=P24; / 數(shù)碼管位選sbit wx_5=P25;sbit zd=P14;sbit shezhi=P11;sbit jia=P12;sbit sub=P15;sbit yiwei=P10;void init () /對應(yīng)

13、定時(shí)器和外部中斷1; TMOD = 0x01; /T0T1方式控制 TH0=0x3c; TL0=0xb0; /計(jì)時(shí)50ms EA=1; /開全局中斷 ET0=1; /開定時(shí)中斷0 TR0=1; void delay(void) /延時(shí)函數(shù),延時(shí)約0.6ms unsigned char j; for(j=0;j<200;j+); void delayms(uchar ms) uchar i; while(ms-) for(i=0;i<200;i+); /* */函數(shù)名:led_display()/功能 :數(shù)碼管顯示數(shù)據(jù),驅(qū)動(dòng)芯片74LS244/輸入 :dat -8位數(shù)據(jù)/輸出 :無/

14、說明 :輸入十進(jìn)制數(shù)。/*/void led_dispiay( ) wx_0=0;wx_1=0; /小時(shí)位選 ledbit=smgtime1s/10; /十位顯示 wx_1=1; delay(); wx_1=0; ledbit=smgtime1s%10; /個(gè)位顯示 wx_0=1; delay(); wx_0=0; wx_2=0;wx_3=0; /分鐘顯示 ledbit=smgtime1f/10; /十位顯示 wx_3=1; delay(); wx_3=0; ledbit=smgtime1f%10; /個(gè)位顯示 wx_2=1; delay(); wx_2=0; wx_4=0;wx_5=0; /

15、分鐘顯示 ledbit=smgtime1x/10; /十位顯示 wx_5=1; delay(); wx_5=0; ledbit=smgtime1x%10; /個(gè)位顯示 wx_4=1; delay(); wx_4=0;/*定時(shí)中斷*/void time1() interrupt 1 time50ms+; if(time50ms=20) /計(jì)數(shù)20個(gè)50ms為1s time50ms=0; time1s+; if( time1s=60) time1s=0; time1f+; if(time1f=60) time1f=0; time1x+; if(time1x=24) time1x=0; TH0=0x

16、3c; TL0=0xb0; void shezhi_diaplay()if(1) if(yiwei=0) delayms(66); if(yiwei=0) TR0=0; +num; /*.秒調(diào)整.*/ if(num=1&jia=0) delayms(70); if(num=1&jia=0) time1s+; if(num=1&sub=0) delayms(70); if(num=1&sub=0) time1s-; / led_dispiay( );/*.分鐘調(diào)整.*/ if(num=2&jia=0) delayms(70); if(num=2&j

17、ia=0) time1f+; if(num=2&sub=0) delayms(70); if(num=2&sub=0) time1f-; /led_dispiay( );/*.小時(shí)調(diào)整.*/ if(num=3&jia=0) delayms(70); if(num=3&jia=0) time1x+; if(num=3&sub=0) delayms(70); if(num=3&sub=0) time1x-; / led_dispiay( ); if(num>=4) num=0; TR0=1; void zhengdian(void) if(ti

18、me1s=0&time1f=0) uchar k; for(k=0;k<5;k+) zd=0; delayms(10); delayms(10); delayms(10); delayms(10); zd=1; delayms(10); /*主程序*/void main() init();/初始化 while(1) shezhi_diaplay( ); led_dispiay( );/顯示 / zhengdian( ); 附2:實(shí)物圖:正面背面元器件清單:AT89c521片SEG(共陰)6片PNP三極管6個(gè)22µf 電解電容1個(gè)30pf 磁片電容2個(gè)1K電阻 16個(gè)330歐姆電阻9個(gè)4.7k歐姆電阻8個(gè)100歐姆電阻8個(gè)12M晶振1個(gè)使用儀器:硬件:萬用表一個(gè),焊錫絲若干,烙鐵一個(gè)PC機(jī)一臺,下載線

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論