77范文网 - 专业文章范例文档资料分享平台

宠物定时喂食器设计论文(8)

来源:网络收集 时间:2019-08-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

附 录

unsigned char

yy,mo,dd,xq,hh,mm,ss,month_moon,day_moon,week,tiangan,dizhi,moontemp1,moontemp2;

//定义时间映射全局变量(专用寄存器) signed char address,item,item0,max,mini;

unsigned char clk_ala[2]={0x00,0x00};//闹钟数据存放初,始值为00:00 unsigned char hour,minute,time;//用于闹铃的设置 void main_MOTO(void);

/*-----------------------------日期、时间设置函数-----------------------------*/ void tiaozheng(void) {

yy = read_clock(0x8d);//调用1302时钟数据中的年数据,从地址0x8d中 mo = read_clock(0x89);//调用1302时钟数据中的月数据,从地址0x89中 dd = read_clock(0x87);//从1302芯片中读取日数据,从地址0x87中 week = read_clock(0x8b);//从1302芯片中读取星期数据,从地址0x8b中 //---------------------------------- lcm_w_test(0,0x80);

lcm_w_word(\显示内容字符20 lcm_w_test(1,(yy/16)+0x30);

//函数参数1,代表本行写数据,YY/16+0X30得出年十位数字的显示码地址,送显示 示 /*

lcm_w_test(0,0x88);

//第一个参数0,表示本行写入LCM的是指令,指定显示位置88H(第三行左端)

30

lcm_w_test(1,yy+0x30);//函数 lcm_w_word(\年\//---------------------------------- lcm_w_test(1,(mo/16)+0x30); lcm_w_test(1,mo+0x30);

//与16取余数,得到月份的个位数,加0x30得到该数字的液晶内定显示码送显

lcm_w_word(\月\//----------------------------------

//调用字符显示函数,显示文字 月

附 录

示 */

lcm_w_word(\星期\lcm_w_test(1,mo+0x30);

//调用字符显示函数,显示文字 星期

//与16取余数,得到月份的个位数,加0x30得到该数字的液晶内定显示码送显

//---------------------------------- lcm_w_test(1,(dd/16)+0x30); lcm_w_test(1,dd+0x30);

//第一个1参数,表示本行写数据,日数据与16取余得个位数,加0x30得到显示码

lcm_w_word(\日\显示字符 日 //---------------------------------- if(read_clock(0x85) != hh)

{//如果程序中的小时与1302芯片中的不同, }

lcm_w_test(0,0x91);

lcm_w_test(1,(hh/16)+0x30);//显示十位 lcm_w_test(1,hh+0x30);//显示个位 lcm_w_word(\时\//---------------------------------- if(read_clock(0x83) != mm)

{//如果1302芯片中的分钟数据与程序中的分钟变量不相等 }

lcm_w_test(1,(mm/16)+0x30);//向液晶写数据,显示分钟的十位数 lcm_w_test(1,mm+0x30);//向液晶写数据,显示分钟的个位数 lcm_w_word(\分\//---------------------------------- if(read_clock(0x81) != ss){

31

hh = read_clock(0x85);//刷新程序中的小时数据

//第一个参数0,表示本行写入LCM的是指令,指定显示位置88H(第三行左端)

mm = read_clock(0x83);//刷新程序中的分钟数据

//如果1302芯片中的分钟数据与程序中的秒钟变量不相等(0x81为读秒数据0x80为写秒数据)

附 录

}

ss = read_clock(0x81);//刷新程序中的秒钟数据

lcm_w_test(1,(ss/16)+0x30);//向液晶写数据,显示分钟的十位数 lcm_w_test(1,ss+0x30);//向液晶写数据,显示分钟的个位数 lcm_w_word(\秒\

//////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////// }

/*****************************************************************************/

//被调数据加一或减一,并检查数据范围,写入1302指定地址保存 void ds_w(void) {

item0=time;

item=((read_clock(address+1))/16)*10 + (read_clock(address+1));

32

//=========显示闹钟的设置时间===================

hour=clk_ala[0]; //取出上一次的闹钟小时值 minute=clk_ala[1]; //取出上一次的闹钟分钟值

lcm_w_test(0,0x88); lcm_w_word(\闹钟---\//----------------------------

lcm_w_test(1,(hour/10)+0x30);//显示小时十位 lcm_w_test(1,(hour)+0x30);//显示小时个位 //---------------------------- //----------------------------

lcm_w_test(1,(minute/10)+0x30);//显示分钟的十位 lcm_w_test(1,(minute)+0x30);//显示分钟的个位 //---------------------------- lcm_w_word(\

lcm_w_word(\

附 录

//时间的调整 }

/********************************************************************/ //===============闹钟时间的加减设置====================== void ds_w0(void) {

item0=time;

if(K3 == 0||key_add==1){//如果按动上调键

item0++;//数加 1 }

item0--;//数减 1 }

if(K3 == 0||key_add==1){//如果按动上调键 item++;//数加 1 }

if(K4 == 0||key_minish==1){//如果按动下调键 }

if(item>max) item=mini;//查看数值是否在有效范围之内

if(item

write_clock(address,(item/10)*16+item);//转换成16进制写入1302 write_clock(0x8e,0x80);//写保护,禁止写操作

item--;//数减 1

if(K4 == 0||key_minish==1){//如果按动下调键

if(item0>max) item0=mini;//查看数值是否在有效范围之内

if(item0

//调整后的时间重新赋值给time(time为hour或minute),这步很重要,没有将无法更新闹钟数据 }

/********************************************************************

33

附 录

**************************************/

//调整时间子函数,设置键、数据范围、上调加一,下调减一功能。 void Set_time(unsigned char sel){

//根据选择调整的相应项目加1并写入DS1302,函数参数是按动设置键的次数

/* if(sel==8) {lcm_w_word(\星期\ tiaozheng(); ds_w(); tiaozheng(); } */

//================================================================

lcm_w_test(0,0x9c);

if(sel==7) {lcm_w_word(\闹钟分\ tiaozheng();//显示调整前的内容

clk_ala[1]=time;//把更新后的分钟数据重新保存

lcm_w_test(0,0x98);

lcm_w_word(\调整>> <<<<\

//第一参数0表示本行写入指令,指定下面行的 调整 显示起始位置为9AH //调用字符显示函数,显示 调整字样

write_com(0x30); write_com(0x06);

ds_w0();//设置闹钟

tiaozheng();//显示调整后的内容 }//按动8次显示 调整闹钟的分钟部分

if(sel==6) {lcm_w_word(\闹钟时\ tiaozheng(); ds_w0();

clk_ala[0]=time;//把更新后的小时数据重新保存 tiaozheng();

}//按动7次显示 调整闹钟的小时部分

//============================================================

34

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库宠物定时喂食器设计论文(8)在线全文阅读。

宠物定时喂食器设计论文(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/676102.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: