




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
7.12單片機(jī)數(shù)碼電子鐘的設(shè)計(jì)制作7.12.1實(shí)驗(yàn)?zāi)康耐ㄟ^對“單片機(jī)數(shù)碼電子鐘"的設(shè)計(jì)制作,增強(qiáng)對單片機(jī)控制,實(shí)現(xiàn)數(shù)碼電子鐘功能技術(shù)的理解與應(yīng)用;熟練使用儀器儀表,完成電子電路系統(tǒng)的制作、安裝、調(diào)整和測試并實(shí)現(xiàn)電路系統(tǒng)的功能,增強(qiáng)動手能力和實(shí)踐興趣;通過對“單片機(jī)數(shù)碼電子鐘”基本原理的研究與制作實(shí)踐,進(jìn)一步提高實(shí)踐技能和創(chuàng)新能力。7。12。2實(shí)驗(yàn)要求1、學(xué)習(xí)和了解數(shù)碼電子鐘的基本原理;2、學(xué)會設(shè)計(jì)和制作數(shù)碼電子鐘;3、學(xué)習(xí)系統(tǒng)硬件電路設(shè)計(jì)方法;4、學(xué)習(xí)軟件程序設(shè)計(jì)原理和方法;5、學(xué)習(xí)單片機(jī)工作原理及實(shí)現(xiàn)軟件程序控制的方法。7。12。3實(shí)驗(yàn)電路原理1、電路功能電子時(shí)鐘已為人們所熟知,作為一個(gè)電子愛好者來說,自己動手制作一款數(shù)碼顯示的電子鐘是一件非常有意義的事。本次實(shí)驗(yàn),是一款利用AT89S52作為主控制芯片的數(shù)碼電子鐘的制作,同時(shí)結(jié)合這款制作的外圍器件,特別編寫了一些控制電路的驅(qū)動程序,供單片機(jī)初學(xué)者參考。本制作可顯示當(dāng)前時(shí)間信息,當(dāng)前日期信息.還具有定時(shí)報(bào)警功能,同時(shí)接入了后備電源,使得系統(tǒng)在外供電斷電的情況下,仍可保持時(shí)鐘數(shù)據(jù)不丟失。2、電路工作原理單片機(jī)數(shù)碼電子時(shí)鐘的設(shè)計(jì)制作是利用51單片機(jī)中的簡易型產(chǎn)品AT89S52作為主控制器件,利用單片機(jī)程序,通過與時(shí)鐘芯片DS1302的通讀,讀取實(shí)時(shí)時(shí)鐘信息,通過對四位一體共陰數(shù)碼管的掃描控制,完成對時(shí)鐘的顯示。直流12V輸入電源經(jīng)三端穩(wěn)壓集成電路IC4的穩(wěn)壓后,在其輸出端輸出一個(gè)穩(wěn)定的5V工作電壓,作為系統(tǒng)的工作電源。DS1302是一款性價(jià)比較高的時(shí)鐘芯片,外圍元件少,其第8腳為備用電源輸入端,在這里我們設(shè)計(jì)用3V電池進(jìn)行供電,當(dāng)系統(tǒng)斷電后,由備用電源向時(shí)鐘芯片供電,使時(shí)鐘數(shù)據(jù)在外供電停電時(shí)也不會丟失。CD4543為一款BCD-七段譯碼器,可彌補(bǔ)單片機(jī)輸出引腳數(shù)量不夠的問題。當(dāng)單片機(jī)通過與DS1302的通訊,向時(shí)鐘芯片寫入啟動命令后,時(shí)鐘芯片便開始工作,時(shí)鐘啟動以后,自動會進(jìn)行計(jì)時(shí)操作,將最新的時(shí)鐘信息保存在其內(nèi)部寄存器中,包括年、月、日、周、時(shí)、分、秒等信息,單片機(jī)只要不斷地讀取時(shí)鐘芯片中各寄存器中的數(shù)據(jù)就可以.單片機(jī)要將讀取到的時(shí)鐘信息進(jìn)行顯示時(shí),通過對數(shù)據(jù)的處理,從P1口的高四位輸出顯示數(shù)據(jù),四位BCD碼數(shù)據(jù)輸入CD4543進(jìn)行譯碼后,驅(qū)動七段數(shù)碼管,同時(shí)配合四位電子開關(guān)來完成四位數(shù)據(jù)的掃描顯示。單片機(jī)數(shù)碼電子鐘電路原理如圖7.12.1所示。圖7.12。1單片機(jī)數(shù)碼電子鐘電路原理圖7。12.4實(shí)驗(yàn)內(nèi)容1、實(shí)驗(yàn)方法按照圖7。12。1組裝實(shí)驗(yàn)電路,學(xué)習(xí)理解電路工作原理,在掌握硬件電路系統(tǒng)設(shè)計(jì)和軟件程序控制原理的基礎(chǔ)上進(jìn)行本次實(shí)驗(yàn)。軟件設(shè)計(jì)流程:2、制作與調(diào)試由于本制作主要通過單片機(jī)程序來完成時(shí)鐘數(shù)據(jù)的讀取與顯示,因此對硬件電路的調(diào)試顯得非常簡單,一般只要焊無誤,插上我們提供的燒有程序的單片機(jī)后,便可以正常工作。(1)制作制作過程中可以參考以下步驟來完成:將所有元件焊好,先不要插上單片機(jī),向電源插座送入12V直流電源,測量78L05輸出腳對地電壓,是否為5V左右,這個(gè)電壓的測量可以直接在20腳的集成電路插座上完成,萬用表負(fù)表筆接10腳,正表筆測20腳的電壓。若電壓為0,應(yīng)仔細(xì)查看電源插座邊上的極性保護(hù)二極管是否焊反。另外需要注意的是,CD4543和DS1302兩塊集成電路不要焊反,焊時(shí)查看線路板上的標(biāo)識上的半圓缺口與集成電路上的缺口對牢,5只三極管的方向應(yīng)將實(shí)際型狀與線路板上的標(biāo)識一致。以上幾步都正確后,斷后,再插上單片機(jī),通電便可以正常工作。制作實(shí)物照片如圖7.12.2所示,在周圍環(huán)境光照較暗時(shí),3、時(shí)鐘的操作時(shí)鐘芯片在初次上電時(shí),其數(shù)據(jù)都為初始值,我們必須將時(shí)鐘、日期等信息進(jìn)行設(shè)定.1、當(dāng)前時(shí)鐘的設(shè)定:長按左邊的SB1按鍵不要松,當(dāng)聽到蜂鳴器“嘟”叫一聲后松開,這時(shí)系統(tǒng)進(jìn)入時(shí)鐘設(shè)定模式.此時(shí)按動SB1鍵便可以調(diào)整時(shí)信息,每按一次蜂鳴器響一聲,同時(shí)小時(shí)顯示加1,當(dāng)加到23時(shí),再按一下,便顯示為00,其余類推;當(dāng)小時(shí)設(shè)定完后,按一下右邊的SB2鍵,退出時(shí)單元的設(shè)定,時(shí)入分的設(shè)定。這時(shí)再按SB1時(shí),相應(yīng)的分單元?jiǎng)幼?,操作過程同設(shè)定小時(shí)時(shí)一致。當(dāng)分單元與設(shè)定完后,再一下SB2,這時(shí)蜂鳴器響二聲,表示時(shí)鐘設(shè)定完成,系統(tǒng)退出時(shí)鐘設(shè)定,顯示當(dāng)前時(shí)鐘,同時(shí)每過一秒,中間的亮點(diǎn)閃一下。2、鬧鐘設(shè)定:短按左邊的SB1鍵一下,系統(tǒng)進(jìn)入鬧鐘設(shè)定狀態(tài),初始上電后的鬧鐘時(shí)間為06:00,鬧鐘的調(diào)整方法同前面的時(shí)鐘設(shè)定。3、日期設(shè)定:長按右邊的SB2鍵不要松,當(dāng)聽到蜂鳴器“嘟”叫一聲后松開,這時(shí)系統(tǒng)進(jìn)入日期設(shè)定模式.四位數(shù)碼顯示的兩位月信息,兩位日期信息,調(diào)整的方法與前面調(diào)時(shí)間的方法類似.4、日期顯示:短按SB2鍵一下,系統(tǒng)便顯示當(dāng)前日期,這時(shí)不用按任何按鍵,延時(shí)一段時(shí)間后返回到時(shí)鐘顯示狀態(tài)。參考程序(DS1302驅(qū)動程序):#include<reg52.h>#include<intrins.h>sbitSCK=P3^4; //DS1302時(shí)鐘 sbitSDA=P3^0; //DS1302輸入輸出口 sbitRST=P3^1;//DS1302復(fù)位bitReadRTC_Flag;//讀DS1302全局變量unsignedcharl_tmpdate[7]={0,0,12,15,5,3,8};//秒分時(shí)日月周年08—05-1512:00:00unsignedcharl_tmpdisplay[8];codeunsignedcharwrite_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//秒分時(shí)日周月年最低位讀寫位codeunsignedcharread_rtc_address[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};codeunsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //共陰數(shù)碼管0—9’—''熄滅‘表codeunsignedchartable1[]={0,1,2,3,4,5,6,7};//顯示位碼表/****************************************************************************/voidInitTIMER0(void){TMOD|=0x01;//定時(shí)器設(shè)置16位TH0=0xef;//初始化值TL0=0xf0;ET0=1;TR0=1;EA=1;}/****************************************************************************/voidWrite_Ds1302_Byte(unsignedchartemp){unsignedchari;for(i=0;i〈8;i++) //循環(huán)8次寫入數(shù)據(jù){SCK=0;SDA=temp&0x01; //每次傳輸?shù)妥止?jié)temp〉>=1; //右移一位SCK=1;}}/****************************************************************************/voidWrite_Ds1302(unsignedcharaddress,unsignedchardat){ RST=0; _nop_(); SCK=0; _nop_(); RST=1; _nop_();//啟動 Write_Ds1302_Byte(address); //發(fā)送地址 Write_Ds1302_Byte(dat); //發(fā)送數(shù)據(jù) RST=0; //恢復(fù)}/****************************************************************************/unsignedcharRead_Ds1302(unsignedcharaddress){ unsignedchari,temp=0x00; RST=0; _nop_(); SCK=0; _nop_(); RST=1; _nop_(); Write_Ds1302_Byte(address); for(i=0;i<8;i++) //循環(huán)8次讀取數(shù)據(jù) { if(SDA) temp|=0x80; //每次傳輸?shù)妥止?jié) SCK=0; temp>〉=1; //右移一位 SCK=1; } RST=0; _nop_(); //以下為DS1302復(fù)位的穩(wěn)定時(shí)間 RST=0; SCK=0; _nop_(); SCK=1; _nop_(); SDA=0; _nop_(); SDA=1; _nop_(); return(temp); //返回}/****************************************************************************/voidRead_RTC(void) //讀取日歷{unsignedchari,*p;p=read_rtc_address; //地址傳遞for(i=0;i〈7;i++) //分7次讀取秒分時(shí)日月周年{l_tmpdate[i]=Read_Ds1302(*p);p++;}}/***********************************************************************/voidSet_RTC(void) //設(shè)定日歷{ unsignedchari,*p,tmp; for(i=0;i<7;i++){//BCD處理 tmp=l_tmpdate[i]/10; l_tmpdate[i]=l_tmpdate[i]%10; l_tmpdate[i]=l_tmpdate[i]+tmp*16; } Write_Ds1302(0x8E,0X00); p=write_rtc_address; //傳地址 for(i=0;i<7;i++) //7次寫入秒分時(shí)日月周年 { Write_Ds1302(*p,l_tmpdate[i]); p++; } Write_Ds1302(0x8E,0x80);}/***********************************************************************/voidtim(void)interrupt1using1//中斷,用于數(shù)碼管掃描{staticunsignedchari,num;TH0=0xf5;TL0=0xe0; P0=table[l_tmpdisplay[i]]; //查表法得到要顯示數(shù)字的數(shù)碼段 P2=table1[i]; i++; if(i==8) { i=0; num++; if(10==num)//隔段時(shí)間讀取1302的數(shù)據(jù).時(shí)間間隔可以調(diào)整 { ReadRTC_Flag=1;//使用標(biāo)志位判斷 num=0; } }}/***********************************************************************/voidmain(void){InitTIMER0(); Set_RTC(); while(1){ if(ReadRTC_Flag) { ReadRTC_Flag=0; Read_RTC(); switch(l_tmpdate[0]/5)//設(shè)計(jì)每個(gè)5秒交替顯示年月日時(shí)分秒 { case0: case2: case4: case6: case8: case10: l_tmpdisplay[0]=l_tmpdate[2]/16; //數(shù)據(jù)的轉(zhuǎn)換,因我們采用數(shù)碼管0~9的顯示,將數(shù)據(jù)分開 l_tmpdisplay[1]=l_tmpdate[2]&0x0f; l_tmpdisplay[2]=10; //加入”—" l_tmpdisplay[3]=l_tmpdate[1]/16; l_tmpdisplay[4]=l_tmpdate[1]&0x0f; l_tmpdisplay[5]=10; l_tmpdisplay[6]=l_tmpdate[0]/16; l_tmpdisplay[7]=l_tmpdate[0]&0x0f; break; case1: case3: case5: case7: case9: case11: l_t
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 纖維板行業(yè)的國內(nèi)外標(biāo)準(zhǔn)對比研究考核試卷
- 畜牧良種繁殖保險(xiǎn)制度與風(fēng)險(xiǎn)管理考核試卷
- 時(shí)間的初一語文作文
- 玉米加工與糧食產(chǎn)后減損技術(shù)考核試卷
- 空中交通管制員視覺識別能力考核試卷
- 突發(fā)事件預(yù)防與應(yīng)對策略考核試卷
- 站內(nèi)公共服務(wù)設(shè)施完善與人性化設(shè)計(jì)實(shí)踐成果考核試卷
- 紡織品在農(nóng)業(yè)領(lǐng)域的應(yīng)用與創(chuàng)新考核試卷
- 小學(xué)100以內(nèi)退位減法練習(xí)題(500條)
- 蘇州托普信息職業(yè)技術(shù)學(xué)院《大數(shù)據(jù)可視化技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 知識產(chǎn)權(quán)與人工智能
- 定向鉆出入土點(diǎn)平面布置圖(可編輯)
- ANSYS導(dǎo)出柔性體MNF文件入ADAMS的詳細(xì)步驟
- (完整版)200210號文-工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)(2002年修訂本)本月修正2023簡版
- 《駱駝祥子》知識競賽題及答案
- 光學(xué)零件制造工藝
- 2024屆高考語文復(fù)習(xí)-新高考卷文學(xué)類閱讀真題《建水記》《大師》講評
- 八年級道德與法治下冊第一單元堅(jiān)持憲法至上思維導(dǎo)圖人教部編版
- 中考冠詞專項(xiàng)訓(xùn)練100題 (帶答案)
- 幼兒心理學(xué)(陳幗眉)期中考試試卷含答案
- 電力現(xiàn)貨市場基礎(chǔ)知識
評論
0/150
提交評論