版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
簡(jiǎn)易萬(wàn)年歷
目錄
弓I言.........................P2
方案選擇....P2
硬件選擇...????????■P2
AT89S52………P2
LCD1602……P3
DS18B20P4
程序流程.........................P5
參考文獻(xiàn).........................P6
總結(jié)..............................P7
附件1.實(shí)驗(yàn)程序....................P8
附件2.模塊實(shí)物圖.................P24
—.引言
液晶技術(shù)在在最近單片機(jī)的發(fā)展中顯的越來(lái)越重要,因此,學(xué)習(xí)和熟練應(yīng)用液晶模塊是每個(gè)
學(xué)電子的大學(xué)生應(yīng)該有的本事。本文就以用89C52單片機(jī)來(lái)控制LCD1602液晶來(lái)模擬一個(gè)
簡(jiǎn)單的萬(wàn)年歷實(shí)驗(yàn)。該系統(tǒng)就以實(shí)驗(yàn)室中提供的簡(jiǎn)單材.料,來(lái)學(xué)習(xí)和應(yīng)用液晶模塊的應(yīng)用。
通過(guò)實(shí)踐,基本掌握了液晶的應(yīng)用方法,還在該基礎(chǔ)上,用溫度傳感器DS18B20添加了顯示
當(dāng)前溫度的功能。
關(guān)鍵詞:LCD1602,51單片機(jī),溫度傳感器DS18B20。
二.方案選擇
控制方面:
方案一:采用三星公司的ARM9芯片,該芯片功能強(qiáng)大,可以極大的提高系統(tǒng)的性能和速
度,但是價(jià)格偏貴,對(duì)實(shí)驗(yàn)類(lèi)的項(xiàng)目不合算。
方案二:采用使用Atmel公司的AT89s52單片機(jī),該單片機(jī)具有方便,簡(jiǎn)單控制,成本
低等特點(diǎn),在實(shí)驗(yàn)室中普及行好。
綜合考慮,我們選擇方案二,用89s52來(lái)進(jìn)行對(duì)LCD的控制。
顯示方面:
方案一:采用4個(gè)點(diǎn)陣連接起來(lái),閃動(dòng)顯示,這種方案需要用到4個(gè)寄存器,這樣程序龐
大,硬件復(fù)雜。
方案二:采用數(shù)碼管顯示,該方案程序簡(jiǎn)單,但是不能滿(mǎn)足本設(shè)計(jì)的所有要求。
方案三:采用LCD1602作為顯示器,該方案的特點(diǎn)是操作方便,能夠容易把模塊轉(zhuǎn)移轉(zhuǎn)移
到別的模塊上。且能滿(mǎn)足本實(shí)驗(yàn)的所有功能。
綜上所述,我們選擇方案三。
三.硬件選擇
主要器件選擇如下:
(1)AT89S52
ATMEL的AT89S52是一種高效微控制器,AT89S52有以下主要特點(diǎn):
a)與MCS-51兼容
b)8K字節(jié)可編程閃爍存儲(chǔ)器
c)壽命:1000寫(xiě)/擦循環(huán)
d)32可編程I/O線(xiàn)
AT89s52是普遍使用的控制芯片,能很好的滿(mǎn)足本設(shè)計(jì)的要求。性能優(yōu)越,性?xún)r(jià)比相較于同類(lèi)設(shè)備高。
(2)LCD1602液晶顯示器
LCD1602是一種點(diǎn)陣液晶顯示器,其能顯示32個(gè)字符,指令系統(tǒng)簡(jiǎn)單,能很好滿(mǎn)足設(shè)計(jì)顯示且不必進(jìn)
行日期時(shí)間之間的切換顯示,既減少了硬件的資源,也減少了軟件設(shè)計(jì)的復(fù)雜度。功耗低,體積小,適用于
小場(chǎng)合的儀表顯示,使用壽命長(zhǎng)久。液晶模塊能穩(wěn)定的顯示出字符,用簡(jiǎn)單的51單片機(jī)就能很好的控制,
下面附上液晶模塊的原理圖:
veerGND
LCD1
濟(jì)-
■
UI、:皿“1:4
-T-S-
IADOJPOOJ
PLl(TJK)(.Wl)PO.lr
、;yL】XK-
PK:皿吟
P13<AD3)P03DBO
“L心司59
Pl4?:.UM)P0.4DSI
士』一】。DBZ
P1J{.U)*)PO*K?LAbelS~
Pl.6(.AD5:iPO.?D53
V^UbeSITDB4
f.3g-鼠
、《Libe4GIT
刀五3e:::14國(guó)
P35C5?H)(AS)K.O
P3:(INTO)(49*1】象
(AlOjPT:
P3.XT1)(All:iP13
LCD16G:
P5.4(T0)(A11)P14
EA\?P(A14)PL6
(A1*)P1-
KQi
XTAL1KNPN
XTAL2
XST
P3*<XD)
GND
Pg
GND
(3)輸入方面,采用外接4X4矩陣鍵盤(pán)。
(4)溫度傳感器米用DS18B20,DS18B20產(chǎn)品的特點(diǎn):
1).只要求一個(gè)端口即可實(shí)現(xiàn)通信。
(2).在DS18B20中的每個(gè)器件上都有獨(dú)一無(wú)
二的序列號(hào)。
(3).實(shí)際應(yīng)用中不需要外部任何元器件即可
實(shí)現(xiàn)測(cè)溫。
(4).測(cè)量溫度范圍在一55。C到+125。C之
間。
(5).數(shù)字溫度計(jì)的分辨率用戶(hù)可以從9位到
12位選擇。
(6).內(nèi)部有溫度上、下限告警設(shè)置。
(7)DDS182O在51單片機(jī)上的連接原理圖
如下:
-
U
N
O17SIMB2OZHUIS(IUW
1
T一
yPL0(T2)(.XDOjPOO
rPlLfHZX)《AD】)P01
nPK(皿)PO二
Pl;,皿)P03
f(AZMJP04
PL4
一Pl-5(AD,)P0,
P14(AD6)P06
Pl?(AD-g-
z±P33<D?fl)(.U)P10
fP3地同(A9g]
(A10)Pr:
P3-XT1)(A11)K3
"P3.4(T0)(A12JK.4
I(A13)IC<
五VPP(A14JP16
(A15)P1-
>XTAL1
z±XTAL:vcc
19
KST<TXD)P3.0
(TXD:J>51
dteP3--(XD).U£P(guān)^£
P3£標(biāo)
四.程序流程圖
開(kāi)始溫度傳感器開(kāi)始.
檢測(cè)
四.參考文獻(xiàn)
郭天祥《51單片機(jī)C語(yǔ)言教程》
AT89S52的中文資料?.pdf
LCD1602液晶完整中文資料.pdf
來(lái)源http://www.willar.com/forum_view.asp?view_id=22376
DS18B20溫度傳感器中文資料。Pdf
來(lái)源http://www.dz3w.com/info/commonIC/0087827.html
四.總結(jié)
在這實(shí)驗(yàn)之后,我們對(duì)于LCD1602液晶的使用方法以基本掌握,對(duì)溫度傳感器
DS18B20也進(jìn)行了初步探索,在傳感器方面有了很大的收獲。對(duì)于整個(gè)實(shí)驗(yàn)來(lái)說(shuō),
還存在一些缺點(diǎn),例如萬(wàn)年歷的穩(wěn)定性還不是很好,要想真正投入工業(yè)生產(chǎn),這些
功能還遠(yuǎn)遠(yuǎn)不夠,還科技進(jìn)行改進(jìn),比如加個(gè)蜂鳴器,在用戶(hù)設(shè)定的時(shí)間響起,起
到一個(gè)鬧鐘的作用,還應(yīng)該有農(nóng)歷的顯示等等,在今后的學(xué)習(xí)中,我們還會(huì)繼續(xù)關(guān)
注這一模塊的發(fā)展,讓自己去不斷學(xué)習(xí),去完善。
附錄1:
完整程序:#include<reg52.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetable[]="wendu=n;
ucharcodetable1[]=n0123456789n";
ucharcodetable2n="time:n;
sbitlcden=PlA4;
sbitlcdrs=PlA2;
sbitds=PlA0;
uinttp,tO,s;
uchar
bai,shi,ge,miao,fen,xiaoshi,miaol,miao2,fen1,fen2,xiaoshil,xiaoshi2,temp,num,k,z,xiaoshi3,xiaoshi4,fen
3,fen4,miao3,miao4;
ucharnian,yue,ri,k1,m1,m2,m3,m4,m5,m6,m7,m8,uI,u2,u3,u4,u5,u6,u7,u8;
floatftp;
voidkey_scan();
voidkey_managel();〃鍵盤(pán)功能分配函數(shù)
voidkey_manage2();
voidkey_manage3();
voidkey_manage4();
voidkey_manage5();
voidkey_manage6();
voidkey_manage7();
voidkey_manage8();
voidkey_manage9();
voidkey_managelO();
voidkey_managel1();
voidkey_managel2();
voidkey_managel3();
voidkey_managel4();
voidkey_managel5();
voidkey_managel6();
voiddelay(uintz)
(
uintx,y;
for(x=z;x>0;x-)
for(y=l10;y>0;y—);
)
voidwrite_com(ucharcom)
{
lcdrs=0;
P0=com;
delay(5);
lcden=l;
delay⑸;
lcden=0;
voidwrite_data(uchardate)
(
lcdrs=l;
P0=date;
delay(5);
lcden=l;
delay(5);
lcden=0;
)
voidinit()
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80);
)
voidtemp_init()
{
uinti;
ds=0;
i=103;
while(i>0)i-;
ds=l;
i=4;
while(i>0)i--;
}
bittempreadbit(void)
(
uinti;
bitdat;
ds=0;i++;
ds=l;i++;i++;
dat=ds;
i=8;while(i>0)i—;
return(dat);
)
uchartempread(void)
{
uchari,j,dat;
dat=0;
for(i=l;i<=8;i++)
(
j=tempreadbit();
dat=(j?7l(dat?1));
}
return(dat);
}
voidtempwritebyte(uchardat)
(
uinti;
ucharj;
bittestb;
for(j=l;j<=8;j++)
(
testb=dat&0x01;
dat=dat?l;
if(testb)
ds=O;
i++;i++;
ds=l;
i=8;while(i>0)i—;
)
else
(
ds=O;
i=8;while(i>0)i—;
ds=l;
i++;i++;
voidtempchang(void)
(
temp_init();
delay(l);
tempwritebyte(Oxcc);
tempwritebyte(0x44);
)
uintmyshu()
(
uchara,b;
temp_init();
delay(l);
tempwritebyte(Oxcc);
tempwritebyte(Oxbe);
a=tempread();
b=tempread();
tp=b;
tp?=8;
tp=tpla;
ftp=tp*0.0625;
tp=ftp*10+0.5;
ftp=ftp+0.05;
returntp;
)
voidmain()
kl=O;
k=0;
z=0;
TMOD=Oxll;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
EA=1;
ETO=1;
TH1=(65536-2400)/256;
TLl=(65536-2400)%256;
ET1=1;
init();
write_com(0x80);
for(s=0;s<6;s++)
{
write_data(table[s]);
}
write_com(0x80+10);
write_data(Oxdf);
write_data(0x63);*/
while(l)
(
while(!z)
(
TR1=O;
TR0=0;
key_scan();
switch(k)
(
case1:
ul=num;
break;
case2:
u2=num;
break;
case3:
u3=num;
break;
case4:
u4=num;
break;
case5:
u5=num;
break;
case6:
u6=num;
break;
case7:
u7=num;
break;
case8:
u8=num;
break;
case9:
xiaoshi3=num;
break;
case10:
xiaoshi4=num;
break;
case11:
fen3=num;
break;
case12:
fen4=num;
break;
case13:
miao3=num;
break;
case14:
miao4=num;
break;
}
write_com(0x80);
write_data(table1[ul]);
write_data(tablel[u2]);
write_data(tablel[u3]);
write_data(tablel[u4]);
write_data(0x20);
write_data(tablel[u5]);
write_data(table1[u6]);
write_data(0x20);
write_data(tablel[u7]);
write_data(table1[u8]);
nian=u1*1000+u2*100+u3*10+u4;
yue=u5*10+u6;
ri=u7*10+u8;
xiaoshi=xiaoshi3*10+xiaoshi4;
fen=fen3*10+fen4;
miao=miao3*10+miao4;
write_com(0x80+69);
write_data(tablel[xiaoshi3]);
write_data(tablel[xiaoshi4]);
write_data(table2[5]);
write_data(tablel[fen3]);
write_data(tablel[fen4]);
write_data(table2[5]);
write_data(table1[miao3]);
write_data(table1[miao4]);
)
tO=O;
TRO=1;
TR1=1;
tempchang();
myshu();
bai=tp/100;
shi=tp/10%10;
ge=tp%10;
if(kl==O)
{
write_com(0x80);
for(s=0;s<6;s++)
(
write_data(table[s]);
)
write_com(0x80+10);
write_data(Oxdf);
write_data(0x63);
write_com(0x80+6);
write_data(tablel[bai]);
write_data(tablel[shi]);
write_data(0x2e);
write_data(table1[ge]);}//chewenbufen
else
{;
ml=nian/1000;
m2=nian/l00%10;
m3=nian/10%10;
m4=nian%10;
m5=yue/10;
m6=yue%10;
m7=ri/10;
m8=ri%10;
write_com(0x80);
write_data(Oxff);
write_data(table
write_data(table1[m2]);
write_data(table1[m3]);
write_data(table1[m4]);
write_data(Oxff);
write_data(table1[m5]);
write_data(table1[m6]);
write_data(Oxff);
write_data(table1[m7]);
write_data(table1[m8]);
write_data(Oxff);
}
write_com(0x80+0x40);
for(s=0;s<5;s++)
{
write_data(table2[s]);
)
key_scan();
if(t0==20)
(
tO=O;
miao++;
)
if(miao>=600)
(
fen++;
miao-=miao;
)
if(fen>=60)
(
fen-=60;
xiaoshi++;
)
if(xiaoshi==24)
{
xiaoshi=0;
ri++;
switch(yue)
(
case1:
if(ri==31)
{yue++;
ri=O;};
break;
case2:
if((nian%100)&(!(nian%4)))
(
if(ri==29)
{yue++;ri=O;}
)
else
(
if(ri==28)
{yue++;ri=O;}
)
break;
case4:
if(ri==30)
(
yue++;
ri=O;
}
break;
case6:
if(ri==30)
{
yue++;
ri=O;
)
break;
case9:
if(ri==30)
(
yue++;
ri=O;
}
break;
case11:
if(ri==30)
(
yue++;
ri=O;
)
break;
if(ri>=31)
ri=O;
yue++;
)
if(yue==13)
{
yue=O;
nian++;
)
write_com(0x80+69);
xiaoshi1=xiaoshi/l0;
xiaoshi2=xiaoshi%10;
fenl=fen/10;
fen2=fen%10;
miaol=miao/100;
miao2=miao/l0%10;
write_data(tablel[xiaoshi1]);
write_data(tablel[xiaoshi2]);
write_data(table2[4]);
write_data(table1[fen1]);
write_data(table1[fen2]);
write_data(table2[4]);
write_data(tablel[miaol]);
write_data(tablel[miao2]);
voidkey_scan()
〃**********掃描第一《行
P2=0xfe;
t0=0;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
delay(lO);
if(temp!=OxfO)
temp=P2;
switch(temp)
caseOxee:
key_managel();
break;
caseOxde:
key_manage2();
break;
caseOxbe:
key_manage3();
break;
case0x7e:
key_manage4();
break;
)
while(temp!=OxfO)
(
temp=P2;
temp=temp&OxfO;
〃**********掃描第二行*********
P2=0xfd;
temp=P2;
temp=temp&OxfO;
if(temp!=OxfO)
(
//TR0=0;
delay(10);
if(temp!=OxfO)
(
temp=P2;
switch(temp)
(
caseOxed:
key_manage5();
break;
caseOxdd:
key_manage6();
break;
caseOxbd:
key_manage7();
break;
case0x7d:
key_manage8();
break;
while(temp!=OxfO)
temp=P2;
temp=temp&OxfO;
〃**********掃描第三行
P2=0xfb;
temp=P2;
temp=temp&OxfO;
if(temp!=OxfO)
(
//TRO=O;
delay(lO);
if(temp!=OxfO)
(
temp=P2;
switch(temp)
(
caseOxeb:
key_manage9();
break;
caseOxd
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧中醫(yī)藥大學(xué)杏林學(xué)院《礦山運(yùn)輸》2023-2024學(xué)年第一學(xué)期期末試卷
- 蘭州職業(yè)技術(shù)學(xué)院《分析化學(xué)及實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西軟件職業(yè)技術(shù)大學(xué)《不動(dòng)產(chǎn)測(cè)繪》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南應(yīng)用技術(shù)學(xué)院《數(shù)據(jù)庫(kù)原理與應(yīng)用實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南工學(xué)院《產(chǎn)品開(kāi)發(fā)與服務(wù)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 衡水職業(yè)技術(shù)學(xué)院《J》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶資源與環(huán)境保護(hù)職業(yè)學(xué)院《大氣科學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶交通職業(yè)學(xué)院《計(jì)算機(jī)輔助實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 仲愷農(nóng)業(yè)工程學(xué)院《虛擬儀器應(yīng)用及項(xiàng)目開(kāi)發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江商業(yè)職業(yè)技術(shù)學(xué)院《壓縮機(jī)原理與結(jié)構(gòu)》2023-2024學(xué)年第一學(xué)期期末試卷
- ECE-R90-歐盟第3版-中文版(R090r3e-01)
- 2024-2025學(xué)年重慶市北碚區(qū)三上數(shù)學(xué)期末監(jiān)測(cè)試題含解析
- 大宗貿(mào)易居間協(xié)議2024年
- 第2課《濟(jì)南的冬天》課件-2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)上冊(cè)
- 2024年水利工程高級(jí)工程師理論考試題庫(kù)(濃縮400題)
- 增強(qiáng)現(xiàn)實(shí)技術(shù)在藝術(shù)教育中的應(yīng)用
- TD/T 1060-2021 自然資源分等定級(jí)通則(正式版)
- 《創(chuàng)傷失血性休克中國(guó)急診專(zhuān)家共識(shí)(2023)》解讀
- 倉(cāng)庫(kù)智能化建設(shè)方案
- 海外市場(chǎng)開(kāi)拓計(jì)劃
- 供應(yīng)鏈組織架構(gòu)與職能設(shè)置
評(píng)論
0/150
提交評(píng)論