课程设计——DS1302数码管显示数字钟的设计1(4)

2019-03-29 08:29

××大学××学院××系××课程设计报告

行 Write_ds1302(0x80,0x00); //调整完毕后,启动时钟运

Write_ds1302(0x8e,0x80); //写保护控制字,禁止写

}

}

}

}

for(j=0; j<=i; j++) { if((time_hour[j] == time_buf[2]) && (time_min[j] == time_buf[1])) { flag = 1; TR0 = 1; t0 = 0; ON_Relay(); ON_Buzzer(); } }

if(flag == 1) { OFF_Relay(); OFF_Buzzer(); TR0 = 0; flag = 0;

}

}

}

/*******************************延时程序*****************************/ void Delay(uchar i) {

12

××大学××学院××系××课程设计报告

uchar j; for ( ; i>0; i--) { for (j=110; j>0; j--);

}

}

/***********************数码管**********************************/ void dula(void) //段选

{ P2_5 = 1; P2_6 = 1; P2_7 = 1;

}

/*---------------------------------------------------------------------------*/ void wela(void) //位选

{ P2_5 = 0; P2_6 = 1; P2_7 = 1;

}

/**************************蜂鸣器*******************************/ void ON_Buzzer(void) //打开蜂鸣器

{ P2_5 = 1; P2_6 = 0; P2_7 = 1; P0 = 0x40; P2_5 = 0; P2_6 = 0; P2_7 = 0;

}

13

××大学××学院××系××课程设计报告

/*---------------------------------------------------------------------------*/ void OFF_Buzzer(void) //关闭蜂鸣器

{ P2_5 = 1; P2_6 = 0; P2_7 = 1; P0 = 0; P2_5 = 0; P2_6 = 0; P2_7 = 0;

}

/****************************继电器*********************************/ void ON_Relay (void) //继电器打开

{ P2_5 = 1; P2_6 = 0; P2_7 = 1; P0 = 0x10; P2_5 = 0; P2_6 = 0; P2_7 = 0;

}

/*---------------------------------------------------------------------------*/ void OFF_Relay (void) //继电器关闭

{ P2_5 = 1; P2_6 = 0; P2_7 = 1; P0 = 0; P2_5 = 0;

P2_6 = 0;

14

××大学××学院××系××课程设计报告

P2_7 = 0;

}

/******************初始化DS1302函数***************************/ void init_ds1302(void) {

RST = 0; SCLK = 0;

Write_ds1302(0x80,0x00); //写秒寄存器 Write_ds1302(0x90,0xab); //写充电器

Write_ds1302(0x8e,0x80); //写保护控制字,禁止写 }

/******************定时器初始化***********************************/ void init_timer0(void) { TMOD |= 0x01;

TH0 = (65536 - 50000) / 256; TL0 = (65536 - 50000) / 256; ET0 = 1; EA = 1; TR0 = 0;

}

/****************************写一个字节******************************/ void Write_byte(uchar inbyte) {

uchar i; for(i=0; i<8; i++) { SCLK = 0; //写时低电平改变数据 if(inbyte & 0x01)

{

IO = 1;

15

××大学××学院××系××课程设计报告

}

else {

IO = 0;

}

SCLK = 1; //高电平把数据写入DS1302 _nop_();

inbyte = inbyte >> 1;

} }

/*********************读一个字节*********************************/ uchar Read_byte(void) {

uchar i,temp=0; IO=1; for(i=0; i<7; i++) { SCLK = 0; if(IO == 1)

{ temp = temp | 0x80;

} else

{ temp = temp & 0x7f;

}

SCLK = 1; //产生下跳沿 temp = temp >> 1;

}

return (temp); }

16


课程设计——DS1302数码管显示数字钟的设计1(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:巴林左旗处置危险化学品事故应急预案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: