lcd1602上显示实时时间,仿真的时候后都没问题,烧录到开发板后时间变成“27:01:81”而且一直不变,这是为什么啊
1条回答 默认 最新
- 无限虚空 2024-05-27 17:55关注
是使用DS1302时钟芯片吗?还是单片机定时器产生的定时;
1、如果是DS1302芯片。需要设置芯片重新上电;
1、先把程序烧录进51单片机中,然后把程序中的写时间函数注释掉,再烧录进去就可以了
解释:
第一次烧录相当于给DS1302时钟芯片写入一个初始时间,第二次烧录前由于有备用电源DS1302一直在工作,所以第二次烧录不需要设置初始时间,应把源程序中的写入初始时间的程序注释掉2、在DS1302的RAM里面写入一个标志数(因为DS1302有备用电池,外部电源关闭后,RAM里的值不会丢掉依然保留),程序中的DS1302写入时间函数是否执行需要用该标志进行判断,程序如下
unsigned char flag; //定义一个标志位
flag= Ds1302_Read_Byte(0xc0); //0xc0为DS1302内部RAM的首地址,每次执行程序 先读出该地址的数据
if(flag==0) //RAM数据默认为0
{
Ds1302_Init(); //DS1302初始化
Ds1302_Write_Time(); //DS1302写入时间
Ds1302_Write_Byte(0xc0,1); //执行一次程序后,在RAM里写入一个数1,所以该程序段只会被执行一次
}
2、如果是定时器,就需要看看定时器是否开启,定时中断标志位清除等解决 无用评论 打赏 举报
悬赏问题
- ¥15 在若依框架下实现人脸识别
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同