求用ATMEGA8L-8PI单片机做一个电子时钟,记数器和6路延时输出继电器电路图和汇编源程序

来源:百度知道 编辑:UC知道 时间:2024/06/08 13:20:31
1 开机时,显示12:00:00的时间开始计时.2:控制“秒”的调整,每按一次加1秒.3:控制“分”的调整,每按一次加1分.4:控制“时”的调整,每按一次加1个小时,设置从1到100000记数器,记数到1或100000输出到继电器.在用高低电平控制延时器第一路,设置从1分钟到120分钟,延时到1分钟或120分钟到继电器.在用高低电平控制延时器第二路,设置从1分钟到120分钟,延时到1分钟或120分钟到继电器.在用高低电平控制延时器第三路,设置从1分钟到120分钟,延时到1分钟或120分钟到继电器.在用高低电平控制延时器第四路,设置从1分钟到120分钟,延时到1分钟或120分钟到继电器.在用高低电平控制延时器第五路,设置从1分钟到120分钟,延时到1分钟或120分钟到继电器.在用高低电平控制延时器第六路,设置从1分钟到120分钟,延时到1分钟或120分钟到继电器.

记住:技术都是要钱的。。以下是我自己写的可以使用的程序,可供参考。

/*M16,DS1302.硬件:PD5-RST,PD6-SCLK,PD7-I/O */
#ifndef _DS1302_H_
#define _DS1302_H_

#include <iom16v.h>
#include <macros.h>

/******DS1302-MIRCOCPU引脚宏定义*************/
#define RST_H() PORTD|=BIT(5)
#define RST_L() PORTD&=~BIT(5)
#define SCLK_H() PORTD|=BIT(6)
#define SCLK_L() PORTD&=~BIT(6)
#define IO_H() PORTD|=BIT(7)
#define IO_L() PORTD&=~BIT(7)
#define IO_DIR_OUT() DDRD|=BIT(7)
#define IO_DIR_IN() DDRD&=~BIT(7)
#define IO_state() (PIND&0X80)

/******DS1302各寄存器(写命令)地址宏定义*******/
#define DS1302_SEC_Reg 0x80
#define DS1302_MIN_Reg 0x82
#define DS1302_HR_Reg 0x84
#define DS1302_DATE_Reg 0x86
#define DS1302_MONTH_Reg 0x88
#define DS1302_DAY_Reg 0x8a
#define DS1302_YEAR_Reg 0x8c
#define DS1302_CONTROL_Reg 0x8e
#define DS1302_CHARGER_Reg 0x90
#