版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 硬件技術(shù)綜合課程設(shè)計(jì)</p><p><b> 實(shí)驗(yàn)報告</b></p><p> 題 目:DS1302時鐘</p><p> 學(xué) 院:</p><p> 指導(dǎo)老師:</p><p> 日 期:</p><p> 試驗(yàn)對象:<
2、/p><p> 實(shí)驗(yàn)人員:姓名學(xué)號</p><p> 課程設(shè)計(jì)(論文)任務(wù)書</p><p> 課程設(shè)計(jì)(論文)成績評定表</p><p><b> 摘要</b></p><p> 本文介紹的實(shí)時時鐘芯片為DSl302,它是Dallas公司的一種具有涓細(xì)電流充電能力的實(shí)時時鐘芯片,采用普通32
3、.768kHz晶振。主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。它可以對年、月、日、星期、時、分、秒進(jìn)行計(jì)時,且具有閏年補(bǔ)償?shù)榷喾N功能。并給出了基于DSl302設(shè)計(jì)的時鐘顯示在讀寫中的C51程序及流程圖,以及在調(diào)試過程中的注意事項(xiàng)。</p><p> 關(guān)鍵詞:單片機(jī) DS1302 數(shù)碼管 數(shù)字鐘</p><p><b&g
4、t; 1設(shè)計(jì)目標(biāo)5</b></p><p><b> 2概要設(shè)計(jì)5</b></p><p><b> 2.1設(shè)計(jì)目的5</b></p><p><b> 2.2設(shè)計(jì)儀器5</b></p><p> 2.3設(shè)計(jì)內(nèi)容12</p><
5、;p><b> 3詳細(xì)設(shè)計(jì)12</b></p><p> 3.1系統(tǒng)需求分析12</p><p> 3.2系統(tǒng)目標(biāo)14</p><p> 3.3功能分析14</p><p> 3.4詳細(xì)步驟15</p><p><b> 4總結(jié)18</b><
6、;/p><p> 參考文獻(xiàn)(資料)19</p><p><b> 設(shè)計(jì)背景</b></p><p> 自古就有:“一寸光陰,一寸金”的說法。而隨著人類的進(jìn)步科學(xué)技術(shù)的發(fā)展時間觀也越來越被人們重視,而能夠準(zhǔn)確的知道時間能夠提高人們的工作效率,能更好的在規(guī)定的時間內(nèi)完成所規(guī)定的工作 。因此能有隨時隨地的知道當(dāng)前時間是非常重要的。隨著科學(xué)技術(shù)的發(fā)
7、展,單片機(jī)技術(shù)的不斷完善,使得數(shù)字鐘的設(shè)計(jì)變得更加的靈便、更加簡單、功能更加的完善、計(jì)時也更加的準(zhǔn)確。本設(shè)計(jì)實(shí)用簡單,設(shè)計(jì)方便,計(jì)時準(zhǔn)確,能夠?qū)δ?、月、日、周、日、時、分、秒進(jìn)行準(zhǔn)確的計(jì)時,可以讓人們隨時知道時間。</p><p><b> 1設(shè)計(jì)目標(biāo)</b></p><p> 本設(shè)計(jì)主要實(shí)現(xiàn)電子時鐘顯示用LED數(shù)碼管顯示,格式為:XX XX XX,由左向右分別為
8、:時、分、秒,比如:23 20 40表示23時20分40秒,剛開始工作時應(yīng)顯示為:12 00 00,并且要實(shí)現(xiàn)對時分秒進(jìn)行校準(zhǔn)。</p><p><b> 2概要設(shè)計(jì)</b></p><p><b> 2.1設(shè)計(jì)目的</b></p><p> 本設(shè)計(jì)利用AT89C52的特點(diǎn)及DS1302的特點(diǎn),提出一種基DS1302
9、單片機(jī)控制,再利用數(shù)碼管顯示的數(shù)字鐘。本系統(tǒng)硬件利用AT89S52作為CPU進(jìn)行總體控制,通過DS1302時鐘芯片獲取準(zhǔn)確詳細(xì)的時間(年、月、日、周、日、時、分、秒準(zhǔn)確時間),對時鐘信號進(jìn)行控制,同時利用液晶顯示芯片LCD1602對時間進(jìn)行準(zhǔn)確顯示年、月、日、周、日、時、分、秒。該數(shù)字鐘硬件電路簡單,使用靈活,功能穩(wěn)定,顯示準(zhǔn)確且無論對于社會或者科研也有一定的研究價值。</p><p><b> 2.
10、2設(shè)計(jì)儀器</b></p><p> 根據(jù)系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖來對每個部分的電路進(jìn)行分析和說明,重點(diǎn)講述微控制器AT89S52、數(shù)碼管顯示模塊、實(shí)時時鐘芯片DS1302。</p><p> 2.2.1 MCU微控制器電路</p><p> AT89S52的塑封圖如圖2.1所示,它為DIP40雙列直插塑料封裝。AT89S52作為系統(tǒng)的核心控制元件,只有它
11、能正常工作后才能使其它的元件進(jìn)入正常工作狀態(tài)。因此,下面對AT89S52進(jìn)行必要的說明,AT89S52的管腳如圖2.2所示。</p><p> 圖2.1 AT89C52封裝圖 圖2.2 AT89C52引腳圖</p><p> 1)VCC:40腳,供電電壓,一般接+5V電壓。</p><p> 2)GND:20腳,接工作地。
12、</p><p> 3)P0口:1~8腳,P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。</p><p> 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上電阻。但是P0口在程序校驗(yàn)作為輸出指令字節(jié)時,需要外部加上拉電阻,一般上拉電阻選4.7K~10K為宜。本設(shè)計(jì)
13、中用5.1K的排阻對P0口進(jìn)行上拉電平。</p><p> 4)P1口:32~39腳,P1口是一個內(nèi)部具有上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4個TTL門電流。P1端口寫入“1”后,被內(nèi)部上拉電阻把端口拉高,此時可以作為作輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。</p><p> 5)P2口:20~27腳,P2 口是一個具有內(nèi)部上拉電阻
14、的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。6)P3口:10~17腳,P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P3 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。</p><p> 7)RESET:9腳,復(fù)位輸入端。當(dāng)振蕩器復(fù)位器件時,
15、要保持RST腳兩個機(jī)器周期的高電平時間。</p><p> 8):30腳,當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于系統(tǒng)校驗(yàn)。</p><p> 9)PSEN:29腳,外部程序存儲器的選通信號。</p&
16、gt;<p> 10):31腳,訪問外部程序存儲器控制信號。當(dāng)為低電平時,讀取外部程序存儲器;當(dāng)端為高電平時,則讀取內(nèi)部程序存儲器,設(shè)計(jì)中一般接高電平。</p><p> 11)XTAL1:19腳,振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。如采用外部時鐘源時,XTAL1為輸入端。</p><p> 12)XTAL2:18腳,振蕩器反相放大器的輸出端。如采用外部時鐘源時
17、,XTAL2應(yīng)懸空不接。</p><p> 2.2.2 LCD液晶顯示電路</p><p> 液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在各種小系統(tǒng)中得到了更廣泛的應(yīng)用。本設(shè)計(jì)中使用的液晶顯示模塊是LCD1602。圖2.3所示為本設(shè)計(jì)LCD1602的連接圖。</p><p> 圖2.3 LCD1602連接圖</p><
18、;p> LCD1602是一種用5x7點(diǎn)陣圖形來顯示字符的液晶顯示器模塊,它顯示的容量為2行16個字。其實(shí)物如圖2.4和圖2.5所示,它的顯示內(nèi)容豐富、體積小、美觀和易于控制都是本設(shè)計(jì)選擇作為顯示模塊的原因。其引腳結(jié)構(gòu)圖如圖2.6所示。</p><p> 圖2.4 LCD1602正面圖</p><p> 圖2.5 LCD1602反面圖</p><p>
19、 圖2.6 LCD1602引腳結(jié)構(gòu)圖</p><p> 關(guān)于LCD1602的引腳說明如下:</p><p> 1)第1腳:GND為地電源。</p><p> 2)第2腳:VCC接+5V電源。</p><p> 3)第3腳:VEE為液晶顯示器對比度調(diào)整端。接+5V電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使
20、用時可以通過一個10K的精密電位器調(diào)整對比度,一般對比電壓為0.7V左右。</p><p> 4)第4腳:RS為寄存器選擇。高電平時選擇數(shù)據(jù)寄存器,否則選擇指令寄存器。</p><p> 5)第5腳:為讀寫信號線。高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平為高電平時可以讀出忙信號,當(dāng)RS為高電平為低電平時可以寫入數(shù)據(jù)。<
21、/p><p> 6)第6腳:E端為使能端。當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。</p><p> 7)第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。 </p><p> 8)第15腳:背光燈VCC,一般直接和+5V電源相連接。</p><p> 9)第16腳:背光燈GND。</p><p> LCD160
22、2液晶模塊內(nèi)部的字符發(fā)生存儲器已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,這些字符圖有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。 LCD1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2.8所示。</p><p> 它的讀寫操
23、作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的(說明:1為高電平,0為低電平)。</p><p> 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。</p><p> 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H 。</p><p> 指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 。S:屏幕上所有文字是否左移或者右移。高電平表示有效
24、,低電平則無效 。</p><p> 指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示。 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)。 B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍 。</p><p> 指令5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo) 。</p><p> 指令6:功
25、能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線。 N:低電平時為單行顯示,高電平時雙行顯示。 F:低電平時顯示5X7的點(diǎn)陣字符,高電平時顯示5x10的點(diǎn)陣字符 (有些模塊是 DL:高電平時為8位總線,低電平時為4位總線)。</p><p> 指令7:字符發(fā)生器RAM地址設(shè)置 。</p><p> 指令8:DDRAM地址設(shè)置 。</p><p&g
26、t; 指令9:讀出忙信號和光標(biāo)地址。 BF為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙,模塊就能接收相應(yīng)的命令或者數(shù)據(jù)。</p><p> 指令10:寫數(shù)據(jù) 。</p><p> 指令11:讀數(shù)據(jù) 。</p><p> 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志位是不是為低電平,是低電平則表示不
27、忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。表2.9為 LCD1602的內(nèi)部顯示地址。</p><p> 表2.9 LCD1602的內(nèi)部顯示地址</p><p> 2.2.3 實(shí)時時鐘電路</p><p> 本設(shè)計(jì)使用的實(shí)時時鐘電路芯片是美國DALLAS公司生產(chǎn)的一種高性能、低功耗、帶RAM的實(shí)時時鐘電路芯片DS13
28、02,其引腳如圖2.11所示。VCC1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運(yùn)行。DS1302由VCC1或VCC2兩者中的較大 者供電;當(dāng)VCC2大于VCC1+0.2V時,VCC2給DS1302供電;當(dāng)VCC2小于VCC1時,DS1302由VCC1供電。X1和X2是振蕩源,外接32.768kHz晶振。是復(fù)位/片選線,通過把輸 入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。
29、 圖2.11 DS1302引腳圖</p><p> 輸入有兩種功能。首先,接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時在Vcc≥2.5V之前,必須保持低電平。只有在SCLK為低電平時,才能將置為高電平。I/O為串行數(shù)據(jù)
30、輸入輸出端(雙向),SCLK始終是輸入端。本設(shè)計(jì)入端。本設(shè)計(jì)連接圖如圖3.15所示,其中C1和C2起微調(diào)晶振的作用。 </p><p> DS1302接線圖 </p><p><b> 2.2.4復(fù)位電路</b></p><p> 在AT89S52單片機(jī)中的振蕩器運(yùn)行時,引腳上保持到少2個機(jī)器周期的高電平輸入信號,復(fù)位過程即可完成。
31、根據(jù)此原理,本設(shè)計(jì)采用上電復(fù)位和按鍵復(fù)位嵌套在系統(tǒng)中,增強(qiáng)了系統(tǒng)的實(shí)用性。本設(shè)計(jì)的具體復(fù)位圖如下。</p><p><b> 2.2.5晶振電路</b></p><p> AT89S52在工作時需要外部提供時鐘信號,因此,本設(shè)計(jì)選擇在其18腳19腳之間接上12MHz的晶振,為單片機(jī)提供1μs的機(jī)器振蕩周期。其電路連接圖如圖所示。在圖中,電容器C3.C4起穩(wěn)定振蕩頻
32、率、快速起振的作用,其電容值一般在20~50pF</p><p><b> 2.3設(shè)計(jì)內(nèi)容</b></p><p> 根據(jù)系統(tǒng)設(shè)計(jì)的要求和設(shè)計(jì)思路,確定該系統(tǒng)的系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖。如圖2.12所示。硬件電路主要由MCU微處理控制器單元、DS1302時鐘電路、儲存器、復(fù)位電路、晶振電路、數(shù)碼管顯示模塊構(gòu)成。</p><p> 圖2.12 系統(tǒng)結(jié)
33、構(gòu)圖設(shè)計(jì)</p><p><b> 3詳細(xì)設(shè)計(jì)</b></p><p><b> 3.1系統(tǒng)需求分析</b></p><p> 根據(jù)設(shè)計(jì)要求,結(jié)合實(shí)際情況和設(shè)計(jì)成本要求,對系統(tǒng)主要部分的電路方案敘述如下:</p><p> 3.1.1 MCU微處理控制器的方案對比選擇</p>
34、<p> 方案一:MCU微處理控制器的種類很多,有ATMEL公司生產(chǎn)的AT89SXX系列單片機(jī),其中有8位的單片機(jī),也有16位的單片機(jī)。AT89S52為8位的單片機(jī),它是一種低損耗、高性能的CMOS微處理器,片內(nèi)有8K字節(jié)的存儲空間,128字節(jié)RAM、4個8位并口、1個全雙工串行口、2個16位定時/計(jì)數(shù)器,尋址范圍64K。并且可以在線進(jìn)行重復(fù)編程、快速擦除、快速寫入程序,能重復(fù)擦除 / 寫入1000次左右,數(shù)據(jù)保存時間為十
35、年。</p><p> 方案二:微處理控制器也有凌陽公司生產(chǎn)的,同樣有8位的CPU和16位的CPU。它也有很多特點(diǎn),比如:體積小 、集成度高、可靠性好、易于擴(kuò)展;具有較強(qiáng)的中斷處理能力;功能強(qiáng)、效率高的指令系統(tǒng)及低功耗、低電壓。但是其應(yīng)用領(lǐng)域主要是為控制處理數(shù)據(jù)處理以及數(shù)字信號處理等領(lǐng)域,其中凌陽的16位單片機(jī)就是為適應(yīng)這種發(fā)展而設(shè)計(jì)的。</p><p> 綜上所述,在本設(shè)計(jì)中,考慮到
36、本人對單片機(jī)的運(yùn)用熟練度和單片機(jī)的功能領(lǐng)域,選擇ATMEL公司生產(chǎn)的AT89S52單片機(jī)作為本設(shè)計(jì)的微控制器。</p><p> 3.1.2 LCD液晶顯示模塊的方案對比選擇</p><p> 方案一:顯示的方法有很多種,其中LED數(shù)碼管是常用的一種顯示方法。在這個設(shè)計(jì)中,可以用LED數(shù)碼管來顯示相應(yīng)站臺的站號,提醒司機(jī)知道是去向或者是回向的第幾站,讓司機(jī)心里有數(shù),同時增加顯示數(shù)字的
37、可讀性。該設(shè)計(jì)中,顯示站號至少要2個LED數(shù)碼管,顯示時間信息要12個,顯示星期信息要1個,總共需要15個LED數(shù)碼管。單價是1.2元,那15個共需要15×1.2=18(元)。另外在PCB布線過程中很困難,給設(shè)計(jì)帶來很不方便的使用。</p><p> 方案二:LCD1602液晶顯示器是一塊價廉物美的器件,其體積小,控制簡單,使用方便。它能顯示2行16列的數(shù)字或英文信息,另外連接它的線很少,只要8根數(shù)據(jù)
38、線和3根控制線,這樣給使用帶來很大的方便,節(jié)約單片機(jī)I/O口。市場上一塊LCD1602的價格也只在15元左右,比數(shù)碼管便宜。</p><p> 方案三:功能強(qiáng)大、可以顯示中文文字的LCD12864液晶顯示器,其價格貴,體積大,控制比LCD1602稍微復(fù)雜點(diǎn),但是使用也是很方便的。在控制使用上,需要8根數(shù)據(jù)線和3根控制線,其余的PSB、和BLA直接與VCC相連接。但是在本設(shè)計(jì)中使用它的性價比不高,體積大,占用覆銅
39、板面積大,而且笨拙。</p><p> 綜上所述,在LCD液晶顯示模塊上,選擇方案二中的LCD1602液晶顯示器作為本設(shè)計(jì)的顯示模塊。顯示時間年、月、日、周、日、時、分、秒。</p><p> 3.1.3 實(shí)時時鐘電路的方案對比選擇</p><p> 方案一:DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時時鐘電路芯片,它可以對年、
40、月、日、星期、時、分、秒進(jìn)行計(jì)時,具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是有主電源/后背電源雙電源引腳,可以同時對后背電源進(jìn)行涓細(xì)電流充電。</p><p> 方案二:DS12887也是是美國DALLAS半導(dǎo)體公司最新推出的串
41、行接口實(shí)時時鐘芯片,采用CMOS技術(shù)制成,內(nèi)部具有晶振和時鐘芯片備份鋰電池。采用DS12887芯片設(shè)計(jì)的時鐘電路無需任何外圍電路和器件,并具有良好的微機(jī)接口。DS12887芯片具有微功耗、外圍接口簡單、精度高、工作穩(wěn)定可靠等優(yōu)點(diǎn),可廣泛用于各種需要較高精度的實(shí)時時鐘系統(tǒng)中。但是由于它是串行接口的,外接單片機(jī)需要接很多引腳,才能對它達(dá)到一個很好的控制。</p><p> 綜上所述,結(jié)合本設(shè)計(jì)的實(shí)際問題及單片機(jī)的I
42、/O口線,選擇方案一中的DS1302作為本設(shè)計(jì)的實(shí)時時鐘電路的芯片。其控制方便、占單片機(jī)I/O口線少、體積小、價格便宜,方便本設(shè)計(jì)的使用。</p><p><b> 3.2系統(tǒng)目標(biāo)</b></p><p> 本設(shè)計(jì)主要實(shí)現(xiàn)電子時鐘顯示用LED數(shù)碼管顯示,格式為:XX XX XX,由左向右分別為:時、分、秒,比如:23 20 40表示23時20分40秒,剛開始工作時
43、應(yīng)顯示為:12 00 00,并且要實(shí)現(xiàn)對時分秒進(jìn)行校準(zhǔn)。</p><p><b> 3.3功能分析</b></p><p><b> 主程序</b></p><p> 系統(tǒng)的主程序設(shè)計(jì)是用來控制整個系統(tǒng)運(yùn)行時的時序工作狀態(tài),因此,完善的程序設(shè)計(jì)是本設(shè)計(jì)的重點(diǎn)內(nèi)容。下圖是是本設(shè)計(jì)使用的主程序設(shè)計(jì)流程圖。</p&g
44、t;<p> 以下是程序主程序的一下部分:</p><p> ORG 00H</p><p> AJMP START</p><p> ;==================================</p><p> ORG 0050H</p><p><b>
45、START:</b></p><p> MOV SP,#70H</p><p> LCALL INITIALZE ;調(diào)用初始化液晶屏幕</p><p> LCALL INIT_P ;調(diào)用初始畫面</p><p> MOV A, #00000001B ;清液晶屏,寫成空白</p><p
46、> LCALL WRITE_COM</p><p> ;============主程序================</p><p><b> MAIN:</b></p><p> LCALL RD_DS1302</p><p> LCALL DATA_BUF</p><p>
47、; LCALL DISPLAY</p><p> AJMP MAIN</p><p> ………………………………</p><p><b> 3.4詳細(xì)步驟</b></p><p> 按圖4-1連接實(shí)驗(yàn)線路。</p><p><b> (2)寫程序</b>&l
48、t;/p><p> #include”Intrins.h”</p><p> sbit t_clk=P3^3;</p><p> sbit t_io=P3^4;</p><p> sbit rst_P3^5;</p><p> sbit BIT7=ACC^7;</p><p> sbit
49、 BITO=ACC^O;</p><p> void inputbyte(unsigned char ucda)//八位數(shù)據(jù)寫入函數(shù)</p><p><b> {</b></p><p> unsigned char i;</p><p> ACC=ucda;//將要寫入的數(shù)放入ACC</p>&l
50、t;p> t_rst=l;//啟動數(shù)據(jù)傳送</p><p> for(i=8;i>0;i--)//循環(huán)八次,寫入八位數(shù)據(jù),從低位到</p><p><b> {</b></p><p> t_io=BIT0;//將Accn0的值賦給時鐘數(shù)據(jù)線</p><p><b> t_clk=0;&l
51、t;/b></p><p> t_clk=l;;;//在時鐘線的上升沿寫入一位數(shù)據(jù)</p><p> ACC=ACC>>1;//將高一位數(shù)據(jù)移至ACC^0</p><p><b> }</b></p><p><b> }</b></p><p>
52、 unsigned char outputbyte(void)//八位數(shù)據(jù)讀出函數(shù)</p><p><b> {</b></p><p> unsigned char i;</p><p> t_rst=1;//啟動數(shù)據(jù)傳送</p><p> for(i=8;i>0;i--)//讀出八位數(shù)據(jù),從低位到高位&
53、lt;/p><p><b> {</b></p><p> ACC=ACC>>1;//將前一下降沿讀出的數(shù)據(jù)右移一位,從而該次讀出的數(shù)放入Accn7</p><p> t_io=l;腳l口輸入之前置l</p><p><b> t_clk=l;</b></p><
54、p> t_clk=0;;;//時鐘線下降沿讀出一位數(shù)據(jù)</p><p> BIT7=t_io;//can not use P1^7=t_io for P1^7 not varient</p><p><b> }</b></p><p> retum(ACC);</p><p><b> }&l
55、t;/b></p><p> //將指令或數(shù)據(jù)寫入對應(yīng)寄存器</p><p> void wr_l302(unsigned char add,unsigned char ucda)</p><p><b> {</b></p><p><b> t_rst=0;</b></p&g
56、t;<p><b> t_clk=O;</b></p><p> t_rst=l;;;</p><p> inputbyte(add);</p><p> //delayl5(1);</p><p> inputbyte(ucda);</p><p><b>
57、t_rst=O:</b></p><p><b> t_io=l;</b></p><p><b> }</b></p><p> unsigned char re_1302(unsigned char add)//賣出對應(yīng)寄存器內(nèi)容</p><p><b> {<
58、;/b></p><p> unsigned char ucda;</p><p><b> t_rst=0;</b></p><p><b> t_clk=0;</b></p><p> t_rst=1;;;</p><p> inputbyte(add);
59、</p><p> ?。?delayl5(1);</p><p> ucda=outputbyte();</p><p><b> t_rst=0;</b></p><p> return(ucda);</p><p><b> }</b></p>&l
60、t;p> void setl302(unsigned char *pda)∥設(shè)置時間初值</p><p><b> {</b></p><p> unsigned char i;</p><p> unsigned char add=0x80;</p><p> wr_1302(0X8e,Ox00);//
61、將控制寄存器值設(shè)為零,最高位WP=0允許寫</p><p> for(i=7;i>0;i--)//將七個時問初值寫入對應(yīng)寄存器</p><p><b> {</b></p><p> wr_1302(add,*pda);//寫對應(yīng)時鐘寄存器的值</p><p><b> pda++;</b&
62、gt;</p><p><b> add+=2;</b></p><p><b> }</b></p><p> wr_1302(0x8e,0x80);//寫保護(hù),防止干擾影響時間值</p><p><b> }</b></p><p> vo
63、id get_l302(unsigned char curtime[])//讀取當(dāng)前時間值</p><p><b> {</b></p><p> unsigned chari,j;</p><p> unsigned char add=Ox8l;</p><p> bdata unsigned char sec
64、;</p><p> fo(i=0;i<7;i++)</p><p><b> {</b></p><p> curtime[i]=re_1302(add);//讀對應(yīng)時鐘寄存器的值</p><p> sec= curtime [i];</p><p> j=sec>>
65、4;//將BcD碼轉(zhuǎn)化成對應(yīng)十進(jìn)制數(shù)</p><p><b> j*=10;</b></p><p> sec=sec&0xOf:</p><p><b> sec+=j;</b></p><p> curtime[i]=sec;</p><p><b>
66、 add+=2;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> (3)運(yùn)行程序</b></p><p> DSl302與微處理器作數(shù)據(jù)交換時,首先由微處理器向芯片發(fā)送命令字節(jié),命令字節(jié)最高位MS
67、B(D7)必須為邏輯1,如果D7=0,則禁止寫DSl302,即寫保護(hù);D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入),D0=1,指定讀操作(輸出)。</p><p> 在DSl302的時鐘日歷或RAM進(jìn)行數(shù)據(jù)傳送時,DSl302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個SCLK周期的上升沿輸
68、入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。</p><p> 要特別說明的是備用電源B1,可以用電池或者超級電容(0.1F以上)。雖然DSl302在主電源掉電后,耗電很小,但如果要保證時鐘長時間正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6V充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容代替。100uF就可以保證l小時的正常走時。DSl302在第一次加電后,
69、須進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時間。</p><p><b> 4總結(jié)</b></p><p> 通過這次對DS1302的數(shù)字鐘的設(shè)計(jì)與制作過程,加強(qiáng)了我們動手、思考和解決問題的能力。</p><p> 在設(shè)計(jì)過程中我們先后利用keil軟件進(jìn)行編程、Proteus進(jìn)行仿真、protel進(jìn)行原理圖及PCB圖的繪制,最后再利用
70、學(xué)習(xí)板進(jìn)行檢查看程序是否能顯示其功能。在過程中讓我進(jìn)一步深刻的學(xué)習(xí)各種軟件的利用以及各種軟件給我們帶來的便利。特別是proteus在沒有實(shí)物的情況下進(jìn)行仿真進(jìn)行程序的檢查看是否能現(xiàn)實(shí)功能。</p><p> 該數(shù)字鐘通過單片機(jī)AT89C52做CPU進(jìn)行總的控制,基于時鐘芯片DS1302產(chǎn)生時間,利用LCD1602進(jìn)行液晶顯示的一個簡易的數(shù)字鐘。LCD1602能夠?qū)δ?、月、日、周、日、時、分、秒進(jìn)行計(jì)時及顯示。通
71、過設(shè)計(jì)后能夠熟練的掌握時鐘芯片DS1302、LCD1620、AT89C52的的各個引腳及功能,并能夠掌握和運(yùn)用這幾個芯片。</p><p> 通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,難免會遇到過各種各樣的問題,
72、同時在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。 這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多專業(yè)知識問題,最后在老師的辛勤指導(dǎo)下,終于游逆而解。同時,在老師的身上我們學(xué)也到很多實(shí)用的知識,在次我們表示感謝!同時,對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!</p><p><b> 參考文獻(xiàn)(資料)</b></p>
73、;<p> [1] 張昆藏:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu).北京:科學(xué)出版社,1994</p><p> [2] 于復(fù)生,宋現(xiàn)春,艾興:時鐘芯片DSl302及其在數(shù)據(jù)記錄中的應(yīng)用.電子技術(shù)應(yīng)用,2003,(3)</p><p> [3] 陶海敏:利用DSl302時鐘芯片實(shí)現(xiàn)“時間鎖”的方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003,(3)</p><p> [4
74、] DSl302的說明書</p><p> [5] 51單片機(jī)的原理與應(yīng)用</p><p> [6] 張迎新:單片機(jī)初級教程——單片機(jī)基礎(chǔ)(第二版) 北京航空航天大學(xué)出版社 2006.8</p><p> [7] 閻石:數(shù)字電子技術(shù)基礎(chǔ) (第五版) 北京高等教育出版社 2006.1~550</p><p> [8] 蔡明文,馮
75、先成:單片機(jī)課程設(shè)計(jì) 華中科技大學(xué)出版社 2007.3</p><p> [9] 陳明螢:8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材 清華大學(xué)出版社 2004</p><p> [10]康華光:模擬電子技術(shù)基礎(chǔ)(第五版) 高等教育出版社 2006</p><p> [11]黃智偉:全國大學(xué)生電子設(shè)計(jì)競賽電路(第一版)航空航天大學(xué)出版社 2006.36</p
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于ds1302的高精度多功能電子時鐘課程設(shè)計(jì)
- ds1302
- ds1302電子時鐘制作畢業(yè)設(shè)計(jì)
- ds1302時鐘數(shù)碼管課程設(shè)計(jì)--用數(shù)碼管顯示實(shí)時日歷時鐘的設(shè)計(jì)
- 時鐘芯片ds1302中文資料
- ds1302教程
- 基于ds1302實(shí)時日歷時鐘顯示系統(tǒng)畢業(yè)設(shè)計(jì)說明書
- 實(shí)時時鐘模ds1302程序列子
- 基于ds1302時鐘芯片數(shù)字鐘報告
- 單片機(jī)驅(qū)動ds1302時鐘芯片
- ds1302實(shí)時時鐘c程序加仿真原理圖
- DS1302介紹.doc
- 基于51單片機(jī)ds1302萬年歷課程設(shè)計(jì)報告
- 基于51單片機(jī)ds1302萬年歷課程設(shè)計(jì)報告
- 有關(guān)ds1302 時鐘和8051中斷c程序的問題
- 外文翻譯--ds1302涓流充電計(jì)時芯片
- 用ds1302與lcd1602可調(diào)數(shù)字萬年歷課程設(shè)計(jì)
- 硬件課程設(shè)計(jì)--數(shù)字時鐘設(shè)計(jì)
- 硬件技術(shù)綜合課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)——基于ds1302的電子萬年歷設(shè)計(jì)
評論
0/150
提交評論