版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二屆電子設(shè)計競賽
設(shè)計題目《多功能電子萬年歷》
作品編號:
目錄
摘要.............................................2
第一部分:緒論...................................4
第二部分:設(shè)計方案原理與理論分析計算..............5
第三部分:硬件設(shè)計..................................8
第四部分:軟件設(shè)計..................................11
第五部分:系統(tǒng)的設(shè)計與分析.........................14
第六部分:結(jié)論......................................15
第七部分:【附錄一】作品外圖........................17
【附錄二】程序源代碼....................18
多功能電子萬年歷
摘要
“一寸光陰一寸金,寸金難買寸光陰”!時間對于我們每一個
人都是非常寶貴的,所以鐘表作為人們掌握時間的工具就顯
得十分重要!
鐘表的出現(xiàn)已經(jīng)有幾百年歷史,尤其是擺鐘和后來的懷表,
2
可以稱作鐘表中的經(jīng)典,不僅大方實用,而且制作精美。但
近幾十年,由于微電子的迅猛發(fā)展,這樣的鐘表已經(jīng)銷聲匿
跡,取而代之的則是電子時鐘。隨著社會的發(fā)展,人們的消
費水平不斷的提高,對生活的要求也越來越高,而電子時鐘
不僅精確度更高、外觀小巧、功能更加強大更加完善,制作
成本也是非常低。
由于單片機體積小、價格低、可靠性高、適用面廣、有其本
身的指令系統(tǒng)等諸多優(yōu)勢,在各個領(lǐng)域得到廣泛應(yīng)用,所
以用單片機控制的電子時鐘完全具備時鐘的各種功能,硬件
組成非常精簡,只需要進行軟件的編寫,就能夠?qū)崿F(xiàn)我們需
要的功能。
本設(shè)計利用STC89c52RC計數(shù)器產(chǎn)生時間,并進行處理,輔
以必要的外圍電路,用C語言編寫程序,并進行模塊化設(shè)計
而成的的電子萬年歷。它能顯示陽歷年,月,日,星期,小
時,分,秒;具有定時報警功能,能夠進行整點和半點語音
報時;能用按鍵調(diào)整時間。
關(guān)鍵詞:萬年歷,LCD顯示,STC89C52RC,定時報警
Abstract
“Aninchoftimeaninchofgold,gold-inchDifficulttobuy
time"!Timeforeveryoneofusisveryvaluable,sopeople
havetimetowatchasitisaveryimportanttool!
Theemergenceofwatcheshavebeenafewhundredyearsof
history,especiallythependulumclockandwatchlater,can
3
becalledclassicwatches,generousnotonlypractical,but
beautifullyproduced.However,inrecentdecades,duetothe
rapid,developmentofmicroelectronics,suchwatcheshave
disappeared,replacedbytheelectronicclock.Withthe
developmentofsociety,people1sconsumptionlevelofthe
increaseinthedemandsoflifehavebecomemoresophisticated,
andtheelectronicclockisnotonlyahigheraccuracy,the
appearanceofcompact,morepowerfulevenmoreperfect,the
productioncostisverylow.
Single-chipmicrocomputerasaresultofsmallsize,lowcost,
highreliabilityforawiderange,hasitsowncommandsystem
andmanyotheradvantages,arewidelyusedinvariousfields,
soMCUclockelectronicclockwithavarietyofcompletely
features,hardwarecomponentsareverylean,onlytheneed
forsoftwaredevelopment,willbeabletoachievethe
functionalityweneed.
STC89C52RCcountertheuseofthisdesignhaveatimeanddeal
withthenecessaryperipheralcircuits,usingCprogramming
language,andfromthemodulardesignoftheelectronic
calendar.Itshowsthatthesolarcalendaryear,month,day,
weeks,hours,minutesandseconds;withregularpolice
functions,tocarryoutthewholetimeandasinglevoice;
keyscanbeusedtoadjustthetime.
Keywords:calendar,LCDdisplay,STC89C52RCZregularalarm
第一部分緒論
第二部分設(shè)計方案原理與理論分析計算
1.方案論證及比較
1.1.方案論證
根據(jù)題目要求,我們對系統(tǒng)方案進行多方面的分析和比較,一般來講可以采用以
下幾種方案進行系統(tǒng)設(shè)計:
1.1.1.方案一
設(shè)計系統(tǒng)由主控模塊、時鐘模塊、顯示模塊、鍵盤接口模
4
塊共4個模塊組成。主控模塊用STC89c52RC做處理器,時鐘
模塊采用DS1302獲取時間,顯示模塊用12864LCD液晶顯
示,鍵盤接口模塊用直接編碼輸入。
1.1.2方案二
本設(shè)計利用STC89C52RC計數(shù)器定時產(chǎn)生時間,并進行處理,然后
把時鐘信息傳輸?shù)?602LCD液晶屏進行顯示;鍵盤接口模塊采用
直接編碼輸入;當系統(tǒng)時間與預(yù)設(shè)的報警時間相同時,蜂鳴器
發(fā)出響聲進行報警提示。
1.1.3方案三:
采用89c51芯片作為硬件核心,采用FlashROM,內(nèi)部具有
4KBROM存儲空間,能于3V的超低壓工作,而且與MCS-51
系列單片機完全兼容,但是運用于電路設(shè)計中時由于不具備
ISP在線編程技術(shù),當在對電路進行調(diào)試時、由于程序的錯誤
修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,對芯片的多次拔
插會對芯片造成一定的損壞。
1.2方案比較與選擇
比較以上方案,很明顯:
方案一:用時鐘芯片DS1302獲取的時間較為精確,而且支
持斷電計時;采用12864LCD顯示模塊,顯示量大,但價格
較「司;
方案二:用STC89c52RC的計數(shù)器定時產(chǎn)生時間,充分利用單片機
5
的資源,且其自動重裝初值定時方式能達到ms級誤差,能滿足需求,
不必用DS1302。1602LCD顯示量少,但成本低,設(shè)計簡單。
基于以上兩種方案的比較,我們選擇方案二。
2實現(xiàn)原理
單片機STC89C52RC的定時/計數(shù)器每1s產(chǎn)生一次中斷,每產(chǎn)生一
次中斷,秒計數(shù)單元加一,當秒計數(shù)單元大于或等于60時,秒計
數(shù)單元清零,分計數(shù)單元加一,當分計數(shù)單元大于或等于60時,
分計數(shù)單元清零,時計數(shù)單元加一,當時計數(shù)單元大于或等于24
時,時計數(shù)單元清零,如此循環(huán)來產(chǎn)生時間。
3.理論分析計算
3.1星期計算方法
星期天數(shù)可由年月日來計算,計算公式為
Weekday=(日+2*月+3*(月+1)/5+年+年/4-年/100+年/400)%7
4.功能與指標
4.1功能
4.1.1LCD顯示
顯示陽歷年、月、日、星期、小時、分、秒、報警次序、
6
定時報警時間;
4.1.2定時報警
當時間到達所設(shè)置的報警設(shè)定值時,蜂鳴器發(fā)出響聲,按
SOUNDER(STOP)鍵終止響聲
4.1.3調(diào)時
按模式鍵MODE進入調(diào)時功能,按PLUS鍵是加1,按DEC
是減1。
4.2指標
工作電壓:5V
工作頻率:12MHz
液晶顯示:160*2像素LCD顯示
第三部分硬件設(shè)計
1.1.硬件系統(tǒng)分析
1.1.系統(tǒng)原理框圖
系統(tǒng)原理框圖如圖3所示:
系統(tǒng)原理框圖3
1.2:單片機主控電路如下圖所示
8
2.模塊功能與實現(xiàn)
設(shè)計系統(tǒng)以STC89c52RC為核心,外接晶振電路、顯示模
塊、定時報警模塊、鍵盤接口模塊組成。
2.1STC89C52RC
STC89c52RC是深圳宏晶公司的產(chǎn)品,它是一個低功耗,高性能CMOS8
位單片機,片內(nèi)含8KBytesISP的可反復擦寫100000次的Flash只讀程序存儲器,
器件采用SST公司的高密度、非易失性存儲技術(shù),兼容標準MCS-51指令系統(tǒng)及
80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲單元,其具
有如下特點:40個引腳,8KBytesFlash片內(nèi)程序存儲器,256bytes的隨機存
取數(shù)據(jù)存儲器,32個外部雙向輸入/輸出口,5個中斷優(yōu)先級2層中斷嵌套中斷,2
個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗電路,片內(nèi)時鐘振蕩器。
單片機引腳如下圖所示:
9
4
X10
T2/P1.0Cfo39□Vcc
T2EX/P1.1Cc33PO.0/ADO
OC8
Pl.2C37□PO.1/AD1
Pl.3C36□PO.2/AD2
uc
Pl.4C35□PO.3/AD3
M0SI/P1.5匚3□PO.4/AD4
*f4
XIS0/P1.6C—33□PO.5/AD5
0
SCK/P1.7C32□PO.6/AD6
RSTC31□PO.7/AD7
xi0
BXD/P3.0C30□EAZVPP
*11
TXD/P3.1C29□ALE/PROG
x12
IHT0/P3.2C328□PESN
x1
INT1/P3.3C427□P2.7/A15
A1
T0/P3.4C526□P2.6/A14
X1
T1/P3-5C625□P2.5/A13
X1
面/P3.6C1724□P2.4/Al2
RD/P3.7C*8233P2.3/AU
A1
XTAL2C1322□P2.2ZA10
XTAL1CA021□P2.1/A3
to
PDIPGNBC□P2.0/A8
STC89C52RC引腳圖
2.2.LCD顯示
該模塊采用的1602LCD是一種具有并行、串行多種接口方式的字
符點陣液晶顯示器,液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)
已經(jīng)存儲了160個不同的點陣字符圖形,能夠同時顯示16x02
即32個字符。(16列2行),它通過D0?D7的8位數(shù)據(jù)端傳
輸數(shù)據(jù)和指令。
2.3.定時報警
定時報警用蜂鳴器播放曲譜,曲譜包括廣7七個音符,通過
程序來控制音符的播放效果
2.4.鍵盤接口
鍵盤接口電路由四個按鍵組成,分別是模式鍵MODE,加一
鍵PLUS,減一鍵DEC,停止鍵STOP,用查詢法完成讀鍵功能
IO
第四部分軟件設(shè)計
1.軟件系統(tǒng)分析
STC89c52RC單片機及其開發(fā)應(yīng)用系統(tǒng)具有語言簡潔、可移植性好、表達
能力強、實現(xiàn)方式靈活等特點,可以進行結(jié)構(gòu)化設(shè)計,也可以直接控制計算機硬
件,所生成的代碼質(zhì)量高,使用方便.該系統(tǒng)采用模塊化設(shè)計。由主程序、定時
程序、定時報警程序、顯示程序、調(diào)時程序等構(gòu)成。
2.軟件流程
3.定時程序
使用定時/計數(shù)器TO,設(shè)置TO工作方式為方式1,16位工作模式,
設(shè)定TO低8位數(shù)值TLO=11H,高8位數(shù)值THO=OEEH,這樣TO的溢
11
出時間為5ms,另外還需使用軟件計數(shù)方式,軟件計數(shù)器初值為
200,定時器每溢出一次,軟件計數(shù)器減一,當軟件計數(shù)器減到0
時,即可獲得1s的定時時間。
4.液晶顯示程序
先初始化LCD1602,當CPU檢測到LCD1602處于空閑狀態(tài)時,調(diào)用
寫指令子程序完成相應(yīng)的功能,調(diào)用寫數(shù)據(jù)子程序把數(shù)據(jù)傳輸?shù)?/p>
LCD1602進行顯示。
5.定時報警流程
5.調(diào)時程序
開始
12
13
第五部分系統(tǒng)的測試及分析
1.系統(tǒng)測試方案
采用先分別調(diào)試各單元模塊,調(diào)通后再進行整個系統(tǒng)調(diào)試的方法,以提高調(diào)
試效率。
1.1LCD測試
編寫一段程序讓LCD顯示一串數(shù)字
1.2定時報警測試
編程設(shè)定在系統(tǒng)啟動一段時間后蜂鳴器發(fā)出響聲
1.3定時中斷測試
用定時器TO,編程設(shè)定TO的初值,讓TO每一秒中斷一次,在LCD上
顯示相應(yīng)數(shù)字
1.4整個系統(tǒng)測試
拿一個能記錄分、秒、毫秒的秒表,分別記錄系統(tǒng)時間走過10分鐘、
20分鐘、30分鐘所用的時間,以此來測量系統(tǒng)的精度
2.測試設(shè)備
數(shù)字萬用表,秒表,個人電腦(內(nèi)含protues/keilc51仿真軟件),整個測試均在
室內(nèi)完成
3.測試數(shù)據(jù)
10分00秒06毫秒
系統(tǒng)時間走過1。分鐘所用的時間
14
20分01秒02毫秒
系統(tǒng)時間走過20分鐘所用的時間
30分01秒08毫秒
系統(tǒng)時間走過30分鐘所用的時間
4.測試結(jié)果分析
由上述數(shù)據(jù)記錄表分析可知,測量誤差均在0.1%以內(nèi),精確度較高,可以滿足基
本的需要
第六部分結(jié)論
1.最終實現(xiàn)功能
1.1LCD顯示陽歷年、月、日、星期、小時、分、秒;
L2定時報警
L3按鍵調(diào)時
2.特色
時間精度較高,定時報警和液晶顯示相結(jié)合,更直觀,更人
性化成本低,體積小,使用方便
3.未來的改進方向
該設(shè)計已有的功能和特色上,仍需進一步改善,使其更人性化,功能更完
善。
3.1提高系統(tǒng)時間的精度
3.2增加陰歷年顯示和半點/整點語音報時/溫度顯示等功能
4.總結(jié)
本設(shè)計以STC89c52RC為核心,利用軟件編程,通過按鍵控制和液晶顯示,
輔以語音警示,實現(xiàn)顯示萬年歷的功能。利用單片機設(shè)計的電子萬年歷系統(tǒng),易
于設(shè)計和安裝維護,可靠性好,功能擴展便捷,價格實惠,系統(tǒng)精確度高,穩(wěn)定
性好,應(yīng)用前景非常廣闊。
這次競賽鍛煉了我們的動手能力,激發(fā)了我們的創(chuàng)新思維,培養(yǎng)了我們勇于
面對困難克服困難的堅強意志和不懈的精神,使我們又一次體味到團隊的力量和
15
合作的重要性;更重要的是使我們深深的體會到理論結(jié)合實際的重要性,體會到
知識的海洋是無窮無盡,激發(fā)我們?nèi)プ非?。總之,我們喜歡“電子設(shè)計”競賽,
感謝組委會給了我們鍛煉的機會。
【參考文獻】
[1]潘永雄.《新編單片機原理與應(yīng)用》.西安:西安電子
科技大學出版社,2008.1
[2]樓苗然.《單片機設(shè)計實例》.北京:北京航空航天大
學出版社,2006.4
【3】劉文濤.《單片機應(yīng)用開發(fā)實例》.北京:清華大學出
版社,2005.5
[4]尹勇.《單片機程序設(shè)計教程》.北京:北京航空航天
大學出版社,2004.3
[5]徐愛均,彭愛華.《單片機高級語言C51windows環(huán)
境編程與應(yīng)用》.北京:電子工業(yè)出版社,2001.7
[6]馮育長,《單片機系統(tǒng)設(shè)計與實例分析》.西安:西安
電子科技大學出版社,2007.5
【7】李群芳,肖看.《單片機原理、接口及應(yīng)用》--嵌入
式系統(tǒng)設(shè)計基礎(chǔ).北京:清華大學出版社,2007.12
16
【附錄一】作品外形圖
17
【附錄二】源程序代碼
/*用定時器0,1602液晶,設(shè)計一個數(shù)字時鐘,可以由三個
按鈕控制調(diào)節(jié)時間*/
多功能萬年歷*/
#include<reg52.h>
#includenlcdl602.hM
#defineucharunsignedchar
#defineuintunsignedint
#defineTIMERO_COUNTOxEEll
sbitmode=P3A0;
sbitplus=P3A3;
sbitdec=P3A6;
sbitnao=P2A3;
sbitstop=P3A4;
ucharcount,s1num,timer0_tick,count=0;
chardingshi[32];
chardingfen[32];
uchark;
uchar1;
ucharmodenum;
chardingtime;
18
voiddelaytime(uintx)
(
uinta,b;
fbr(a=x;a>0;a—)
fbr(b=1000;b>0;b-);
typedefstruct{
charhour;
charminute;
charsecond;
}time;
typedefstruct{
uintyear;
ucharmonth;
charday;
}date;
timenow={0,0,0};
datetoday={2009,1,8};
charcodedayofmonth[]={31,28,31,30,31,30,31,31,30,31,30,31};
charcodeweekday[7][4]={”MON”JTUE”JWED”JTHU”JFRTJSAT'JSUN"};
ucharmonthday(ucharyear,ucharmonth)
(
if(month=2&&year%4==0)〃潤年的2月有29天
retum(29);
else
retum(dayofinonth[month-1]);〃非閏年時的該月份天數(shù)
voiddisplay_week()//由年月日計算星期
(
chardays;
days=(today.day+2*today.month+3*(today.month+l)/5+today.year+today.year/4-toda
y.year/1OO+today.year/400)%7;
display_string(&weekday[days][0]);
}
staticvoidtimerOinitialize(void)//timerOinitialize
(
EA=0;〃設(shè)置不接受所有中斷
19
timerO_tick=O;
TRO=O;〃關(guān)閉Timer。
TMOD=0X01;//設(shè)置TimerO為模式1,16位工作模式
TLO=(TIMERO_COUNT&OXOOFF);//設(shè)置TimerO低八位數(shù)值
THO=(TIMERO_COUNT?8);〃設(shè)置TimerO高八位數(shù)值
PT1=1;~〃設(shè)置TimerO的優(yōu)先級為最高
ETO=1;〃設(shè)置接受TimerO的中斷
TRO=1;〃啟動TimerO
EA=1;〃設(shè)置系統(tǒng)接受中斷
voidwrite_dingtime(ucharadd,ucharnumber)
(
gotoxy(2,add);
displaydata(number);
}
voidwrite_time(ucharadd,ucharnumber)
(
gotoxy(2,add);
displaydata(number);
}
voidwrite_riqi(ucharadd,ucharnumber)
(
gotoxy(l,add);
display_data(number);
)
voidkeyscan()
(
if(mode==0)
(
delay⑸;
if(mode==0)
{mode_num-H-;
while(!mode);
TR0=0;
write_com(0x0f);
}
if(mode_num==1)gotoxy(l,4);
i出mode_num==2)gotoxy(l,7);
if(mode_num==3)gotoxy(l,10);
if(mode_num==4)gotoxy(2,2);
if(mode_num==5)gotoxy(2,5);
20
if(mode_num==6)gotoxy(2,8);
if(mode_num==7)gotoxy(2,ll);
if(mode_num==8)gotoxy(2,l4);
imode_num==9)gotoxy(2,l6);
if(mode_num==10)
(
mode_num=0;
write_com(OxOc);
TRO=1;
)
)
if(mode_num!=0)
(
if(plus=0)
(
delay⑸;
i<plus=0)
{
while(!plus);
if(mode_num=1)
(
today.year++;
write_riqi(l,today,year/100);
write_riqi(3,today.year%100);
gotoxy(l,12);
display_week();
gotoxy(l,4);
)
if(mode_num=2)
(
today,month++;
ifttoday.month==l3)today.month=l;
write_riqi(6,today,month);
gotoxy(l,12);
display_week();
gotoxy(l,7);
)
if(mode_num=3)
(
today.day++;
if(today.day>monthday(today.year,today.month))
today.day=l;
write_riqi(9,today.day);
gotoxy(l,12);
21
display_week();
gotoxy(l,10);
}
if(mode_num==4)
(
now.hour++;
if(now.hour=24)now.hour=0;
write_time(1,now.hour);
gotoxy(2,2);
)
if(mode_num==5)
(
now.minute++;
if(now.minute=60)now.minute=0;
write_time(4,now.minute);
gotoxy(2,5);
f
if(mode_num==6)
(
now.second++;
if(now.second=60)now.second=0;
write_time(7,now.second);
gotoxy(2,8);
)
if(mode_num==7)
(
dingtime-H-;
if(dingtime==33)dingtime=l;
write_dingtime(lO,dingtime);
write_dingtime(13,dingshi[dingtiine-1]);
write_dingtime(l5,dingfen[dingtime-1]);
gotoxy(2,ll);
)
if(mode_num==8)
(
dingshi[dingtime-l]++;
if(dingshi[dingtime-1]=24)dingshi[dingtime-l]=0;
write_dingtime(13,dingshi[dingtime-1]);
gotoxy(2,14);
)
i出mode_num==9)
(
dingfen[dingtime-1]++;
if(dingfen[dingtime-1]==60)dingfen[dingtime-1]=0;
22
write_dingtime(l5,dingfen[dingtime-1]);
gotoxy(2,16);
if(dec==O)
delay(5);
if(dec==O)
(
while(!dec);
if(mode_num=1)
{
today.year—;
write_riqi(l,today,year/100);
write_riqi(3,today,year%100);
gotoxy(l,12);
display_week();
gotoxy(l,4);
)
if(mode_num=2)
(
today,month—;
ifttoday.month==0)today.month=12;
writeriqi(6,today,month);
gotoxy(l,12);
display_week();
gotoxy(l,7);
}
if(mode_num=3)
(
today,day—;
ifttoday.day==0)
today.day=monthday(today.year,today.month);
write_riqi(9,today.day);
gotoxy(l,12);
display_week();
gotoxy(l,10);
)
if(mode_num==4)
(
now.hour-;
if(now.hour<0)now.hour=23;
write_time(1?now.hour);
23
gotoxy(2,2);
if(mode_num==5)
(
now.minute-;
if(now.minute<0)now.minute=59;
write_time(4,now.minute);
gotoxy(2,5);
)
if(mode_num==6)
(
now.second-;
if(now.second<0)now.second=59;
write_time(7,now.second);
gotoxy(2,8);
)
if(mode_num==7)
(
dingtime-;
if(dingtime<0)dingtime=32;
write_dingtime(lO,dingtime);
write_dingtime(13,dingshi[dingtime-1]);
write_dingtime(l5,dingfen[dingtime-1]);
gotoxy(2,ll);
)
if(mode_num==8)
(
dingshi[dingtime-1]—;
if(dingshi[dingtime-1]<0)dingshi[dingtime-1]=23;
write_dingtime(13,dingshi[dingtime-1]);
gotoxy(2,14);
)
if(mode_num==9)
(
dingfen[dingtime-1]—;
if(dingfen[dingtime-1]<0)dingfen[dingtime-1]=59;
write_dingtime(15,dingfen[dingtime-1]);
gotoxy(2,16);
24
voidtimerO(void)interrupt1
TR0=0;
TLO=(TIMERO_COUNT&0X00FF);〃設(shè)置TimerO低八位數(shù)值
THO=(TIMERO_COUNT?8);〃設(shè)置TimerO高八位數(shù)值
TRO=1;
count-H-;
if(count=200)
(
count=0;
now.second-H-;
iftnow.second==60)
{
now.second=0;
now.minute++;
if(now.minute=60)
(
now.minute=0;
now.hour++;
if(now.hour=24)
(
now.hour=0;
today.day++;
if(today.day>monthday(today,year,today.month))
(
today.day=l;
today.month++;
if(today.month=13)
(
today,month=l;
today.year++;
)
writeriqi(6,today,month);
)
write_riqi(9,today.day);
gotoxy(l,12);
display_week();
)
write_time(1,now.hour);
)
write_time(4,now.minute);
25
write_time(7,now.second);
if(dingshi[dingtime-1]!=0&&dingfen[dingtime-1]!=0)
(
if(now.hour=dingshi[dingtime-1]&&now.minute==dingfen[dingtime-1])
{
if(stop=0)
|
delay(5);
if(stop==0)
(
nao=0;
while(!stop);
dingtime-H-;
iftdingtime==33)
dingtime=l;
write_dingtime(10,dingtime);
write_dingtime(13,dingshi[dingtime-1]);
write_dingtime(l5,dingfen[dingtime-1]);
voidmain()
{
dingtime=l;
nao=0;
init_lcd();
timerO_initialize();
gotoxy(lj);
display_string(n2009/01/08");
display_week();
gotoxy(2,l);
display_string(n00:00:00n);
gotoxy(2,10);
display_string(n010000");
while(l)
26
keyscan();
if(mode_num==0)
{
if(dingshi[dingtime-1]!=0&&dingfen[dingtime-1]!=O)
(
if(now.hour=dingshi[dingtime-1]&&now.minute=dingfen[dingtime-1])
{
fbr(l=20;l>0;l-)
{
fdr(k=5OOOO;k>O;k-)
{
if(stop==0)gotoloop;
nao=~nao;
delay(20);
}
delaytime(50);
)
nao=0;
delaytime(500);
fdr(l=10;l>0;l-)
(
fdr(k=5OOOO;k>O;k-)
(
if(stop==0)gotoloop;
nao=-nao;
delay(20);
)
delaytime(50);
)
dingtime-H-;
if(dingtime==33)
dingtime=l;
write_dingtime(lO,dingtime);
write_dingtime(13,dingshi[dingtime-1]);
write_dingtime(l5,dingfen[dingtime-1]);
loop:delay(5);
27
“LCD1602.h”
#defineucharunsignedchar
#defineuintunsignedint
sbitrs=P2A0;
sbitlcden=P2A2;
#defineledmode0x38
#definedisplaycursorOxOf
#defineundisplay_cursor0x0c
charcodeint_to_char[]=n0123456789H;
voiddelay(uintx)
uinta,b;
for(a=x;a>0;a-)
fbr(b=10;b>0;b—);
voidwrite_com(ucharcom)〃寫命令
PO=com;
rs=O;
lcden=O;
delay(lO);
lcden=l;
delay(lO);
lcden=O;
voidwrite_date(uchardate)〃寫數(shù)據(jù)
{
PO=date;
rs=l;
lcden=0;
delay(lO);
lcden=l;
delay(lO);
lcden=0;
voidinit_lcd(void)〃初始化led1602
(
delay(15);
write_com(ledmode);
28
delay(20);
write_com(undisplay_cursor);
delay(20);
write_com(0x06);//letcursormove
delay(20);
write_com(0x01);//clearled
delay(20);
)
voiddisplay_string(char*p)〃寫字符串
while(*p)
write_date(*p);
delay(20);
p++;
)
voidgotoxy(ucharx,uchary)
if(x==l)
write_com(0x80+y-1);
e
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度醫(yī)院門診部承包經(jīng)營服務(wù)合同3篇
- 2025年度海洋工程承包勞務(wù)服務(wù)協(xié)議3篇
- 2025年物業(yè)公司物業(yè)費收入權(quán)轉(zhuǎn)讓合同3篇
- 2025版高端景觀工程毛石材料供應(yīng)合作協(xié)議4篇
- XX公司2024年度采購協(xié)議樣本版B版
- 二零二五版數(shù)據(jù)中心網(wǎng)絡(luò)安全設(shè)備安裝協(xié)議2篇
- 二零二五年度鐵路客票運輸合同樣本3篇
- 2024綠色照明推廣與實施合同
- 游戲化教學法在小學生閱讀能力培養(yǎng)中的應(yīng)用
- 文化背景下創(chuàng)新金融產(chǎn)品的市場反應(yīng)研究
- 2024年國家公務(wù)員考試公共基礎(chǔ)知識復習題庫及答案(共三套)
- 《社會工作實務(wù)》全冊配套完整課件3
- 單位違反會風會書檢討書
- 2024年4月自考00832英語詞匯學試題
- 《電力用直流電源系統(tǒng)蓄電池組遠程充放電技術(shù)規(guī)范》
- 《哪吒之魔童降世》中的哪吒形象分析
- 信息化運維服務(wù)信息化運維方案
- 汽車修理廠員工守則
- 公安交通管理行政處罰決定書式樣
- 10.《運動技能學習與控制》李強
- 1神經(jīng)外科分級護理制度
評論
0/150
提交評論