陳磊萬(wàn)年歷設(shè)計(jì)報(bào)告 (二)_第1頁(yè)
陳磊萬(wàn)年歷設(shè)計(jì)報(bào)告 (二)_第2頁(yè)
陳磊萬(wàn)年歷設(shè)計(jì)報(bào)告 (二)_第3頁(yè)
陳磊萬(wàn)年歷設(shè)計(jì)報(bào)告 (二)_第4頁(yè)
陳磊萬(wàn)年歷設(shè)計(jì)報(bào)告 (二)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

畢業(yè)實(shí)踐報(bào)告

專業(yè)班級(jí)自動(dòng)化1004班

學(xué)生姓名____________________

學(xué)號(hào)____________________

實(shí)踐性質(zhì)課程設(shè)計(jì)

實(shí)踐成績(jī)____________________

指導(dǎo)教師____________________

長(zhǎng)江職業(yè)學(xué)院工學(xué)院

二。一。年十一月印制

基于51單片機(jī)的萬(wàn)年歷設(shè)計(jì)

單片機(jī)經(jīng)過(guò)兒十年的發(fā)展,已經(jīng)廣泛應(yīng)用于生活中的各個(gè)領(lǐng)域。單片機(jī)以其體

積小、功能全、性價(jià)比高等諸多優(yōu)點(diǎn),在許多行業(yè)都得到了廣泛應(yīng)用。在工業(yè)控

制、家用電器、通信設(shè)備、信息處理、尖端武器等各種測(cè)控領(lǐng)域的應(yīng)用中獨(dú)占鰲

頭,單片機(jī)開(kāi)發(fā)技術(shù)已成為電子信息、電氣、通信、自動(dòng)化、機(jī)電一體化等專業(yè)

技術(shù)人員必須掌握的技術(shù)。

基于單片機(jī)的萬(wàn)年歷作為設(shè)計(jì)的課題,因?yàn)樗泻芎玫拈_(kāi)放性和可發(fā)揮性,對(duì)

作者的要求比較高,不僅考察了對(duì)單片機(jī)的掌握能力而且強(qiáng)調(diào)了對(duì)單片機(jī)擴(kuò)展的

應(yīng)用。另外液晶顯示的萬(wàn)年歷已經(jīng)越來(lái)越流行,特別適合在家庭居室、辦公室、

大廳、會(huì)議室、車站和廣場(chǎng)等地方使用,它具有顯示清晰直觀、走時(shí)準(zhǔn)確、可以

進(jìn)行夜視等功能,并且還可以擴(kuò)展出其它多種功能。所以,電子萬(wàn)年歷作為設(shè)計(jì)

課題很有價(jià)值。

現(xiàn)在對(duì)于電子萬(wàn)年歷的設(shè)計(jì)大多運(yùn)用51單片機(jī)。主要是因?yàn)?1單片機(jī)種類齊

全、結(jié)構(gòu)體系完整、指令系統(tǒng)功能完善、性能優(yōu)越、具有較高可靠性和高性價(jià)比

等特點(diǎn)。

本篇論文主要介紹了運(yùn)用單片機(jī)實(shí)現(xiàn)電子萬(wàn)年歷的設(shè)計(jì),萬(wàn)年歷系統(tǒng)擬用

STC89c51單片機(jī)控制,以DS1302時(shí)鐘芯片計(jì)時(shí)、1602液晶屏顯示。系統(tǒng)主要由

單片機(jī)控制電路,顯示電路以及校正電路三個(gè)模塊組成。本文闡述了系統(tǒng)的硬件

工作原理,所應(yīng)用的各個(gè)接口模塊的功能以及其工作過(guò)程,論證了設(shè)計(jì)方案理論

的可行性。

目錄

第一章緒論........................................1

1.1本課題主要的研究工作....................................1

第二章系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn).......................2

2.1電路設(shè)計(jì)框圖............................................2

2.2系統(tǒng)硬件概述............................................2

2.3主要單元電路的設(shè)計(jì)......................................2

2.3.1單片機(jī)主控制模塊的設(shè)計(jì)...............................2

2.3.2時(shí)鐘電路模塊的設(shè)計(jì)...................................3

2.3.3獨(dú)立式鍵盤(pán)設(shè)計(jì).......................................5

2.3.4顯示模塊的設(shè)計(jì)......................................5

第三章系統(tǒng)的軟件設(shè)計(jì)..............................7

3.1程序流程圖...............................................7

3.1.1系統(tǒng)總流程圖.........................................7

3.1.2DS1302時(shí)鐘程序流程圖...............................8

3.1.3LCD顯示程序流程圖...............錯(cuò)誤!未定義書(shū)簽。

3.2程序的設(shè)計(jì)..............................................9

3.2.1DS1302讀寫(xiě)程序......................................9

3.2.2數(shù)碼管顯示程序...................錯(cuò)誤!未定義書(shū)簽。

第四章仿真與調(diào)試.................................12

4.1KEIL軟件調(diào)試流程........................................12

4.2PROTEUS軟件運(yùn)行流程.....................................12

4.3萬(wàn)年歷的功能仿真.......................................12

致謝............................................13

參考文獻(xiàn)..........................................15

附錄:主程序....................................16

第一章緒論

1.1本課題主要的研究工作

本項(xiàng)目是一種基于AT89c51片機(jī)的萬(wàn)年歷設(shè)計(jì),本方案以AT89c51片機(jī)作為

主控核心,與時(shí)鐘芯片DS1302、按鍵、LCD1602液晶顯示器組成硬件系統(tǒng)。在硬

件系統(tǒng)中設(shè)有獨(dú)立按鍵和LCD1602顯示器,能顯示豐富的信息,根據(jù)使用者的需

要可以隨時(shí)對(duì)時(shí)間進(jìn)行更改,讀取方便、顯示直觀。

當(dāng)程序執(zhí)行后,LCD顯示即時(shí)時(shí)間、年月日、星期。設(shè)置4個(gè)操作鍵:K1:選

擇鍵;K2:加鍵;K3:減鍵;K4:確定鍵。

1本設(shè)計(jì)的主要內(nèi)容:

(1)熟悉萬(wàn)年歷各模塊的工作原理;

(2)選擇適當(dāng)?shù)男酒驮骷?,確定系統(tǒng)電路,繪制電路原理圖,尤其

是各接口電路;

(3)熟悉單片機(jī)使用方法和C語(yǔ)言,編寫(xiě)出相應(yīng)模塊的應(yīng)用程序;

(4)分別在各自的模塊中調(diào)試出對(duì)應(yīng)的功能,在Proteus軟件上進(jìn)行仿

真,并實(shí)現(xiàn)各種功能。

2設(shè)計(jì)目標(biāo):萬(wàn)年歷實(shí)現(xiàn)以下三個(gè)功能:

(1)具有年、月、日、星期、時(shí)、分、秒等功能;

(2)具備年、月、日、星期、時(shí)、分、秒校準(zhǔn)功能,具備自動(dòng)調(diào)節(jié)閏年

的功能;

(3)具有與即時(shí)時(shí)間同步的功能。

1

第二章系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)

2.1電路設(shè)計(jì)框圖

根據(jù)設(shè)計(jì)方案給出了系統(tǒng)總體的設(shè)計(jì)框圖,如圖1所示:

S主

T

C控

8

LCD液晶模塊9制

c模

5

1塊鍵盤(pán)模塊

DS13O2模塊

圖I

為使時(shí)鐘走時(shí)與標(biāo)準(zhǔn)時(shí)間一致,校時(shí)電路是必不可少的,鍵盤(pán)模塊用來(lái)校正

液晶上顯示的時(shí)間;STC89C51單片機(jī)通過(guò)輸出各種電脈沖信號(hào)來(lái)驅(qū)動(dòng)控制各部分

正常工作;而系統(tǒng)的時(shí)間、等數(shù)據(jù)則最終通過(guò)液晶模塊顯示出來(lái)。

2.2系統(tǒng)硬件概述

本電路是以STC89C51單片機(jī)為控制核心,該芯片具有在線編程功能,功耗低,

能在3.3V的超低壓下工作;

時(shí)鐘芯片采用DS1302,它是一款高性能、低功耗、自帶RAM的實(shí)時(shí)時(shí)鐘芯片,

具有掉電自動(dòng)保存功能??勺詣?dòng)對(duì)秒、分、時(shí)、日、周、月、年進(jìn)行計(jì)數(shù),具有

閏年補(bǔ)償功能,而且精度高位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V?5.5V范圍

內(nèi),2.5V時(shí)耗電小于300nA。

顯示模塊采用1602顯示屏,它內(nèi)置192種字符,可顯示32個(gè)符號(hào)或數(shù)字,清

晰可見(jiàn),而且功率消耗小壽命長(zhǎng)抗干擾能力強(qiáng)。其工作電壓為5vo

2.3主要單元電路的設(shè)計(jì)

2.3.1單片機(jī)主控制模塊的設(shè)計(jì)

一個(gè)典型的單片機(jī)最小系統(tǒng)一般由時(shí)鐘電路、復(fù)位電路、電源指示燈和外部

擴(kuò)展接口等部分組成。

2

單片機(jī)的最小系統(tǒng)如下圖所示,單片機(jī)的XTALO和XTAL1引腳用于連接晶振電

路。RESET為復(fù)位引腳,連接復(fù)位電路,用于初始化MCU。

C

U2

30pF19

I?XTAL1

I——IX1

CRYSTAL

18

XTAL2

SO30pF

2.3.2時(shí)鐘電路模塊的設(shè)計(jì)

DS1302內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM,通過(guò)簡(jiǎn)單的串行接口

與單片機(jī)進(jìn)行通信。圖中VCC1為后備電源,VCC2為主電源。DS1302由VCC1或VCC2

兩者中的較大者供電。所以在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。

XI和X2是振蕩源,外接32.768KHz晶振用來(lái)為芯片提供計(jì)時(shí)脈沖。RST是復(fù)位/

片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。DS1302

的硬件接線圖如圖2所示:

3

_Z

7P1.1

4P1.2

P1.3

5P1.4

7P1.5

P1.6

AP1.7

AT89C51

〈TEXT〉

co

0^6

、0U1

一00

>>DS1302

<TEXT>

ZL

XX

X2

□-

CRYSTAL

圖2

時(shí)鐘芯片DS1302的工作原理:

(1)DS1302的控制字節(jié):DS1302控制字節(jié)的高有效位(位7)必須是邏輯1,

如果它為0,則不能把數(shù)據(jù)寫(xiě)入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘

數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位

0)如為0表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開(kāi)始

輸出

(2)數(shù)據(jù)輸入輸出(I/O):在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿

時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從低位即位0開(kāi)始。同樣,在緊跟8位的控制

指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0

位到高位7。

(3)DS1302的寄存器:DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、

時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式?!癈H”是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為1時(shí),

時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開(kāi)始運(yùn)行?!癢P”

是寫(xiě)保護(hù)位,在任何的對(duì)時(shí)鐘和RAM的寫(xiě)操作之前,“WP”必須為0。當(dāng)“WP”為

4

1時(shí),寫(xiě)保護(hù)位防止對(duì)任一寄存器的寫(xiě)操作。

2.3.3獨(dú)立式鍵盤(pán)設(shè)計(jì)

獨(dú)立式鍵盤(pán)每個(gè)鍵單獨(dú)占用一根I/O口線。鍵盤(pán)的工作方式可分為編程控制

方式和中斷控制方式。CPU在一個(gè)工作周期內(nèi),利用完成其他任務(wù)的空余時(shí)間,調(diào)

用鍵盤(pán)掃描子程序,經(jīng)程序查詢,若無(wú)鍵操作,則返回;若有鍵操作,則進(jìn)而判

斷是哪個(gè)鍵,并執(zhí)行相應(yīng)的鍵處理程序。這種方式為編程掃描方式。由于單片機(jī)

在正常應(yīng)用過(guò)程中,可能會(huì)經(jīng)常進(jìn)行鍵操作,因而編程控制方式使CPU經(jīng)常處于

工作狀態(tài),在進(jìn)行本次設(shè)計(jì)中,只涉及到了選擇、力口、減、確定四個(gè)功能。因此

采用獨(dú)立式鍵盤(pán)。

2.3.4顯示模塊的設(shè)計(jì)

3-8譯碼器的輸入是3個(gè)腳,輸出時(shí)8個(gè)腳,用高低電平表示輸入和輸出。輸入是二進(jìn)制。

Pl.O,Pl.l,P1.2分別表示三位二進(jìn)制數(shù)。二進(jìn)制最大數(shù)位111,輸出時(shí)十進(jìn)制。8個(gè)輸出腳

剛好對(duì)應(yīng)數(shù)碼管的八個(gè)選位。

點(diǎn)亮第。位,給Pl.2,P1.1,P1.0賦值000.寫(xiě)程序P1=0x00

點(diǎn)亮第1位,給P1.2,Pl.l,PL0賦值001.寫(xiě)程序Pl=0x01

點(diǎn)亮第2位,給PI.2,Pl.l,P1.0賦值002.寫(xiě)程序P1=0x02

點(diǎn)亮第3位,給P1.2,Pl.l,P1.0賦值003.寫(xiě)程序P1=0x03

點(diǎn)亮第4位,給PI.2,Pl.l,P1.0賦值004.寫(xiě)程序Pl=0x04

點(diǎn)亮第5位,給P1.2,Pl.LPL0賦值005.寫(xiě)程序Pl=0x05

點(diǎn)亮第6位,給PL2,Pl.l,P1.0賦值006.寫(xiě)程序Pl=0x06

點(diǎn)亮第7位,給Pl.2,Pl.l,P1.0賦值007.寫(xiě)程序P1=0x07

數(shù)碼管從左到右編號(hào)0~7,共八位,其八個(gè)選位分別接到3-8譯碼器的八個(gè)輸出上。數(shù)碼

管是共陰極的,高電平有效。。

5

PDDTADO

PQ.VAD1

PO^ADZ

poa-ADa

PO.4/A04

POLADS

PQJ&AD6

PD.7/AD7

P2OA2

P2.V>e

P22fA1D

P23fA11

P2.4/A12

P2SM3

P2J9A14

P2.7/A15

P3DTRXD

P3.1HXD

pa^nrrn

P33HTH

P3.4/TI]

P3ST1

P3J&UVI

P3.7/inr

0

P3.0/RXD1

P3.1fTXD2

P3.2/INT0"3

P3.3flNTT4

5

P3Mo

6

P3.5H-17

P3.6恒

±P37版36Z

AT89C51?暮1還U3

74HC138

<TEXT>

<(DOujUJUJ

n

6

第三章系統(tǒng)的軟件設(shè)計(jì)

3.1程序流程圖

3.1.1系統(tǒng)總流程圖

系統(tǒng)總流程圖分析:首先系統(tǒng)初始化,系統(tǒng)開(kāi)始運(yùn)行,當(dāng)有設(shè)置鍵按下時(shí)進(jìn)

入修改時(shí)間模式,無(wú)按鍵按下時(shí)讀取時(shí)間、溫度等數(shù)據(jù)送入液晶屏顯示;在修改

時(shí)間模式下設(shè)置時(shí)間完成后再送數(shù)據(jù)到液晶屏顯示,如圖4所示:

圖4

7

3.1.2DS1302時(shí)鐘程序流程圖

入液晶屏顯示。這時(shí)若有設(shè)置鍵按下時(shí),進(jìn)行時(shí)間修改,完成后將數(shù)據(jù)送入

時(shí)鐘芯片;若沒(méi)有按鍵按下,則直接存入EPROM,送入液晶屏顯示。時(shí)鐘程序S1302

開(kāi)始計(jì)時(shí)時(shí),首先進(jìn)行初始化,當(dāng)有中斷信號(hào)時(shí),讀取時(shí)鐘芯片的數(shù)據(jù),如圖5

所示:

開(kāi)始

初始化

8

3.2程序的設(shè)計(jì)

3.2.1DS1302讀寫(xiě)程序

DS1302是SPI總線驅(qū)動(dòng)方式。它不僅要向寄存器寫(xiě)入控制字,還需要讀取相

應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首先要先了解DS1302的控制字。DS1302

的控制字如圖7:

76543210

RAMRD

1A4A3A2A1AO

UR

圖7

控制字總是從最低位開(kāi)始輸出。在控制字指令輸入后的下一個(gè)SCLK時(shí)鐘的上

升沿時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從最低位(0位)開(kāi)始。同樣,在緊跟8

位的控制字指令后的下一個(gè)SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的

數(shù)據(jù)也是從最低位到最高位。依據(jù)讀寫(xiě)時(shí)序如圖8和圖9:

RSTJL

SCLK

1/0YR/W|A0|A1|A2IA3|A4|R/C|[)00-0~Q~0~0~00-

圖8單字節(jié)讀

RSTJI_

sc/^FWWWWHWWWL

I/O—〈R/耐AOIA1IA2IA31A4IR/c|1|D1|D2|D3|D4|D5|D6|D7)----------

圖9單字節(jié)寫(xiě)

在進(jìn)行任何數(shù)據(jù)傳輸時(shí),RST必須被置高電平,每個(gè)SCLK為上升沿時(shí)數(shù)據(jù)被

輸入,下降沿時(shí)數(shù)據(jù)被輸出。先把RST置低,禁止數(shù)據(jù)傳輸,SCLK置低,清零時(shí)

鐘總線,RST再置高,允許數(shù)據(jù)傳輸。傳送完成后,RST置低,禁止字節(jié)的傳送。

部分源程序如下:

voidwrite_byte(uchardat)〃寫(xiě)一個(gè)字節(jié)

(

ACC=dat;

RST=1;

9

for(a=8;a>0;a一)

IO=ACCO;

SCLK=0;

SCLK=1;

ACC=ACC?1;

)

)

ucharread_byte()〃讀一個(gè)字節(jié)

(

RST=1;

for(a=8;a>0;a一)

(

ACC7=IO;

SCLK=1;

SCLK=0;

ACC=ACC?1;

)

return(ACC);

)

voidwrite_1302(ucharadd,uchardat)//向1302芯片寫(xiě)函數(shù),指定寫(xiě)入地址,

數(shù)據(jù)

(

RST=O;

SCLK=0;

RST=1;

write_byte(add);

write_byte(dat);

SCLK=1;

RST=O;

10

ucharread_1302(ucharadd)〃從1302讀數(shù)據(jù)函數(shù),指定讀取數(shù)據(jù)來(lái)源

地址

(

uchartemp;

RST=O;

SCLK=O;

RST=1;

write_byte(add);

temp=read_byte();

SCLK=1;

RST=O;

return(temp);

}

11

第四章仿真與調(diào)試

4.1Keil軟件調(diào)試流程

建立新工程并保存,保存后會(huì)彈出一個(gè)設(shè)備選擇對(duì)話框,選擇MCU后點(diǎn)確定

返回主界面。新建文件并保存,以.C為后綴。接著選擇SourceGroup1,右擊鼠

標(biāo)彈出快捷菜單,選擇"AddFiletoGroup'SourceGroupl'",出現(xiàn)一個(gè)對(duì)話

框,加入文件后點(diǎn)close返回主界面。再打開(kāi)工程屬性設(shè)置對(duì)話框,主要設(shè)置工

作包括在Target選項(xiàng)卡中設(shè)置晶振頻率、在Debug選項(xiàng)卡中設(shè)置生成hex文件等。

然后編寫(xiě)程序并調(diào)試。在模擬調(diào)試程序后,還須通過(guò)編程器將.hex目標(biāo)文件寫(xiě)入

單片機(jī)中才能觀察仿真的效果。

4.2Proteus軟件運(yùn)行流程

運(yùn)行Proteus程序后,進(jìn)入軟件的主界面,過(guò)左側(cè)工具欄中的P(從庫(kù)中選擇

元件命令)命令,在PickDevices左側(cè)窗口中選擇所需元件的關(guān)鍵字,然后放置

元件并調(diào)整方向和位置以及參數(shù)設(shè)置,最后進(jìn)行連線。按P在庫(kù)中查找元器件,

將所需要的元器件放置好后,繪制成原理圖。

4.3萬(wàn)年歷的功能仿真

當(dāng)電路搭建好之后,選中單片機(jī)STC89c51,左鍵點(diǎn)擊STC89c51,在出現(xiàn)的對(duì)

話框里點(diǎn)擊ProgramFile按鈕,找到剛才Keil軟件編譯得到的HEX文件,載入

然后點(diǎn)擊“0K”按鈕就可以模擬了。點(diǎn)擊模擬調(diào)試按鈕的運(yùn)行按鈕,進(jìn)人調(diào)試狀

態(tài)。按相應(yīng)的按鍵可調(diào)節(jié)分,時(shí),星期,日期,月份,年份,并且可以自動(dòng)閏年

調(diào)整。按鍵功能自上而下依次為:選擇鍵、力口、減、確定。在Protues中仿真,

如圖10,圖11,圖12所示:

12

圖11鍵盤(pán)調(diào)節(jié)

致謝

至此,關(guān)于畢業(yè)設(shè)計(jì)的所有內(nèi)容就介紹完了,系統(tǒng)的仿真電路和程序設(shè)計(jì)合

理。

在整個(gè)設(shè)計(jì)過(guò)程中,充分發(fā)揮了人的主觀能動(dòng)性,自主學(xué)習(xí),學(xué)到了許多沒(méi)

學(xué)到的知識(shí)。程序編寫(xiě)中,由于思路不清晰,開(kāi)始時(shí)遇到了很多的問(wèn)題,經(jīng)過(guò)靜

下心來(lái)思考查資料?,和同學(xué)討論,理清了思路,完成對(duì)程序的編寫(xiě)。通過(guò)設(shè)計(jì)提

高了對(duì)單片機(jī)的認(rèn)識(shí),進(jìn)一步熟悉和掌握單片機(jī)的結(jié)構(gòu)及工作原理。通過(guò)實(shí)際程

序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù),提高軟件設(shè)計(jì)、調(diào)試

能力;通過(guò)這次設(shè)計(jì)熟悉以單片機(jī)核心的應(yīng)用系統(tǒng)開(kāi)發(fā)的全過(guò)程,掌握硬件電路

設(shè)計(jì)的基本方法和技術(shù),掌握相關(guān)電路參數(shù)的計(jì)算方法。最終較好的完成了設(shè)計(jì),

達(dá)到了預(yù)期的目的,完了最初的設(shè)想。但是由于時(shí)間和個(gè)人暫時(shí)的能力的原因,

13

整個(gè)系統(tǒng)看起來(lái)還是顯得非常的簡(jiǎn)單,只實(shí)現(xiàn)了一些最基本的功能,還有許多不

足和可以擴(kuò)展的地方。

畢業(yè)綜合實(shí)踐的完成,為我的大學(xué)學(xué)習(xí)生活畫(huà)下了最后一筆。應(yīng)該感謝的人

很多,首先感謝學(xué)院給我們提供了一個(gè)展現(xiàn)自己的舞臺(tái),在長(zhǎng)江職業(yè)學(xué)院這個(gè)良

好的學(xué)習(xí)環(huán)境中,我們得到了很多鍛煉的機(jī)會(huì),使得我們的動(dòng)手能力和專業(yè)技能

都有了很大的提高。其次要感謝教單片機(jī)的鄧柳老師的悉心教導(dǎo)和全程負(fù)責(zé)畢業(yè)

綜合實(shí)踐的陳卉老師,還有幫助我完成的學(xué)校電子競(jìng)賽組的同學(xué)。是你們?yōu)槲覄?chuàng)

造了良好的學(xué)習(xí)和完成畢業(yè)設(shè)計(jì)的環(huán)境,你們的支持和鼓勵(lì)使我對(duì)這次的設(shè)計(jì)完

成有了信心和動(dòng)力,使我能夠順利地完成課題的設(shè)計(jì)工作,在此向這些幫助我的

人致以誠(chéng)摯的謝意。最后,還要特別感謝我的父母,養(yǎng)育之恩,無(wú)以回報(bào),你們

永遠(yuǎn)健康快樂(lè)是我最大的心愿。正是在爸媽身體和精神的養(yǎng)育下才讓我得以全身

心投入學(xué)習(xí)和研究中,順利完成學(xué)業(yè)。

即將踏上社會(huì)了,在人生的又一個(gè)十字路口上,我將帶著你們的期望和關(guān)懷,

在將來(lái)的工作崗位上勤奮實(shí)干,積極進(jìn)取,用優(yōu)異的成績(jī)來(lái)回報(bào)大家對(duì)我的關(guān)心

和幫助!

14

參考文獻(xiàn)

1.張迎新《單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù)》國(guó)防工業(yè)出版

2.郭天祥《十天學(xué)會(huì)單片機(jī)》哈爾濱工程大學(xué)出版社

3.郭天祥《51單片機(jī)C語(yǔ)言教程》電子工業(yè)出版社

4.張福祥《C語(yǔ)言程序設(shè)計(jì)》遼寧大學(xué)出版社

15

附錄:主程序

//名稱:用DS1302與八位數(shù)碼管設(shè)計(jì)的可調(diào)式電子日歷與時(shí)鐘

//說(shuō)明:本例會(huì)自動(dòng)調(diào)節(jié)合法日期時(shí)間,對(duì)于星期的調(diào)節(jié)會(huì)在

//調(diào)整年月日時(shí)自動(dòng)完成,閏年問(wèn)題也會(huì)自動(dòng)判斷。

//---------------------------------------------------------------------------------------------------

#include<reg52.h>

#include<intrins.h>

#defineuintunsignedint

#defineucharunsignedchar

sbitrst=PlA5;

sbitio=P1A4;

sbitsck=PlA3;

sbiten=P3A6;

sbitsl=PlAO;

sbits2=PlAl;

sbits3=P3A2;

sbits4=P3A3;

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};

ucharcodetable1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};

uchartime_data[]={02,22,03,20,12,4,12,0xff};〃年,星期,月,日,時(shí),分,秒

ucharcodewrite_addf]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};

ucharcoderead_add[]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};

uchardis[8];

ucharcount,num,no,flag,s1num=0,s2num=0,x,y,m,n;

uchar1;

voiddelay(uint);

voidwrite_ds1302_byte(uchar);

voidwrite_ds1302(uchar,uchar);

ucharread_ds1302(uchar);

voidset_rtc();

voidpros();

voiddisplay();

voidtimer0init();

voidkeyscan();

16

voiddelay(uintz)

uintx,y;

for(x=z;x>0;x—)

for(y=l10;y>0;y—);

)

voidwrite_ds1302_byte(uchardat)

(

uchari;

for(i=0;i<8;i++)

(

sck=0;

io=dat&0x01;

dat?=1;

sck=l;

voidwrite_ds1302(ucharadd,uchardat)

(

rst=O;

_nop_();

sck=0;

_nop_();

rst=l;

_nop_();

write_ds1302_byte(add);

write_ds13O2_byte(dat);

rst=O;

_nop_();

sck=1;

io=l;

)

ucharread_ds1302(ucharadd)

{

ucharj,value;

rst=O;

17

_nop_();

sck=O;

_nop_();

rst=1;

_nop_();

write_ds1302_byte(add);

for(j=0;j<8;j++)

(

value?=l;

sck=O;

if(io)

value=valuelOx8O;

sck=l;

)

rst=l;

_nop_();

sck=O;

_nop_();

sck=1;

io=l;

returnvalue;

}

voidset_rtc()

(

uchark,j;

for(k=0;k<7;k++)

(

j=time_data[k]/l0;

time_data[k]=time_data[k]%10;

time_data[k]=time_data[k]+j*16;

)

write_ds1302(0x8e,0);

for(k=0;k<7;k++)

(

write_ds1302(write_add[k],time_data[k]);

)

write_ds1302(0x8e,0x80);

18

voidread_rtc()

ucharj;

for(j=0;j<7;j++)

(

time_data[j]=read_ds1302(read_add|j]);

)

)

voidpros1()

(

dis[0]=time_data[6]/16;

dis[1]=time_data[6J%16;

dis[2]=10;

dis[3]=time_data[4]/16;

dis[4]=time_data[4]%16;

dis[5]=10;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論