資源描述:
《寵物定時喂食器設(shè)計論文程序》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、論文程序#include#includeinclude”LCD12864.h”include”DS1302.hninclude"DS18B20.h"#include"nongli.h”^include"displaytime.h”#include’’zk.h"includenbell.hninclude’’HW.H"#include"delay.h"#include"main_MOTO.h"#defineuintunsignedint#defineucharunsignedchar/*定義按鍵*/sbitKl=POAO;
2、//K1-設(shè)罝sbitK2=P0Al;//K2-確認(rèn)、返回sbitK3=P0A2;//K3-加sbitK4二P0A3;//K4-減//K5=P1A4,K5-控制鬧鐘的打幵與關(guān)閉,在’’hw.h"屮定義//sbitJl=P0A6;sbitJ2=PO八7;/*函數(shù)聲明*/voidds_wO(void);voidds_w(void);voidConver_week(bitc,ucharyear,ucharmonth,ucharday);/*定義全局變量-*/bitw=0;//調(diào)時標(biāo)志位ucharintO_flag=O;uintintO_flag_l=O;unsign
3、edcharyy,mo,dd,xq,hh,mm,ss,month_moon,day_moon,week,tiangan,dizhi,moontempl,moontemp2;//定義時間映射全局變量(專用寄存器)signedcharaddress,item,iternO,max,mini;unsignedcharclk_ala[2]={0x00,0x00};//鬧鐘數(shù)據(jù)存放初,始值為00:00unsignedcharhour,minute,time;//用丁鬧鈴白設(shè)置voidmain_MOTO(void);/*日期、時間設(shè)置函數(shù)*/voidtiaozheng(v
4、oid){yy=read_clock(0x8d);//調(diào)用1302時鐘數(shù)據(jù)中的年數(shù)據(jù),從地址0x8d中mo=read_clock(0x89);//調(diào)用1302時鐘數(shù)據(jù)中的刀數(shù)據(jù),從地址0x89中dd=read_clock(0x87);//從1302芯片中讀取日數(shù)據(jù),從地址0x87中week=read_clock(0x8b);//從1302芯片中讀取星期數(shù)據(jù),從地址0x8b中//lcm_w_test(0,0x80);lcm_w_word(’’20n);//顯示內(nèi)容字符20lcm_w_test(1,(yy/l6)+0x30);//函數(shù)參數(shù)1,代表本行寫數(shù)據(jù),YY/
5、16+0X30得出年十位數(shù)字的顯示碼地址,送顯示lcm_w_test(1,yy%16+0x30);//函數(shù)Icm_w_word(n年”);//lcm_w_test(1,(mo/l6)+0x30);lcm_w_test(1,mo%l6+0x30);//與數(shù),得到月份的個位數(shù),加0x30得到該數(shù)字的液晶內(nèi)定顯示碼送顯示lcm_w_word("月’’);//調(diào)用字_符顯示函數(shù),顯示文字月///*lcm_w_test(O,Ox88);//第一個參0,表示木行寫入LCM的是指令,指定顯示位置88H(第三行左端)lcm_w_word("星期’*);//調(diào)用字_符顯示函數(shù),
6、顯示文字星期lcm_w_test(1,mo%16+0x30);與16故秦數(shù),得到月份的個位數(shù),加0x30得到該數(shù)字的液晶內(nèi)定顯示碼送顯示*///lcm_w_test(l,(dd/16)+0x30);lcm_w_test(1,dd%16+0x30);//第一個1參數(shù),表示本行寫數(shù)據(jù),R數(shù)據(jù)與16取余得個位數(shù),加0x30得到顯示碼lcm_w_word(’?日’’);//顯示字符日//if(read_clock(0x85)!=hh){//如€程序中的小吋與1302芯片中的不同,hh=read_clock(0x85);//刷新程序屮的小時數(shù)據(jù)}lcm_w_test(0
7、,0x91);//第一個參&0,表示本行寫入LCM的是指令,指定顯示位置88H(第三行左端)lcm_w_test(1,(hh/l6)+0x30);//顯示十位lcm_w_test(l,hh%16+0x30);//顯示個位lcm_w_word(”時n);//if(read_clock(0x83)!=mm){//如f1302芯片中的分鐘數(shù)據(jù)與程序中的分鐘變量不相等mm=read_clock(Ox83);//則新程序屮的分鐘數(shù)據(jù)lcm_w_test(1,(mm/l6)+0x30);//向液品寫數(shù)據(jù),顯示分鐘的十位數(shù)lcm_w_test(1,mm%l6+0x30);/
8、/向液晶寫數(shù)據(jù),顯示分鐘的個位數(shù)lcm