版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
LED數(shù)碼管顯示電子鐘設(shè)計(jì)LED數(shù)碼管顯示電子鐘設(shè)計(jì)/LED數(shù)碼管顯示電子鐘設(shè)計(jì)《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)說(shuō)明書(shū)題目LED數(shù)碼管顯示電子鐘設(shè)計(jì)系(部)專(zhuān)業(yè)(班級(jí))姓名學(xué)號(hào)指導(dǎo)教師起止日期課程設(shè)計(jì)任務(wù)書(shū)系(部):專(zhuān)業(yè):課題名稱(chēng)LED數(shù)碼管顯示電子鐘設(shè)計(jì)設(shè)計(jì)要求1、課題內(nèi)容:設(shè)計(jì)一種基于AT89S52單片機(jī)的數(shù)碼管顯示電子時(shí)鐘,要求如下:(1)、能正確顯示時(shí)間,時(shí)鐘由八位數(shù)碼管顯示,顯示格式為:XX小時(shí)——XX分-—XX秒。(2)、時(shí)間能夠由按鍵調(diào)整,誤差小于1S.(3)、鬧鐘功能:時(shí)間運(yùn)行到及鬧鐘設(shè)定時(shí)間時(shí),鬧鐘響(持續(xù)響3秒)(4)、報(bào)時(shí)功能:時(shí)間運(yùn)行到正點(diǎn)時(shí)間時(shí),鬧鐘響,幾點(diǎn)鐘就響幾聲(每聲持續(xù)響2秒,每?jī)陕曋g時(shí)間間隔1秒)。(5)、通過(guò)按鍵切換,可以顯示當(dāng)前日期,顯示格式為:XX年?XX月?XX日,5秒鐘后自動(dòng)返回時(shí)間顯示模式。2、要求:完成該系統(tǒng)的硬件和軟件的設(shè)計(jì),在Proteus軟件上仿真通過(guò),并提交一篇課程設(shè)計(jì)說(shuō)明書(shū)。設(shè)計(jì)工作量1、匯編或C51語(yǔ)言程序設(shè)計(jì);2、程序調(diào)試;3、在Proteus上進(jìn)行仿真成功;4、提交一份完整的課程設(shè)計(jì)說(shuō)明書(shū),包括設(shè)計(jì)原理、程序設(shè)計(jì)、程序分析、仿真分析、調(diào)試過(guò)程,參考文獻(xiàn)、設(shè)計(jì)總結(jié)等.工作計(jì)劃起止日期工作內(nèi)容第一天課題介紹,答疑,收集材料,C51介紹第二天設(shè)計(jì)方案論證,練習(xí)編寫(xiě)C51程序第三天~第六天程序設(shè)計(jì)第六天~第八天程序調(diào)試、仿真第九天~第十天系統(tǒng)測(cè)試并編寫(xiě)設(shè)計(jì)說(shuō)明書(shū)教研室意見(jiàn)年月日系(部)主管領(lǐng)導(dǎo)意見(jiàn)年月日目錄TOC\o"1—3”\h\u摘要單片機(jī)全稱(chēng)為單片機(jī)微型計(jì)算機(jī)(SingleChipMicrosoftcomputer).從應(yīng)用領(lǐng)域來(lái)看,單片機(jī)主要用來(lái)控制,所以又稱(chēng)為微控制器(MicrocontrollerUnit)或嵌入式控制器。單片機(jī)是將計(jì)算機(jī)的基本部件微型化并集成在一塊芯片上的微型計(jì)算機(jī)。單片機(jī)自20世紀(jì)70年代問(wèn)世以來(lái),以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。單片機(jī)體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價(jià)格低廉、可靠性高、靈活性好、開(kāi)發(fā)較為容易。由于具有上述優(yōu)點(diǎn),在我國(guó),單片機(jī)已廣泛地應(yīng)用在工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、智能儀器儀表、家用電器、電力電子、機(jī)電一體化設(shè)備等各個(gè)方面,而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。時(shí)鐘電路在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ).在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間,它通常有兩種實(shí)現(xiàn)方法:一是用軟件實(shí)現(xiàn),即用單片機(jī)內(nèi)部的可編程定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn),但誤差很大,主要用在對(duì)時(shí)間精度要求不高的場(chǎng)合;二是用專(zhuān)門(mén)的時(shí)鐘芯片實(shí)現(xiàn),在對(duì)時(shí)間精度要求很高的情況下,通常采用這種方法,典型的時(shí)鐘芯片有:DS1302,DS12887,X1203等都可以滿(mǎn)足高精度的要求。設(shè)計(jì)內(nèi)容2.1、任務(wù)要求本次設(shè)計(jì)時(shí)鐘電路,使用了ATC89C51單片機(jī)芯片控制電路,單片機(jī)控制電路簡(jiǎn)單且省去了很多復(fù)雜的線(xiàn)路,使得電路簡(jiǎn)明易懂,使用鍵盤(pán)鍵上的按鍵來(lái)調(diào)整時(shí)鐘的年、月、日、時(shí)、分、秒,還有設(shè)定鬧鐘,用一揚(yáng)聲器來(lái)進(jìn)行定時(shí)提醒,同時(shí)使用匯編語(yǔ)言程序來(lái)控制整個(gè)時(shí)鐘顯示,使得編程變得更容易,這樣通過(guò)四個(gè)模塊:鍵盤(pán)、芯片、揚(yáng)聲器、LED顯示即可滿(mǎn)足設(shè)計(jì)要求.2。2、設(shè)計(jì)程序方案設(shè)計(jì)程序思路:1.實(shí)現(xiàn)8位數(shù)碼管動(dòng)態(tài)掃描顯示voidDisplay_1Code(unsignedcharpos,unsignedcharcode1);voidDisplay_2Num(unsignedcharpos,unsignedcharnum,unsignedcharpoint);數(shù)碼管動(dòng)態(tài)掃描就是:段顯位選延時(shí)顯示消影因?yàn)槲覀冇玫氖枪碴?yáng)數(shù)碼管,而段碼表用的共陰的,所以對(duì)code1取反共陽(yáng)數(shù)碼管高電平點(diǎn)亮,所以P2移位后不用取反,從高位開(kāi)始是第1個(gè)數(shù)碼管掩飾顯示1ms,P2給全0全部熄滅,消影作用.2。時(shí)間顯示采用實(shí)時(shí)時(shí)鐘芯片DS1302,讀芯片的datasheet,根據(jù)時(shí)序等說(shuō)明編寫(xiě)驅(qū)動(dòng)程序。1)初始化voidDS1302_Init(void)2)底層基本讀寫(xiě)函數(shù)voidDS1302_WriteByte(unsignedcharbyte)unsignedcharDS1302_ReadByte(void)3)對(duì)芯片寄存器的讀寫(xiě)函數(shù)voidDS1302_WriteData(unsignedcharaddr,unsignedcharmdata)unsignedcharDS1302_ReadData(unsignedcharaddr)4)修改時(shí)間函數(shù)voidDS1302_RWriteData(unsignedcharaddr,unsignedcharmdata)這些函數(shù)的實(shí)現(xiàn)就看dagasheet了,主要是時(shí)序a.時(shí)鐘上升沿寫(xiě)入數(shù)據(jù)b。時(shí)鐘下降沿讀出數(shù)據(jù)c。秒寄存器最高位為1關(guān)閉時(shí)鐘,為0則開(kāi)啟時(shí)鐘5)顯示時(shí)間和日期voidDisplay_Time(void)顯示時(shí)分秒,0x40為顯示橫,如12-30-00voidDisplay_Date(void)顯示日期,如20131230,中間沒(méi)有橫桿,但是在年月日上有小數(shù)點(diǎn),通過(guò)Display_2Num最后一個(gè)參數(shù)控制voidDisplay(void)根據(jù)dis_mode變量選擇當(dāng)前顯示的是時(shí)間還是日期還是鬧鐘。GetDateTime讀取時(shí)間并及鬧鐘時(shí)間做比較,檢測(cè)是否到達(dá)鬧鐘時(shí)間。6)掃描方式動(dòng)態(tài)掃描,定時(shí)器0控制掃描周期,10ms掃描一次voidTimer0_OVF(void)interrupt1{ TH0=(65536-10000)/256; TL0=(65536-10000)%256;}按鍵調(diào)時(shí)voidKeyScanf(void)flag_alarm_mode是鬧鈴模式則按鍵退出鬧鈴并返回,一鍵關(guān)閉鬧鐘然后對(duì)setting_item變量自加,依次表示設(shè)置秒、分、時(shí)、天、月等等,設(shè)置項(xiàng)對(duì)應(yīng)的小數(shù)點(diǎn)位點(diǎn)亮.加鍵一樣的過(guò)程,根據(jù)setting_item的值加不同的量:秒、分、時(shí)。記住改變時(shí)間后要修改DS1302芯片的寄存器才能真正修改時(shí)間。2。3設(shè)計(jì)電路仿真圖數(shù)碼管顯示模塊:圖1數(shù)碼管顯示模塊數(shù)碼管是一種把多個(gè)LED顯示段集成在一起的顯示設(shè)備。有兩種類(lèi)型,一種是共陽(yáng)型,一種是共陰型。共陽(yáng)型就是把多個(gè)LED顯示段的陽(yáng)極接在一起,又稱(chēng)為公共端。共陰型就是把多個(gè)LED顯示段的陰極接在一起,即為公共商.陽(yáng)極即為二極管的正極,又稱(chēng)為正極,陰極即為二極管的負(fù)極,又稱(chēng)為負(fù)極.通常的數(shù)碼管又分為8段,即8個(gè)LED顯示段,這是為工程應(yīng)用方便如設(shè)計(jì)的,分別為A、B、C、D、E、F、G、DP,其中DP是小數(shù)點(diǎn)位段.系統(tǒng)采用動(dòng)態(tài)顯示方式,用P0口來(lái)控制LED數(shù)碼管的段控線(xiàn),而用P2口來(lái)控制其位控線(xiàn).動(dòng)態(tài)顯示通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)點(diǎn)亮每一個(gè)數(shù)碼管,這樣雖然在任何時(shí)刻都只有一位數(shù)碼管被點(diǎn)亮,但由于人眼存在視覺(jué)殘留效應(yīng),只要每位數(shù)碼管間隔時(shí)間足夠短,就可以給人以同時(shí)顯示的感覺(jué)。本設(shè)計(jì)采用共陽(yáng)極數(shù)碼管。晶振電路模塊:在AT89S51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2.而在芯片內(nèi)部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。圖2晶振電路按鍵模塊:時(shí)間計(jì)數(shù)電路由秒個(gè)位和秒十位計(jì)數(shù)器、分個(gè)位和分十位計(jì)數(shù)器、時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器及星期計(jì)數(shù)器電路構(gòu)成,其中秒個(gè)位和秒十位計(jì)數(shù)器、分個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器,時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器為24進(jìn)制計(jì)數(shù)器.圖3按鍵模塊時(shí)鐘芯片電路:X1X2:32.768晶振管腳GND:地RST:復(fù)位腳I/O:數(shù)據(jù)輸入/輸出引腳SCLK:串行時(shí)鐘VCC1,VCC2:電源供電管腳圖4時(shí)鐘芯片電路電路總體設(shè)計(jì)仿真圖:圖5總體仿真圖按菜單/顯示時(shí)間鍵會(huì)出現(xiàn)一個(gè)小光標(biāo)點(diǎn),再按菜單/顯示時(shí)間鍵,光標(biāo)點(diǎn)會(huì)左移,按加速或者減速鍵會(huì)加減數(shù)值。繼續(xù)按菜單/顯示時(shí)間鍵跳到顯示日期、鬧鐘時(shí),也可以用加速或者減速鍵調(diào)整時(shí)間。按減速/顯示鬧鐘鍵會(huì)顯示鬧鐘.按加速/顯示日期鍵會(huì)顯示日期。5s后會(huì)自動(dòng)恢復(fù)到顯示時(shí)間。操作方便簡(jiǎn)潔.圖6日期顯示圖7鬧鐘顯示心得體會(huì)單片機(jī)作為我們主要的專(zhuān)業(yè)課程之一,我覺(jué)得單片機(jī)課程設(shè)計(jì)很有必要,而且很有意義.在這次課程設(shè)計(jì)中,運(yùn)用到了很多以前的專(zhuān)業(yè)知識(shí),雖然過(guò)去從未獨(dú)立應(yīng)用過(guò)它們,但在學(xué)習(xí)的過(guò)程中帶著問(wèn)題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計(jì)的一大收獲。站在庫(kù)的位置上想問(wèn)題。另外,要做好一個(gè)課程設(shè)計(jì),就必須做到:在設(shè)計(jì)程序之前,對(duì)所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片機(jī)內(nèi)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的的軟件流程圖;在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美及否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計(jì)課程過(guò)程中遇到問(wèn)題是很正常的,但我們應(yīng)該將每次遇到的問(wèn)題記錄下來(lái),并分析清楚,以免下次再碰到同樣的問(wèn)題的課程設(shè)計(jì)結(jié)束了,但是從中學(xué)到的知識(shí)會(huì)讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問(wèn)題和實(shí)踐能力的提高都會(huì)受益于我在以后的學(xué)習(xí)、工作和生活中.雖然有些程序不是那么清楚理解,自己好好查閱資料,不懂還可以請(qǐng)教老師、同學(xué).當(dāng)我有什么不明白的地方去向其他同學(xué)請(qǐng)教時(shí),即使他們正在忙于思考,也會(huì)停下來(lái)幫助我。當(dāng)我有什么想法告訴他們的時(shí)候,他們不會(huì)因?yàn)槲业脽o(wú)知而不耐心聽(tīng)我講,反而會(huì)指出我的不足,一起提高.學(xué)到了共同探討、共同前進(jìn)的精神,也讓我明白謙虛好學(xué)的真諦設(shè)計(jì)過(guò)程,常有一些不如意,但畢竟這是第一次做,難免會(huì)遇到各種各樣的問(wèn)題。在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,不能靈活運(yùn)用。在以后的學(xué)習(xí)過(guò)程中我會(huì)努力的。參考文獻(xiàn)[1]謝自美.電子線(xiàn)路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試[M].武漢:華中理工大學(xué)出版社,1992.[2]何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1993.[3]樓然笛.單片機(jī)開(kāi)發(fā)[M].北京:人民郵電出版社,1994.
[4]付家才.單片機(jī)控制工程實(shí)踐技術(shù)[M].北京:化學(xué)工業(yè)出版社2004.3.
[5]李光才.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M].北京:北京航空航天大學(xué)出版社2004。[6]劉湘濤.江世明.單片機(jī)原理及應(yīng)用[M].北京:電子工業(yè)出版社2006。程序:/****************************************************************程序功能:數(shù)碼管+DS1302的可調(diào)時(shí)鐘(含一個(gè)鬧鐘功能)**CPU型號(hào):AT89C51**晶振頻率:12.0000MHz**時(shí)間:2013-12—29**作者:唐蜜珠**學(xué)號(hào):20110261xx**班級(jí):11電子1班**說(shuō)明:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)****************************************************************/#include<reg52。h〉/*設(shè)置項(xiàng)序號(hào)宏定義*/#defineSETTING_NONE 0#defineSETTING_SECOND 1#defineSETTING_MINUTE 2#defineSETTING_HOUR 3#defineSETTING_DAY 4#defineSETTING_MONTH 5#defineSETTING_YEAR 6#defineSETTING_ALARM_SECOND 7#defineSETTING_ALARM_MINUTE 8#defineSETTING_ALARM_HOUR 9/*顯示狀態(tài)宏定義*/#defineDIS_MODE_TIME 1 /*顯示時(shí)間*/#defineDIS_MODE_DATE 2/*顯示日期*/#defineDIS_MODE_ALARM 4/*顯示鬧鐘*//*鬧鐘響/??刂坪甓x*/#define ALARM_ON 1/*鬧鐘響*/#defineALARM_OFF 0/*鬧鐘停*/#defineALARM_MODE_NONE 0#defineALARM_MODE_ALARM 1#defineALARM_MODE_POINT 2#defineALARM_MODE_DELAY 3/*DS1302時(shí)鐘芯片引腳定義*/sbitDS1302_DATA=P1^0;sbitDS1302_SCLK=P1^1;sbitDS1302_CE=P1^2;/*按鍵引腳定義*/sbitKeyMenu =P3^5;sbitKeyAdd =P3^6;sbitKeyDec =P3^7;/*鬧鐘蜂鳴器引腳定義*/sbitBeep=P1^7;/*共陰數(shù)碼管段碼表*/unsignedcharcodecodeSeg7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};/*時(shí)間/日期相關(guān)變量*/unsignedcharcentury=21,year,month,day,hour,minute,second;/*鬧鐘變量*/unsignedcharalarm_hour,alarm_minute,alarm_second;/*當(dāng)前設(shè)置項(xiàng)序號(hào)變量,初始化為SETTING_NONE表示非設(shè)置模式*/unsignedcharsetting_item=SETTING_NONE;/*顯示狀態(tài)變量,初始化為DIS_MODE_TIME顯示時(shí)間*/unsignedchardis_mode=DIS_MODE_TIME;/*鬧鐘響標(biāo)志:0-鬧鐘沒(méi)響1—鬧鐘響*/unsignedcharflag_alarm_mode=0;/*鬧鐘響延時(shí)時(shí)間控制變量,16位*/unsignedintalarm_delay;unsignedcharpoint_count;/********************************//*函數(shù)功能:約xms毫秒延時(shí) *//*入口參數(shù):xms—延時(shí)xms毫秒*//*出口參數(shù):無(wú) *//********************************/voidDelayMs(unsignedintxms){ unsignedinti,j; for(i=xms;i〉0;i—-) for(j=110;j〉0;j—-);}/*****************************************************************************************************//*函數(shù)功能:定時(shí)器延時(shí)控制 *//*入口參數(shù):mode-鬧鐘、整點(diǎn)報(bào)時(shí)、5s回顯時(shí)間模式控制alarmonoff—鬧鐘響(1)不響(0)delay-延時(shí)時(shí)間(秒)*//*出口參數(shù):無(wú) *//*****************************************************************************************************/voidAlarm(unsignedcharmode,unsignedcharalarmonoff,unsignedchardelay){ flag_alarm_mode=mode; /*保存顯示模式設(shè)置*/ Beep=!alarmonoff; /*操作蜂鳴器,硬件電路為0響*/ alarm_delay=delay*100;/*alarm_delay為定時(shí)器0溢出中斷計(jì)數(shù),10ms時(shí)基,乘以100為1s*/}/********************************//*函數(shù)功能:DS1302寫(xiě)字節(jié)*//*入口參數(shù):byte-寫(xiě)入字節(jié) *//*出口參數(shù):無(wú) *//********************************/voidDS1302_WriteByte(unsignedcharbyte){unsignedchari;for(i=0;i<8;i++){ DS1302_SCLK=0; byte〉>=1; /*BIT0數(shù)據(jù)移到CY寄存器*/ DS1302_DATA=CY; /*將CY寄存器的值寫(xiě)到DS1302數(shù)據(jù)引腳*/ DS1302_SCLK=1;/*在時(shí)鐘上升沿寫(xiě)入*/}}/********************************//*函數(shù)功能:DS1302讀字節(jié) *//*入口參數(shù):無(wú) *//*出口參數(shù):返回讀取的字節(jié)數(shù)據(jù) *//********************************/unsignedcharDS1302_ReadByte(void){unsignedchari,byte=0;DS1302_SCLK=1; for(i=0;i<8;i++) //讀數(shù)據(jù) { byte〉>=1; DS1302_SCLK=0;/*時(shí)鐘下降沿讀取*/ if(DS1302_DATA)/*讀取引腳狀態(tài)*/byte|=0x80;/*保存*/ DS1302_SCLK=1;}return(byte);}/******************************************//*函數(shù)功能:寫(xiě)DS1302 *//*入口參數(shù):addr—寫(xiě)目標(biāo)地址,mdata—待寫(xiě)數(shù)據(jù)*//*出口參數(shù):無(wú)*//******************************************/voidDS1302_WriteData(unsignedcharaddr,unsignedcharmdata) //向DS1302寫(xiě)數(shù)據(jù){ DS1302_CE=0;DS1302_SCLK=0;DS1302_CE=1; /*使能DS1302*/DS1302_WriteByte(addr);/*寫(xiě)入地址*/DS1302_WriteByte(mdata);/*寫(xiě)入數(shù)據(jù)*/ DS1302_CE=0;}/********************************//*函數(shù)功能:讀DS1302*//*入口參數(shù):addr—讀目標(biāo)地址*//*出口參數(shù):返回讀到的數(shù)據(jù)*//********************************/unsignedcharDS1302_ReadData(unsignedcharaddr) //向DS1302讀數(shù)據(jù){ unsignedcharmdata,mdatah,mdatal; DS1302_CE=0;DS1302_SCLK=0;DS1302_CE=1; DS1302_WriteByte(addr); /*寫(xiě)入地址*/mdata=DS1302_ReadByte();/*讀出數(shù)據(jù)*/ DS1302_CE=0; mdatal=mdata&0x0F; mdatah=(mdata>>4)&0x0F; mdata=mdatal+mdatah*10;/*十六進(jìn)制轉(zhuǎn)化為十進(jìn)制*/ return(mdata);}/**********************************************//*函數(shù)功能:修改DS1302的時(shí)間值*//*入口參數(shù):addr—寫(xiě)目標(biāo)地址,mdata-修改值*//*出口參數(shù):無(wú)*//**********************************************/voidDS1302_RWriteData(unsignedcharaddr,unsignedcharmdata){unsignedcharmdatah,mdatal;mdatal=mdata%10; mdatah=mdata/10; mdata=mdatal+(mdatah〈〈4);/*十進(jìn)制轉(zhuǎn)化為十六進(jìn)制*/ DS1302_WriteData(0x8e,0x00);/*關(guān)閉寫(xiě)保護(hù)*/ DS1302_WriteData(addr,mdata);/*寫(xiě)入修改數(shù)據(jù)*/ DS1302_WriteData(0x8e,0x80);/*寫(xiě)保護(hù)使能*/}/********************************//*函數(shù)功能:初始化DS1302*//*入口參數(shù):無(wú)*//*出口參數(shù):無(wú)*//********************************/voidDS1302_Init(void){unsignedcharmdata;DS1302_CE=0;DS1302_SCLK=0;DS1302_CE=1; DS1302_WriteByte(0x81); mdata=DS1302_ReadByte(); /*讀秒寄存器*/if(mdata&0x80) /*秒寄存器最高位為時(shí)鐘關(guān)閉位,1—關(guān)閉0-開(kāi)啟*/{DS1302_RWriteData(0x80,0x00);/*清除秒寄存器,開(kāi)啟DS1302,開(kāi)始走時(shí)間*/} DS1302_CE=0;}/*********************************************************//*函數(shù)功能:判斷當(dāng)前設(shè)置項(xiàng)是否為參數(shù)所指*//*入口參數(shù):item—待比較的設(shè)置項(xiàng)編號(hào)*//*出口參數(shù):1-當(dāng)前設(shè)置項(xiàng)為item所指0—當(dāng)前設(shè)置項(xiàng)非item所指*//*********************************************************/unsignedcharIsSettingItem(unsignedcharitem){ return(setting_item==item);}/***************************************//*函數(shù)功能:點(diǎn)亮1位數(shù)碼管*//*入口參數(shù):pos—顯示位置code1—顯示段碼*//*出口參數(shù):無(wú)*//***************************************/voidDisplay_1Code(unsignedcharpos,unsignedcharcode1){ P0=~code1; /*設(shè)計(jì)采用共陽(yáng)數(shù)碼管,共陰段碼取反*/ P2=(0x80〉〉pos);/*選擇顯示位置*/ DelayMs(1); /*延時(shí)顯示1ms*/ P2=0x00; /*關(guān)閉所有數(shù)碼管,消除重影*/}/**********************************************************************//*函數(shù)功能:顯示兩位數(shù)字*//*入口參數(shù):pos-顯示的位置num-待顯示的數(shù)字point-是(1)否(0)顯示小數(shù)點(diǎn)*//*出口參數(shù):無(wú)*//**********************************************************************/voidDisplay_2Num(unsignedcharpos,unsignedcharnum,unsignedcharpoint){ Display_1Code(pos,codeSeg7[num/10]); /*顯示十位數(shù)*/ Display_1Code(pos+1,point?codeSeg7[num%10]|0x80:codeSeg7[num%10]);/*顯示個(gè)位數(shù),如果point為真,則最高位置1顯示小數(shù)點(diǎn)*/}/********************************//*函數(shù)功能:顯示實(shí)時(shí)時(shí)間*//*入口參數(shù):無(wú)*//*出口參數(shù):*//********************************
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)五年級(jí)小數(shù)乘除法計(jì)算題匯編
- 科創(chuàng)板開(kāi)通知識(shí)測(cè)試參考答案
- 語(yǔ)文試卷 天津市濱海新區(qū)五所重點(diǎn)中學(xué)高三畢業(yè)班聯(lián)考語(yǔ)文試卷
- 保險(xiǎn)行業(yè)助理的工作總結(jié)和技能要求
- 骨骼疾病護(hù)理工作總結(jié)
- 家具家居行業(yè)技術(shù)嘗試改造
- 生物醫(yī)藥行業(yè)技術(shù)工作總結(jié)
- 紙制品行業(yè)業(yè)務(wù)員工作總結(jié)
- 游戲界面設(shè)計(jì)師的交互體驗(yàn)和游戲設(shè)計(jì)
- 《機(jī)械防煙方式》課件
- 200立方矩形鋼筋混凝土清水池標(biāo)準(zhǔn)圖集(共7頁(yè))
- 熱處理變形基礎(chǔ)知識(shí)
- 網(wǎng)絡(luò)安全運(yùn)維培訓(xùn)測(cè)試題
- 民政部主管社團(tuán)管理辦法
- 工地施工臨時(shí)用水及計(jì)算
- 三年級(jí)數(shù)學(xué)寒假每日一練
- 最新宜昌市中考數(shù)學(xué)21題圓訓(xùn)練(1)教師版有答案
- 工作計(jì)劃酒店上半年工作總結(jié)及下半年工作計(jì)劃
- 石油詞匯大全-俄語(yǔ)專(zhuān)業(yè)詞匯
- 東營(yíng)市學(xué)校安全工作先進(jìn)個(gè)人申報(bào)表岳向明
評(píng)論
0/150
提交評(píng)論