電子萬(wàn)年歷報(bào)告_第1頁(yè)
電子萬(wàn)年歷報(bào)告_第2頁(yè)
電子萬(wàn)年歷報(bào)告_第3頁(yè)
電子萬(wàn)年歷報(bào)告_第4頁(yè)
電子萬(wàn)年歷報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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)介

大連民族學(xué)院機(jī)電信息工程學(xué)院

自動(dòng)化系

單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

題目:電子萬(wàn)年歷

專業(yè):自動(dòng)化

班級(jí):114

學(xué)生姓名:曹學(xué)亮張懷宇馬建龍

指導(dǎo)教師:趙鳳強(qiáng)張艷

設(shè)計(jì)完成日期:2013年10月15日

課程設(shè)計(jì)任務(wù)書

題目:電子萬(wàn)年歷

課程設(shè)計(jì)時(shí)間:2013924?2013.10.19

一、設(shè)計(jì)任務(wù)

給定1602液晶顯示器和單片機(jī)最小系統(tǒng),學(xué)習(xí)使用單片機(jī)最小系統(tǒng),設(shè)計(jì)在

1602上顯示年月日、時(shí)間和星期并能更改,完成相關(guān)的軟件。

二、設(shè)計(jì)內(nèi)容及要求

1.系統(tǒng)設(shè)計(jì)的方案;

2.檢測(cè)電路和過(guò)程通道的設(shè)計(jì);

3.系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn);

4.需要的詳細(xì)材料和工具清單;

5.設(shè)計(jì)的性能指標(biāo);

6.撰寫設(shè)計(jì)報(bào)告;

7.資料歸檔。

三、設(shè)計(jì)重點(diǎn)

檢測(cè)電路和過(guò)程通道設(shè)計(jì);

系統(tǒng)軟件設(shè)計(jì)、調(diào)試。

四、課程設(shè)計(jì)進(jìn)度要求

1.13.9.25-13.9.28系統(tǒng)方案設(shè)計(jì);

2.13.9.29-13.10.5檢測(cè)電路和過(guò)程通道設(shè)計(jì);

3.13.10.6-13.10.7完成系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn);

4.13.10.8-13.10.13檢測(cè)電路和過(guò)程通道設(shè)計(jì);

5.13.10.13-13.10.15撰寫設(shè)計(jì)報(bào)告;

6.13.10.19驗(yàn)收答辯。

五、參閱書目

[1]祁偉,楊亭,單片機(jī)C51程序設(shè)計(jì)教程與實(shí)驗(yàn)[M]。北京:北京航空航天大學(xué)

出版社,2006.1

[2]徐科軍,傳感器與檢測(cè)技術(shù)[M]。北京:電子工業(yè)出版社,2010.11

13J方彥軍,孫健,智能儀器技術(shù)及其應(yīng)用[M]。北京:化學(xué)工業(yè)出版社,2004.4

[4]徐愛鈞,智能化測(cè)量控制儀表原理與設(shè)計(jì)[M]。北京:北京航空航天大學(xué)出版

社,2004.9

目錄

1任務(wù)分析和性能指標(biāo)

1.1任務(wù)分析......................................................1

1.2性能指標(biāo)......................................................1

2總體設(shè)計(jì)方案.....................................................2

2.1硬件方案......................................................2

2.2軟件方案......................................................2

3系統(tǒng)硬件設(shè)計(jì).....................................................3

3.1檢測(cè)電路......................................................3

3.2控制電路....................................錯(cuò)誤!未定義書簽。

4系統(tǒng)軟件設(shè)計(jì).....................................................5

4.1主程序設(shè)計(jì)...................................................6

4.2數(shù)據(jù)采集程序設(shè)計(jì).............................................6

4.3監(jiān)控程序設(shè)計(jì)................................錯(cuò)誤!未定義書簽。

5調(diào)試及性能分析..................................................12

5.1調(diào)試分析.....................................................18

5.1.1軟件調(diào)試..................................................18

5.1.2硬件調(diào)試..................................................19

5.1.3系統(tǒng)功能調(diào)試..............................................19

5.2性能分析.....................................................19

總結(jié)............................................錯(cuò)誤!未定義書簽。

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

附錄1元器件清單..................................................22

附錄2調(diào)試系統(tǒng)照片................................................23

1任務(wù)分析和性能指標(biāo)

1.1任務(wù)分析

電子萬(wàn)年歷是日常生活中常見的小型電子產(chǎn)品,其形式多種多樣,小到帶有

日期的電子腕表,大到公共場(chǎng)所懸掛的大型電子日歷,此外,眼下我們還常能在

賓館、飯店等場(chǎng)所見到一種帶有年、月、日、時(shí)、分、秒、星期甚至節(jié)氣等信息

的電子日歷牌。

電子日歷的主要功能是給人們提供時(shí)間和日期信息,無(wú)論其形式如何,從外

部都可分為顯示和校準(zhǔn)兩部分。為使電子日歷協(xié)調(diào)工作,整個(gè)系統(tǒng)從功能上可分

為實(shí)時(shí)時(shí)鐘、顯示和鍵盤三個(gè)模塊,分別完成時(shí)間和日期的計(jì)算以及人機(jī)交互的

管理等。

1.2性能指標(biāo)

實(shí)時(shí)時(shí)鐘(RTC:RealTimeClock)是系統(tǒng)的核心,其運(yùn)行精度直接影響

產(chǎn)品質(zhì)量。實(shí)時(shí)時(shí)鐘的實(shí)現(xiàn)有兩種方案可選,一是利用單片機(jī)系統(tǒng)時(shí)鐘和中斷

完成時(shí)間和日期的計(jì)算;二是利用專用時(shí)鐘芯片。前者不用附加芯片,系統(tǒng)簡(jiǎn)單,

但是累計(jì)誤差較大,只有短時(shí)計(jì)時(shí)才可使用。長(zhǎng)時(shí)間計(jì)時(shí)一般都采用后者。后

者采用32.768KHZ晶體振蕩器振作為脈沖源,內(nèi)部的15位計(jì)數(shù)器剛好產(chǎn)生標(biāo)

準(zhǔn)秒脈沖。該類芯片除時(shí)鐘計(jì)時(shí)外,還有年月日和星期的計(jì)算功能,并且還可

計(jì)算閏年。芯片初始化后可脫離CPU自動(dòng)運(yùn)行,有些芯片內(nèi)部帶有電池,出廠

時(shí)芯片即開始運(yùn)行。專用時(shí)鐘芯片的種類很多,與CPU的通信方式有并行,也

有串行。常見的芯片有DALLAS公司生產(chǎn)的DS1302和DS12c887,前者為串

行,需要外加后備電池;后者為并行,芯片內(nèi)置鋰電池和晶體振蕩器,無(wú)外加電

源的情況下可運(yùn)行10年。此外,還有許多時(shí)鐘芯片,如Epson、Holtek,深圳

興威帆等公司都推出自己的時(shí)鐘芯片.因?yàn)槲覀兙邆鋯纹瑱C(jī)相關(guān)知識(shí)的基礎(chǔ),所

以我們利用單片機(jī)系統(tǒng)時(shí)鐘和中斷完成時(shí)間和日期的計(jì)算。

2總體方案設(shè)計(jì)

2.1硬件方案

顯示部分

數(shù)據(jù)顯示常采用液晶,液晶顯示有耗電低、外形美觀的優(yōu)點(diǎn),并且,點(diǎn)陣液

晶可顯示較復(fù)雜的字符或圖案。

鍵盤部分

時(shí)鐘系統(tǒng)的鍵盤設(shè)置三個(gè)鍵:確認(rèn)鍵、加I鍵、減I鍵。

實(shí)時(shí)時(shí)鐘部分

利用單片機(jī)系統(tǒng)時(shí)鐘和中斷完成時(shí)間和日期的計(jì)算。

2.2軟件方案

C語(yǔ)言編屬于高級(jí)語(yǔ)言,具有可移植性,能夠結(jié)構(gòu)化編程。使用標(biāo)準(zhǔn)C

語(yǔ)言的程序,幾乎都可以不作改變移植到不同的微機(jī)平臺(tái)上,對(duì)于嵌入式等的微

控制芯片,屬于標(biāo)準(zhǔn)C語(yǔ)言的部分也很少需要修改,而且程序很容易讀懂。

C語(yǔ)言編寫程序結(jié)構(gòu)清晰,移植性好,容易維護(hù)和修改。

匯編語(yǔ)言針對(duì)不同的操作系統(tǒng)平臺(tái),不同的微控制器,指令都是完全不同的,

即使指令相似,也不具有可移植性。但是匯編語(yǔ)言是針對(duì)專門的控制器的,所以

運(yùn)行速度可以精確到一個(gè)指令周期。匯編語(yǔ)言的程序讀懂需要借助微控制器的指

令手冊(cè)以及各個(gè)寄存器的說(shuō)明,所以很難讀懂。

匯編語(yǔ)言編寫代碼實(shí)時(shí)性強(qiáng),能夠直接控制硬件的工作狀態(tài),但是不具有可移植

性,維護(hù)和修改困難。

經(jīng)過(guò)我們?nèi)说挠懻撐覀儧Q定使用C語(yǔ)言來(lái)編寫程序,因?yàn)閏語(yǔ)言程序容

易學(xué),也很容易讀懂,編寫程序結(jié)構(gòu)清晰,易于我們組員之間的討論和學(xué)習(xí)。而

且相對(duì)于匯編我們更加擅長(zhǎng)c語(yǔ)言。

2

3硬件設(shè)計(jì)與實(shí)現(xiàn)

由于單片機(jī)系統(tǒng)時(shí)鐘和中斷能完成年、月、日、時(shí)、分、秒等時(shí)間信息,對(duì)

于一天內(nèi)的時(shí)間記錄,有12小時(shí)制和24小時(shí)制兩種模式。在12小時(shí)制模式中,

用AM和PM區(qū)分上午和下午;時(shí)間的表示方法也有兩種,一種用二進(jìn)制數(shù)

表示,一種是用BCD碼表示。而顯示部分我們采用LCD液晶顯示屏,液晶顯

示屏的顯示功能強(qiáng)大,可顯示文字,圖形,顯示多樣,清晰可見,而其體積較小,

使用方便,可以使電路更加簡(jiǎn)潔,所以選擇了液晶顯示器。

3.11602顯示電路

3.2鍵盤電路

3

4

3.3晶振電路

3.4復(fù)位電路

3.5單片機(jī)電路

o

x

s

o

mX

K

iX

xS

d

省二?★省^22丫6f|_||

5

4軟件設(shè)計(jì)與實(shí)現(xiàn)

4.1主程序

voidmain()

(

init();

while(l)

(

anjian();

4.2子程序

4.2.1按鍵程序

voidanjianO〃按鍵函數(shù)

{

rd=0;

if(sl==0)

(

delay(5);

if(sl==0)

{slnum++;

while(!si);

if(slnum==l)

(

TRO=O;

write_com(0x80+0x40+12);

write_com(OxOf);

)

)

if(slnum==2)

6

write_com(0x80+0x40+9);

)

if(slnum==3)

(

write_com(0x80+0x40+6);

}

if(slnum==4)

(

write_com(0x80+15);

)

if(slnum==5)

(

write_com(0x80+9);

)

if(slnum==6)

{

write_com(0x80+6);

)

if(slnum==7)

(

write_com(0x80+1);

)

if(slnum==8)

(

slnum=0;

write_com(0x0c);

TRO=1;

if(yue==l)

(

tian=ri-ri4;

}

if(yue==2)

(

tian=31+ri-ri4;

)

if(yue==3)

(

tian=59+ri-ri4;

)

if(yue==4)

(

tian=90+ri-ri4;

7

if(yue==5)

tian=120+ri-ri4;

)

if(yue==6)

{

tian=151+ri-ri4;

)

if(yue==7)

(

tian=181+ri-ri4;

}

if(yue==8)

(

tian=212+ri-ri4;

)

if(yue==9)

(

tian=243+ri-ri4;

)

if(yue==10)

(

tian=272+ri-ri4;

)

if(yue==l1)

(

tian=304+ri-ri4;

}

if(yue==12)

(

tian=334+ri-ri4;

}

ri4=0;

)

)

if(slnum!=O)

(

if(s2==0)

{

delay(5);

if(s2==0)

while(!s2);

if(slnum==l)

8

miao++;

if(miao==60)

miao=O;

write_sfm(12,miao);

write_com(0x80+0x40+12);

)

if(slnum=2)

(

fen++;

if(fen==60)

fen=0;

write_sfm(9,fen);

write_com(0x80+0x40+9);

}

if(slnum-3)

(

shi++;

if(shi==24)

shi=O;

write_sfm(6,shi);

write_com(0x80+0x40+6);

)

if(slnum==4)

(

xingqi++;

if(xingqi=8)

xingqi=l;

write_xq(15,xingqi);

write_com(0x80+15);

)

if(slnum==5)

(

ri++;

if(ri==32)

ri=l;

write_yr(9,ri);

write_com(0x80+9);

)

if(slnum=6)

yue++;

if(yue==13)

9

yue=l;

tian=l;

)

write_yr(6,yue);

write_com(0x80+6);

)

if(slnum==7)

{

nian++;

write_n(l,nian);

write_com(0x80+1);

if(s3==0)

(

delay(5);

if(s3==0)

(

while(!s3);

if(slnum==l)

(

miao一一;

if(miao==-l)

miao=59;

write_sfm(12,miao);

write_com(0x80+0x40+12);

)

if(slnum==2)

(

fen—;

if(fen--l)

fen=59;

write_sfm(9,fen);

write_com(0x80+0x40+9);

)

if(slnum=3)

(

shi一;

if(shi==-l)

shi=23;

10

write_sfm(6,shi);

write_com(0x80+0x40+6);

)

if(slnum==4)

(

xingqi—;

if(xingqi=0)

xingqi=7;

write_xq(15,xingqi);

write_com(0x80+15);

}

if(slnum==5)

{

ri一;

ri4++;

if(ri==0)

(

ri=31;

)

write_yr(9,ri);

write_com(0x80+9);

)

if(slnum==6)

(

yue——;

if(yue==0)

(

yue=12;

tian=334+ri;

)

write_yr(6,yue);

write_com(0x80+6);

)

if(slnum=7)

(

nian一;

write_n(l,nian);

write_com(0x80+1);

)

)

)

11

4.2.2中斷程序

voidtimerO()interrupt1〃開中斷1(定時(shí)器中斷0)包括時(shí)間的

算法程序

(

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t0++;

if(t0==20)

(

t0=0;

miao++;

)

if(miao==60)

{

miao=0;

fen++;

)

write_sfm(12,miao);〃調(diào)用函數(shù)write-()都為調(diào)用上邊的顯示子函數(shù)下

if(fen==60)

{

fen=O;

shi++;

)

write_sfm(9,fen);

if(shi==24)

{

shi=O;

xingqi++;

tian++;

)

write_sfm(6,shi);

if(xingqi==8)

12

xingqi=l;

write_xq(15,xingqi);

if(tian!=O)

(

ri=tian;

if(tian<=31)

(

yue=1;

)

write_yr(6,yue);

if(tian>=32&&tian<=59)

{

yue=2;

ri=tian-31;

}

write_yr(6,yue);

if(60<=tian&&tian<=90)

(

yue=3;

ri=tian-59;

)

write_yr(6,yue);

if(91<=tian&&tian<=120)

(

yue=4;

ri=tian-90;

)

write_yr(6,yue);

if(121<=tian&&tian<=151)

(

yue=5;

ri=tian-120;

13

write_yr(6,yue);

if(l52<=tian&&tian<=181)

(

yue=6;

ri=tian-151;

}

write_yr(6,yue);

if(l82<=tian&&tian<=212)

(

yue=7;

ri=tian-181;

)

write_yr(6,yue);

if(213<=tian&&tian<=243)

(

yue=8;

ri=tian-212;

)

write_yr(6,yue);

if(244<=tian&&tian<=273)

{

yue=9;

ri=tian-243;

)

write_yr(6,yue);

if(274<=tian&&tian<=304)

(

yue=10;

ri=tian-273;

)

write_yr(6,yue);

if(305<=tian&&tian<=334)

yue=11;

ri=tian-304;

14

write_yr(6,yue);

if(335<=tian&&tian<=365)

yue=12;

ri=tian-334;

write_yr(6,yue);

if(tian==366)

(

tian=1;

yue=01;

ri=l;

nian++;

)

write_n(l,nian);

)

write_yr(9,ri);

)

4.2.3顯示年

voidwrite_n(ucharadd,uintdate)〃液晶顯示年

(

uintshi,ge,bai,qian;

qian=date/1000;

bai=date/100%10;

shi=date/10%10;

ge=date%10;

write_com(0x80+add);

write_date(0x30+qian);

write_date(0x30+bai);

write_date(0x30+shi);

write_date(0x30+ge);

)

4.2.4顯示星期

voidwrite_xq(ucharadd,uchardate)//液晶顯示星期

15

write_com(0x80+add);

write_date(0x30+date);

4.2.5顯示月日

voidwrite_yr(ucharadd,uchardate)〃液晶顯示月日

{

ucharshi,ge;

shi=date/10;

ge=date%10;

write_com(0x80+add);

write_date(0x30+shi);

write_date(0x30+ge);

)

4.2.6顯示時(shí)分秒

voidwrite_sfm(ucharadd,uchardate)〃液晶顯示時(shí)分秒

(

ucharshi,ge;

shi=date/10;

ge=date%10;

write_com(0x80+0x40+add);//液晶屏第二行的選著地址

write_date(0x30+shi);

write_date(0x30+ge);〃液晶屏顯示數(shù)字的方式

)

4.2.7程序初始化

voidinit()〃函數(shù)初始化一些相應(yīng)的變量

{

miao=53;

fen=59;

shi=23;

xingqi=5;

ri4=0;

tian=284;

nian=2013;

16

dula=O;

wela=O;

lcden=O;

write_com(0x38);〃顯示模式設(shè)置,設(shè)置16乘2顯示,5X7點(diǎn)陣,八位

數(shù)據(jù)接口

write_com(OxOc);〃顯示狀態(tài)為整體顯示

write_com(0x06);〃光標(biāo)的設(shè)定當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加

一,光標(biāo)加一

write_com(0x80);〃液晶屏第一行選著地址

write_com(0x01);〃清除顯示否則后面出現(xiàn)黑一塊

for(num=0;num<17;num++)

{

write_date(tablel[num]);

delay⑸;

)

write_com(0x80+0x40);

for(num=0;num<13;num++)

(

write_date(table2[num]);

delay(5);

)

TMOD=0x01;〃中斷初始化定時(shí)器0的工作方式一

EA=1;

ETO=1;

TRO=1;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

)

428寫數(shù)據(jù)到液晶顯示器

voidwrite_date(uchardate)〃液晶屏數(shù)據(jù)指令

(

rs=l;

lcden=0;

P0=date;

delay(5);

17

lcden=1;

delay(5);

Icden=O;

)

429寫指令到液晶顯示器

voidwrite_com(ucharcom)〃液晶屏控制指令

{

rs=O;

lcden=0;

P0=com;

delay(5);

lcden=l;

delay(5);

lcden=0;

)

4.2.10延時(shí)子函數(shù)

voiddelay(ucharz)〃延時(shí)程序

(

ucharx,y;

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

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

)

5調(diào)試及性能分析

5.1調(diào)試分析

5.1.1軟件調(diào)試

軟件調(diào)試時(shí)一,開始出現(xiàn)了很多錯(cuò)誤,主要是液晶屏亂碼,不顯示數(shù)字。后來(lái)經(jīng)過(guò)

調(diào)試找出原因并改正得到想要的結(jié)果。

18

5.1.2硬件調(diào)試

硬件主要是單片機(jī),液晶,我們的任務(wù)是主要將他們各個(gè)引腳的作用和芯片的功

能弄清楚,通過(guò)軟件操控它們,按照PCB原理圖焊接到板上。

5.1.3系統(tǒng)功能調(diào)試

通過(guò)鍵盤和軟件設(shè)置來(lái)控制時(shí)鐘功能,我們是按照順序一個(gè)一個(gè)進(jìn)行調(diào)試的,這

樣層次清晰寫起程序來(lái)也容易。

5.2性能分析

計(jì)時(shí)器最關(guān)鍵的是計(jì)時(shí)的精度。電子萬(wàn)年歷中DS1602上最好使用專用的晶振。

經(jīng)測(cè)試制作的電子萬(wàn)年歷,一星期快了3s左右,誤差較大,實(shí)驗(yàn)設(shè)計(jì)中可換用

標(biāo)準(zhǔn)晶振或用軟件進(jìn)行修正。

19

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論