标题:
DS1302+Stc12c5a60s2+按键的proteus仿真
[打印本页]
作者:
Nancy19
时间:
2018-11-26 19:22
标题:
DS1302+Stc12c5a60s2+按键的proteus仿真
DS1302+Stc12c5a60s2+按键
0.png
(16.87 KB, 下载次数: 35)
下载附件
2018-11-26 22:06 上传
单片机源程序如下:
#include "ds1302.h"
unsigned char second,minute,hour,week,day,month,year; //秒、分、时、星期、日、月、年
//---DS1302时钟初始化2016年5月7日星期六12点00分00秒。---//
//---存储顺序是秒分时日月周年,存储格式是用BCD码---//
unsigned char time[]={0x06,0x03,0x14,0x03,0x12,0x30,0x00}; //初始时间数组
/*****************************************************************************
函数功能:向DS1302送一字节数据子程序
入口参数:
出口参数:
*****************************************************************************/
void InputByte(unsigned char byte1)
{
char i;
for(i=8;i>0;i--)
{
DS1302_IO=(bit)(byte1&0x01);
DS1302_CLK=1;
_nop_();
DS1302_CLK=0;
byte1>>=1;
}
return;
}
/*****************************************************************************
函数功能:读DS1302一个字节子程序
入口参数:
出口参数:
*****************************************************************************/
unsigned char outputbyte(void)
{
unsigned char i;
unsigned ucdat=0;
for(i=8;i>0;i--)
{
DS1302_IO=1;
ucdat>>=1;
if(DS1302_IO)ucdat|=0x80;
DS1302_CLK=1;
_nop_();
DS1302_CLK=0;
}
return(ucdat);
}
/*****************************************************************************
函数功能:向DS1302某地址写一字节数据子程序
入口参数:addr,TDat
出口参数:
*****************************************************************************/
void write_ds1302(unsigned char addr,unsigned char TDat)
{
DS1302_RST=0;
_nop_();
DS1302_CLK=0;
_nop_();
DS1302_RST=1;
InputByte(addr);
_nop_();
InputByte(TDat);
DS1302_CLK=1;
_nop_();
DS1302_RST=0;
}
/*****************************************************************************
函数功能:读DS1302地址子程序
入口参数:add
出口参数:timedata
*****************************************************************************/
unsigned char read_ds1302(unsigned char addr)
{
unsigned char timedata;
DS1302_RST=0;
_nop_();
DS1302_CLK=0;
_nop_();
DS1302_RST=1;
InputByte(addr);
timedata=OutputByte();
DS1302_CLK=1;
_nop_();
DS1302_RST=0;
return(timedata);
}
/*****************************************************************************
函数功能:初始化DS1302子程序
入口参数:time[](全局变量)
出口参数:
*****************************************************************************/
void initial_ds1302()
{
write_ds1302(0x8e,0x00); //写保护寄存器,在对时钟或RAM写前WP一定要为0
write_ds1302(0x8c,time[0]); //年
write_ds1302(0x88,time[1]); //月
write_ds1302(0x86,time[2]); //日
write_ds1302(0x8A,time[3]); //星期
write_ds1302(0x84,time[4]); //时
write_ds1302(0x82,time[5]); //分
write_ds1302(0x80,time[6]); //秒
write_ds1302(0x8e,0x80); //写保护寄存器
}
/*****************************************************************************
函数功能:读DS1302时间子程序
入口参数:
出口参数:全局变量(second,minute,hour,week,day,month,year)
*****************************************************************************/
void read_time()
{
second=read_ds1302(0x81); //秒寄存器
minute=read_ds1302(0x83); //分
hour=read_ds1302(0x85); //时
week=read_ds1302(0x8B); //星期
day=read_ds1302(0x87); //日
month=read_ds1302(0x89); //月
year=read_ds1302(0x8d); //年
}
复制代码
51hei.png
(4.91 KB, 下载次数: 46)
下载附件
2020-3-31 00:50 上传
资料不全,缺源码,求大家补全程序啊:
protues.zip
(38.21 KB, 下载次数: 65)
2018-11-26 19:22 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
有心插花花木兰
时间:
2019-3-24 23:51
你好,我在用proteus仿真,你的芯片是怎么选择的?有没有教程一些可以入门的,有的话发我邮箱或是加好友也行
作者:
1824380946
时间:
2020-3-5 22:22
你说的这个Stc12c5a60s2单片机你给的资料没有
作者:
1004862892
时间:
2020-3-30 23:17
东西都不给就让下载?
作者:
樱月樱诗
时间:
2020-4-22 16:46
protues仿真不了STC12系列,没有这个芯片,需要用AT89代替,然后外接AD芯片等。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1