资源简介
这是一个多功能测温汉字时钟,具有时间设置,万年历,还有测温报警功能!
代码片段和文件信息
#include
#include“128-64.h“
#include“DS18B20.h“
#include
#define uchar unsigned char
#define uint unsigned int
//此处定义字符串
char text_1[]={“2009年06月19日 “};
char text_2[]={“11:40:56 功能:0“};
char text_3[]={“室内温度:31.5度“};
char text_4[]={“定:12:00报:33 度“};
//char table[]=“0123456789“;
const uchar table[]=“0123456789“;
int h=02m=03s=0t=18y=6n=2010x=0status=0temsettem=28seth=12setm=0;
uint e[4];
uchar temhtemlFlag_1820Errorsign;
/**********************EEPROM****************************/
#define EEWE 1
#define EEMWE 2
#define EERE 0
void WRITE_EEP(uint addressuchar dat)
{
while(EECR&(1< EEAR=address;
EEDR=dat;
EECR|(1< EECR|(1< }
uchar READ_EEP(uint address)
{
while(EECR&(1< EEAR=address;
EECR|(1< return EEDR;
}
/********************************************************/
/*****************************************************************************/
#pragma interrupt_handler miao:9
void miao(void)
{
uchar td;
td=conv(ny);
if(s>58){m++;s=-1;}
if(m>59){h++;m=0;}
if(h>23){t++;h=0;}
if(t>td){y++;t=0;}
if(y>12){n++;y=0;}
s++;
TCNT1H=0x85;
TCNT1L=0xED;
}
uchar conv(uint nuchar y)
{
uchar len;
switch(y)
{
case 1:len=31;break;
case 3:len=31;break;
case 5:len=31;break;
case 7:len=31;break;
case 8:len=31;break;
case 10:len=31;break;
case 12:len=31;break;
case 4:len=30;break;
case 6:len=30;break;
case 9:len=30;break;
case 11:len=30;break;
case 2:if(n%4==0&&n%100!=0||n%400==0)len=29;
else len=28;break;
default:return 0;
}
}
void delay(uint ms)
{
uint ij;
for(i=0;i {
for(j=0;j<1141;j++);
}
}
/********定时计数器初始化函数****************/
void jishiqi(void)
{
TCCR1B=0X04;
TCNT1H=0x85;
TCNT1L=0xED;
//TCCR1A=0X00;
//TCCR1B=0X04;
TIMSK|=BIT(2);
SREG|=BIT(7);
}
/*******************************************/
uchar press () // 判断有没有按键按下
{
uchar i;
DDRD|=0X0F;
PORTD|=0X0F;
DDRD&=0XF0;
i=PIND;
i&=0x0f;
if(i==0x0f)
return 0;
else
return 1;
}
uchar saomiao ()
{
uchar j;
delay(10);//消抖
if(press ())
{
j=PIND;
j&=0x0f;
switch(j)
{
case 0x0e:
j=1;
break;
case 0x0d:
j=2;
break;
case 0x0b:
j=3;
break;
case 0x07:
j=4;
break;
default:j=0;
}
while(press ());//这句话很重要,表示等待按键停止被按下
}
else{return 0;}
return j;
}
void scan( char key)
{
if(key==1)
{
status++;
delay(1);
}
}
void main()
{
uchar ijkkey;
DDRA=0XFF;
DDRB=0XFF;
PORTA=0xff;
PORTB=0xff;
DDRC=0xff; //端口C为输出
PORTC=0xf0;
SREG=0x00;
// seth=READ_EEP(50);delay(1);
// setm=READ_EEP(60);delay(1);
if(seth>24)seth=0;
if(setm>60)setm=0;
//settem=REA
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2010-07-06 11:41 多功能测温汉字时钟\
文件 2580 2010-06-28 13:21 多功能测温汉字时钟\128-64.h
文件 2580 2010-06-28 13:17 多功能测温汉字时钟\128-64._h
文件 3200 2010-06-27 00:21 多功能测温汉字时钟\DS18B20.h
文件 3200 2010-06-20 17:35 多功能测温汉字时钟\DS18B20._h
文件 9669 2010-06-28 13:42 多功能测温汉字时钟\main.c
文件 16317 2010-06-28 13:42 多功能测温汉字时钟\main.cof
文件 11796 2010-06-28 13:42 多功能测温汉字时钟\main.dbg
文件 299 2010-06-28 13:42 多功能测温汉字时钟\main.dp2
文件 14156 2010-06-28 13:42 多功能测温汉字时钟\main.hex
文件 14122 2010-08-14 19:48 多功能测温汉字时钟\main.i
文件 140678 2010-06-28 13:42 多功能测温汉字时钟\main.lis
文件 9 2010-06-28 13:42 多功能测温汉字时钟\main.lk
文件 92035 2010-06-28 13:42 多功能测温汉字时钟\main.lst
文件 795 2010-06-28 13:42 多功能测温汉字时钟\main.mak
文件 4083 2010-06-28 13:42 多功能测温汉字时钟\main.mp
文件 45363 2010-06-28 13:42 多功能测温汉字时钟\main.o
文件 891 2010-06-28 13:42 多功能测温汉字时钟\main.prj
文件 57133 2010-06-28 13:42 多功能测温汉字时钟\main.s
文件 62 2010-06-20 17:35 多功能测温汉字时钟\MAIN.SRC
文件 9669 2010-06-28 13:32 多功能测温汉字时钟\main._c
文件 3325 2010-06-28 12:57 多功能测温汉字时钟\main_cof.aps
- 上一篇:学校网站需求分析.doc
- 下一篇:编译原理实验报告 词法分析器实验报告
评论
共有 条评论