问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...显示不了~还有比较郁闷的是在keil仿真时到d2b函数i拆的0j怎么也得...

发布网友 发布时间:2024-05-29 14:35

我来回答

1个回答

热心网友 时间:2024-06-01 09:44

ds1302程序。调试通过的。time[7]里存放时间数据。你再加上数码管程序就ok了。
ds1302非常容易受干扰,注意接线尽量短,程序中在恰当的地方加NOP以稳定电路。

#define _k0 P2^0
#define _k1 P2^1
#define _k2 P2^2

#define _bella P2^4
#define _bellb P2^5

#define _ds1302clk P3^5
#define _ds1302io P3^6
#define _ds1302rst P3^7

#include<reg52.h>
#include<intrins.h>
#include<delay.h>
#define DS1302_Write_Second0x80// 秒
#define DS1302_Read_Second0x81
#define DS1302_Write_Minite0x82// 分
#define DS1302_Read_Minite0x83
#define DS1302_Write_Hour0x84//小时
#define DS1302_Read_Hour0x85
#define DS1302_Write_Date0x86// 天
#define DS1302_Read_Date0x87
#define DS1302_Write_Month0x88// 月
#define DS1302_Read_Month0x89
#define DS1302_Write_Week0x8A//星期
#define DS1302_Read_Week0x8B
#define DS1302_Write_Year0x8C// 年
#define DS1302_Read_Year0x8D
#define DS1302_Read_Protect0x8E//写保护位

sbit ACC0=ACC^0;
sbit ACC7=ACC^7;

sbit k0=_k0;
sbit k1=_k1;
sbit k2=_k2;
sbit bella= _bella;
sbit bellb= _bellb;

sbit ds1302rst= _ds1302rst;
sbit ds1302io= _ds1302io;
sbit ds1302clk= _ds1302clk;
bit k0f,k1f,k2f;

uchar time[7]={13,6,4,27,10,50,59};

//ds1302==============///////////////////////////////////
uchar bcd2hex(uchar bcd)
{
return ((bcd>>4)*10+(bcd&0x0f));
}

uchar hex2bcd(uchar hex)
{
return ((hex/10)*16+(hex%10));
}

//写一个字节
void write_ds1302_byte(uchar dat)
{uchar i;
ACC = dat;
for(i=8; i>0; i--)
{

ds1302clk = 0;

ds1302io= ACC0; ////由低位到高位
ACC = ACC >> 1;
ds1302clk= 1; //上升沿写入数据
// _nop_();
}
}

//读一个字节
uchar read_ds1302_byte(void)
{
uchar i;
for(i=8; i>0; i--)
{
ds1302clk = 0; //下降沿读出DS1302的数据
_nop_();
_nop_();
_nop_();
ACC = ACC >>1; //相当于汇编中的 RRC
ACC7 = ds1302io;
ds1302clk = 1;
}
return(ACC);

}

//在指定地址写入指定的数据
void write_ds1302(uchar addr,uchar dat)//addr为将要写入的地址,dat为精要写入的数据
{
ds1302rst = 0;
_nop_();
ds1302clk = 0;
_nop_();
ds1302rst= 1;
_nop_();

//发送地址
write_ds1302_byte(addr);

//发送数据
write_ds1302_byte(dat);
ds1302rst=0;

}
//读取1302指定地址中的数据
unsigned char Read_DS1302(uchar addr)
{
uchar dat;
ds1302rst = 0;
_nop_();
_nop_();
ds1302clk = 0;
_nop_();
_nop_();
ds1302rst= 1; //RST拉高,启动数据传送
_nop_();
_nop_();
write_ds1302_byte( addr|0x01);//地址,命令
dat = read_ds1302_byte(); //读1Byte数据
ds1302rst =0;
_nop_();//以下为DS1302复位的稳定时间
_nop_();
ds1302rst =0;
ds1302clk = 0;
_nop_();
_nop_();
_nop_();
_nop_();
ds1302clk = 1;
_nop_();
_nop_();
ds1302io=0;
_nop_();
_nop_();
ds1302io=1;//释放数据总线
_nop_();
_nop_();

return(dat);

}

//////////////////////写入时间
void settime()
{
uchar i,addr=0x8c;
write_ds1302(DS1302_Read_Protect,0x00);//取消写保护
for(i=0;i<7;i++)
{
write_ds1302(addr,hex2bcd(time[i]));
addr-=2;
}
write_ds1302(DS1302_Read_Protect,0x80);//启动写保护
}

///////////////////////////////////读取时间

void gettime()
{
uchar i;
uchar addr=0x8d;

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

time[i]=bcd2hex(Read_DS1302(addr));

addr-=2;
}

}

void ds1302init(void)
{
uchar temp;
temp = Read_DS1302(DS1302_Read_Second);
if(k0==0&&temp&0x80)//如果时钟正在运行,则不进行初始化//按着设置键重启时。
{
settime();
}
//开写保护
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
根据有关规定,基金赎回费在扣除手续费后,余额不低于赎回费总额的应当归... 提出辞职,原先老总同意但现在她反悔不同意怎么办? 峰力的助听器和奥迪康的助听器是那个比好点呢? ...在学校无法提高学习成绩,参加校外培训机构会有意想不到的效果吗? 485分走大连理工城市学院能走上吗? 产品服务属性tb是什么意思 我是淘宝卖家。遇到一些这样的买家,淘宝ID的格式都是tbxxxxxx_xx。xx... 解析外面收费499的淘宝搬砖任务项目,京东,拼多多,TB助手,兼职副业赚钱... 养育女孩子的正确方法是什么? 如何养育四岁的女孩呢?你们有什么育儿经验分享呢? keil中warning C209: '_write_str': too few actual parameters怎么解决... 怎么把新鲜的鹿皮做成皮革? 踏雪寻梅的作者 乙酸乙酯与2-丁醇共沸吗 碳酸钠溶液转化是缓解分离物质采用的方法是什么 我建房前没有办理准建证,能办房产证吗?房子现在已经住一年了,有国土使... 北大陶澍死亡原因 不知道喝完乌根汉方黑发茶能起到什么效果,你们知道吗? 不要气馁是什么意思? 《微博》2月1日最新热搜榜排名分享 买五险一金要结婚证吗 世界ol战士弩攻略 炒锅用哪种材质 炒锅用什么材质好 尿壳打掉把儿…只剩一张嘴(猜生肖)请网友帮猜一下 我在大庆交八年失业险,现在失业了能给多少补偿,我是农村户口 抖音怎么把视屏放大? 1月27北京西到重庆北的D319是动车吗? 小丁妹是什么意思? 看你怎么秀离奇车祸怎么过关-看你怎么秀离奇车祸通关攻略 ...闵行区莲花南路沪光路去第六人民医院 ,应该怎么走 单片机问题,我在keil写void write_com=(uchar com)编译后却提示我... 醋解药吗 1克的牛奶里含蛋白质多少克? ps如何找到我的新建样式ps如何找到我的新建样式文件 徐正溪的个人资料 优美的语句 不要排比句 且句子不嫩太短 至少50字 不然就不要 快点奥 什么是光合作用,什么是呼吸作用? 什么是呼吸作用和光合作用? 我的荣耀游戏攻略 长期吃药怎样保护肝肾 女生qq空间相册密码问题是"???"答案可能是什么 girls for emergency contraception or irregular menstruation,啥意思... 事在人为的介绍 广东中考化学16丶17考什么类型题? 测试你在哪里更容易结识异性 买显卡不看牌子,只要参数一样,就可以买了吗? 鼠宝宝个性名字好听的鼠宝宝名字大全 倾听是什么意思,"倾听"的汉语解释 ...的简称是什么?请记住是省会而不是省,比如重庆简称渝,成都简称“蓉... 比亚迪s6特殊功能