版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/TS 20961:2024 EN Footwear - Performance requirements for components for footwear - Shanks
- 《焊接機(jī)器人綜合實(shí)驗(yàn)》教學(xué)大綱
- 大班個(gè)案分析
- 教案:物理試卷
- 六年級(jí)下冊(cè)品德書全教學(xué)課件教學(xué)
- 玉溪師范學(xué)院《西方音樂史與名作欣賞》2022-2023學(xué)年第一學(xué)期期末試卷
- 玉溪師范學(xué)院《實(shí)變函數(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 收到以物抵債的設(shè)備賬務(wù)處理實(shí)例-做賬實(shí)操
- 項(xiàng)目臨建工程施工方案
- 泰州市2016年新能源汽車推廣應(yīng)用實(shí)施方案
- (高清版)DZT 0282-2015 水文地質(zhì)調(diào)查規(guī)范(1:50000)
- 空調(diào)維保項(xiàng)目進(jìn)度保障計(jì)劃
- 污水管網(wǎng)施工-施工現(xiàn)場(chǎng)總平面布置(純方案-)
- 《工業(yè)管理與一般管理》
- T-CASA 0005-2022 超前預(yù)警電氣火災(zāi)監(jiān)控系統(tǒng)技術(shù)標(biāo)準(zhǔn)
- 2024年中國(guó)電信貴州公司社會(huì)人才招聘41名高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 《網(wǎng)頁(yè)設(shè)計(jì)與制作》課程標(biāo)準(zhǔn)(含課程思政)
- 網(wǎng)絡(luò)工程專業(yè)職業(yè)發(fā)展報(bào)告
- 中心幼兒園精細(xì)化管理
- 葛洲壩畢業(yè)實(shí)習(xí)報(bào)告
- 《液壓油液》課件
評(píng)論
0/150
提交評(píng)論