宠物定时喂食器设计论文程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

论文程序

#include

#include

#include "LCD12864.h"

#include "DS1302.h"

#include "DS18B20.h"

#include "nongli.h"

#include "displaytime.h"

#include "zk.h"

#include "bell.h"

#include "HW.H"

#include "delay.h"

#include "main_MOTO.h"

#define uint unsigned int

#define uchar unsigned char

/*--------------------定义按键-----------------------------------------------*/

sbit K1 = P0^0; //K1-设置

sbit K2 = P0^1; //K2-确认、返回

sbit K3 = P0^2; //K3-加

sbit K4 = P0^3; //K4-减

//K5=P1^4,K5-控制闹钟的打开与关闭,在"hw.h"中定义

//sbit J1 = P0^6;

sbit J2 = P0^7;

/*---------------------函数声明------------------------------*/

void ds_w0(void);

void ds_w(void);

void Conver_week(bit c,uchar year,uchar month,uchar day);

/*-----------------------------定义全局变量------------------------------*/

bit w=0; //调时标志位

uchar int0_flag=0;

uint int0_flag_1=0;

unsigned char

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

//定义时间映射全局变量(专用寄存器)

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");//显示内容字符20

lcm_w_test(1,(yy/16)+0x30);

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

lcm_w_test(1,yy%16+0x30);//函数

lcm_w_word("年");

//----------------------------------

lcm_w_test(1,(mo/16)+0x30);

lcm_w_test(1,mo%16+0x30);

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

lcm_w_word("月");

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

//----------------------------------

/*

lcm_w_test(0,0x88);

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

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

lcm_w_test(1,mo%16+0x30);

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

*/

//----------------------------------

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

lcm_w_test(1,dd%16+0x30);

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

lcm_w_word("日");//显示字符日

//----------------------------------

if(read_clock(0x85) != hh)

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

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

}

lcm_w_test(0,0x91);

//第一个参数0,表示本行写入LCM的是指令,指定显示位置88H(第三行左端)lcm_w_test(1,(hh/16)+0x30);//显示十位

lcm_w_test(1,hh%16+0x30);//显示个位

lcm_w_word("时");

//----------------------------------

if(read_clock(0x83) != mm)

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

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

}

相关文档
最新文档