杜洋的智能电子钟.docx

上传人:b****3 文档编号:3746919 上传时间:2023-05-06 格式:DOCX 页数:21 大小:20.86KB
下载 相关 举报
杜洋的智能电子钟.docx_第1页
第1页 / 共21页
杜洋的智能电子钟.docx_第2页
第2页 / 共21页
杜洋的智能电子钟.docx_第3页
第3页 / 共21页
杜洋的智能电子钟.docx_第4页
第4页 / 共21页
杜洋的智能电子钟.docx_第5页
第5页 / 共21页
杜洋的智能电子钟.docx_第6页
第6页 / 共21页
杜洋的智能电子钟.docx_第7页
第7页 / 共21页
杜洋的智能电子钟.docx_第8页
第8页 / 共21页
杜洋的智能电子钟.docx_第9页
第9页 / 共21页
杜洋的智能电子钟.docx_第10页
第10页 / 共21页
杜洋的智能电子钟.docx_第11页
第11页 / 共21页
杜洋的智能电子钟.docx_第12页
第12页 / 共21页
杜洋的智能电子钟.docx_第13页
第13页 / 共21页
杜洋的智能电子钟.docx_第14页
第14页 / 共21页
杜洋的智能电子钟.docx_第15页
第15页 / 共21页
杜洋的智能电子钟.docx_第16页
第16页 / 共21页
杜洋的智能电子钟.docx_第17页
第17页 / 共21页
杜洋的智能电子钟.docx_第18页
第18页 / 共21页
杜洋的智能电子钟.docx_第19页
第19页 / 共21页
杜洋的智能电子钟.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

杜洋的智能电子钟.docx

《杜洋的智能电子钟.docx》由会员分享,可在线阅读,更多相关《杜洋的智能电子钟.docx(21页珍藏版)》请在冰点文库上搜索。

杜洋的智能电子钟.docx

杜洋的智能电子钟

//---程序说明---//

/*

名字:

main.c

作者:

杜洋(doyoung)

创建日:

2006-11-26

工程:

智能助理电子钟(AI-timer)

*/

//---修改日志---//

/*

*/

//---硬件说明---//

/*

P0.0~0.7NC

P1.0右上角LED-G低电平有效(L)

P1.1右下角LED-GL

P1.2左下角LED-GL

P1.3左上角LED-GL

P1.44个LED-RL

P1.5~1.7ISP下载用~

P2.1LCM-5SID串行数据输入,~

P2.2LCD-6CLK串行时钟,~

P2.3左上角KEY-

P2.4左下角KEY-

P2.5右上角KEY-

P2.6右下角KEY-

P2.7背后LED-BL

P3.0温度单总线~

P3.1BEEPL

P3.2KEY中断-

P3.3DS1302-5RST_低电平复位(L)

P3.4DS1302-6IO~

P3.5DS1302-7SCLK~

P3.624C02-6SCL~

P3.724C02-5SDA~

*/

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

//头文件

#include

#include

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

//灯与蜂鸣器定义

sbitled_b=P2^7;

sbitled_r=P1^4;

sbitled_g1=P1^3;

sbitled_g2=P1^2;

sbitled_g3=P1^0;

sbitled_g4=P1^1;

sbitbeep=P3^1;

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

//温度传感器定义

sbitDQ=P3^0;//ds18B20

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

//键盘引脚定义

sbitKEY_1=P2^3;//左上

sbitKEY_2=P2^4;//左下

sbitKEY_3=P2^6;//右上

sbitKEY_4=P2^5;//右下

sbitKEY_I=P3^2;//常0

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

//引脚定义

sbitSID=P2^1;//数据

sbitSCLK=P2^2;//时钟

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

//定义DS1302时钟接口

sbitclock_clk=P3^5;//ds1302_clk(时钟线)

sbitclock_dat=P3^4;//ds1302_dat(数据线)

sbitclock_Rst=P3^3;//ds1302_Rst(复位线)

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

//定义累加器A中的各位

sbita0=ACC^0;

sbita1=ACC^1;

sbita2=ACC^2;

sbita3=ACC^3;

sbita4=ACC^4;

sbita5=ACC^5;

sbita6=ACC^6;

sbita7=ACC^7;

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

//定义全局变量

unsignedcharyy,mo,dd,xq,hh,mm,ss;//定义时间映射全局变量(专用寄存器)

bitw=0;//调时标志位

staticunsignedcharmenu=0;//定义静态小时更新用数据变量

staticunsignedcharkeys=0;//定义静态小时更新用数据变量

staticunsignedchartimecount=0;//定义静态软件计数器变量

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

voidDelayM(unsignedinta){//延时函数1MS/次

unsignedchari;

while(--a!

=0){

for(i=0;i<125;i++);//一个;表示空语句,CPU空转。

}//i从0加到125,CPU大概就耗时1毫秒

}

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

//函数声明

voidlcm_w_word(unsignedchar*str);//写字符例:

lcm_w_word("您好!

");

voidlcm_w_test(bitstart,unsignedcharddata);//(0,指令)(1,数据)

voidlcm_w_byte(unsignedcharbbyte);//写一个字节给lcm

voiddelaynms(unsignedintdi);//延时

voidlcm_init(void);//lcm初始化

voidlcm_clr(void);//清屏

voiddays(viod){//公历节日数据库

lcm_w_test(0,0x80);

lcm_w_word("[Dis][Set]");

lcm_w_test(0,0x98);

//----|----------------|

if(mo==0x01&&dd==0x01){lcm_w_word("HappyNewYear!

!

");}//1月

if(mo==0x01&&dd==0x28){lcm_w_word("世界麻风日");}

if(mo==0x02&&dd==0x02){lcm_w_word("世界湿地日");}//2月

if(mo==0x02&&dd==0x13){lcm_w_word("明天情人节了");}

if(mo==0x02&&dd==0x14){lcm_w_word("今天是情人节");}

if(mo==0x03&&dd==0x01){lcm_w_word("国际海豹日");}//3月

if(mo==0x03&&dd==0x03){lcm_w_word("全国爱耳日");}

if(mo==0x03&&dd==0x08){lcm_w_word("3.8妇女节");}

if(mo==0x03&&dd==0x12){lcm_w_word("植树节");}

if(mo==0x03&&dd==0x14){lcm_w_word("国际警察日");}

if(mo==0x03&&dd==0x15){lcm_w_word("消费者权益日");}

if(mo==0x03&&dd==0x17){lcm_w_word("国际航海日");}

if(mo==0x03&&dd==0x21){lcm_w_word("世界森林日");}

if(mo==0x03&&dd==0x22){lcm_w_word("世界水日");}

if(mo==0x03&&dd==0x23){lcm_w_word("世界气象日");}

if(mo==0x03&&dd==0x24){lcm_w_word("世界防治结核病日");}

if(mo==0x04&&dd==0x01){lcm_w_word("愚人节小心上当");}//4

if(mo==0x04&&dd==0x07){lcm_w_word("世界卫生日");}

if(mo==0x04&&dd==0x08){lcm_w_word("复活节");}

if(mo==0x04&&dd==0x13){lcm_w_word("黑色星期五");}

if(mo==0x05&&dd==0x01){lcm_w_word("劳动节放假");}//5

if(mo==0x05&&dd==0x04){lcm_w_word("青年节");}

if(mo==0x05&&dd==0x08){lcm_w_word("世界红十字日");}

if(mo==0x05&&dd==0x12){lcm_w_word("国际护士节");}

if(mo==0x05&&dd==0x05){lcm_w_word("近日注意母亲节");}

if(mo==0x05&&dd==0x15){lcm_w_word("国际家庭日");}

if(mo==0x05&&dd==0x31){lcm_w_word("世界无烟日");}

if(mo==0x06&&dd==0x01){lcm_w_word("国际儿童节");}//6

if(mo==0x06&&dd==0x05){lcm_w_word("世界环境日");}

if(mo==0x06&&dd==0x26){lcm_w_word("国际禁毒日");}

if(mo==0x06&&dd==0x06){lcm_w_word("全国爱眼日");}

if(mo==0x06&&dd==0x13){lcm_w_word("近日注意父亲节");}

if(mo==0x06&&dd==0x15){lcm_w_word("近日注意父亲节");}

if(mo==0x07&&dd==0x01){lcm_w_word("香港回归记念日");}//7

if(mo==0x07&&dd==0x07){lcm_w_word("抗日战争记念日");}

if(mo==0x07&&dd==0x11){lcm_w_word("世界人口日");}

if(mo==0x08&&dd==0x01){lcm_w_word("八一建军节");}//8

if(mo==0x08&&dd==0x08){lcm_w_word("中国男子节");}

if(mo==0x08&&dd==0x15){lcm_w_word("抗战胜利记念日");}

if(mo==0x09&&dd==0x10){lcm_w_word("中国教师节");}//9

if(mo==0x09&&dd==0x18){lcm_w_word("九·一八事变记念");}

if(mo==0x09&&dd==0x20){lcm_w_word("国际爱牙日");}

if(mo==0x09&&dd==0x27){lcm_w_word("世界旅游日");}

if(mo==0x10&&dd==0x01){lcm_w_word("中国国庆节");}//10

if(mo==0x10&&dd==0x04){lcm_w_word("世界动物日");}

if(mo==0x10&&dd==0x24){lcm_w_word("联合国日");}

if(mo==0x10&&dd==0x12){lcm_w_word("明天国际教师节");}

if(mo==0x10&&dd==0x13){lcm_w_word("国际教师节");}

if(mo==0x11&&dd==0x10){lcm_w_word("世界青年节");}//11

if(mo==0x11&&dd==0x17){lcm_w_word("世界学生节");}

if(mo==0x12&&dd==0x01){lcm_w_word("世界艾滋病日");}//12

if(mo==0x12&&dd==0x23){lcm_w_word("明晚平安夜");}

if(mo==0x12&&dd==0x24){lcm_w_word("今晚平安夜");}

if(mo==0x12&&dd==0x25){lcm_w_word("圣诞快乐");}

if(mo==0x12&&dd==0x31){lcm_w_word("明日新年");}

else{

if(hh>=0x04&&hh<0x06){lcm_w_word("★★__▲▲__凌晨");}

if(hh>=0x06&&hh<0x08){lcm_w_word("☆○__▲△__早晨");}

if(hh>=0x08&&hh<0x12){lcm_w_word("__●__▲▲__上午");}

if(hh==0x12){lcm_w_word("____▲●▲__中午");}

if(hh>=0x13&&hh<0x18){lcm_w_word("__▲▲__●__下午");}

if(hh>=0x18&&hh<0x22){lcm_w_word("△▲__●☆__晚上");}

if(hh>=0x22&&hh<=0x23){lcm_w_word("△▲__★☆__夜里");}

if(hh>=0x00&&hh<0x04){lcm_w_word("__★▲▲★__深夜");}

}

}

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

//初始化LCM

voidlcm_init(void){

delaynms(100);//启动等待,等LCM讲入工作状态

lcm_w_test(0,0x30);//8位介面,基本指令集

lcm_w_test(0,0x0c);//显示打开,光标关,反白关

lcm_w_test(0,0x01);//清屏,将DDRAM的地址计数器归零

delaynms(100);//启动等待,等LCM讲入工作状态

}

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

//写指令或数据(0,指令)(1,数据)

voidlcm_w_test(bitstart,unsignedcharddata){

unsignedcharstart_data,Hdata,Ldata;

if(start==0)

start_data=0xf8;//0:

写指令

else

start_data=0xfa;//1:

写数据

Hdata=ddata&0xf0;//取高四位

Ldata=(ddata<<4)&0xf0;//取低四位

lcm_w_byte(start_data);//发送起始信号

delaynms(5);//延时是必须的

lcm_w_byte(Hdata);//发送高四位

delaynms(5);//延时是必须的

lcm_w_byte(Ldata);//发送低四位

delaynms(5);//延时是必须的

}

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

//发送一个字节(底层函数)

voidlcm_w_byte(unsignedcharbbyte){

unsignedchari;

for(i=0;i<8;i++){

SID=bbyte&0x80;//取出最高位

SCLK=1;

SCLK=0;

bbyte<<=1;//左移

}

}

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

//延时(LCM占用)

voiddelaynms(unsignedintdi){

unsignedintda,db;

for(da=0;da

="\0"while(*str*str){lcm_w_word(unsigned应用:

lcm_w_word(?

您好!

?

);向LCM发送一个字符串,长度64字符之内。

*****************************************************************************启动等待,等LCM讲入工作状态delaynms(40);lcm_w_test(0,0x01);lcm_clr(void){清屏函数for(db="0;db<10;db++);">0;i--)

{

DQ=0;//给脉冲信号

dat>>=1;

DQ=1;//给脉冲信号

if(DQ)

dat|=0x80;

Delay(4);

}

return(dat);

}

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

voidWriteOneChar(unsignedchardat)//写一个字节

{

unsignedchari=0;

for(i=8;i>0;i--)

{

DQ=0;

DQ=dat&0x01;

Delay(5);

DQ=1;

dat>>=1;

}

}

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

unsignedintReadTemperature(void)//读取温度

{

unsignedchara=0;

unsignedcharb=0;

unsignedintt=0;

floattt=0;

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0x44);//启动温度转换

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0xBE);//读取温度寄存器

a=ReadOneChar();//读低8位

b=ReadOneChar();//读高8位

t=b;

t<<=8;

t=t|a;

tt=t*0.0625;

t=tt*10+0.5;//放大10倍输出并四舍五入

return(t);

}

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

//声明

voidlcm_w_ss(void

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2