用DS1302做时钟时仿真出现问题了,时间隔好几秒才走一下

2020-02-05 08:54发布

#include<reg51.h>
#include<intrins.h>
#include "delay.h"
#include "1602.h"
#include "DS1302.h"
unsigned char table_time1[]="2012-07-04  3";                                 //外部变量,DS1302中用到
unsigned char table_time2[]="8:23:00";                                                //同上
unsigned char table3[]="i love xxx";                //调试用
main()
{
        unsigned char i;
        init_1602();
        init_DS1302();                          //设定DS1302的初始时间
        while(1)
        {
                read_time();                                                           //DS130的读取时间函数
                /*for(i=0;i<13;i++)
                        display_1602(1,i+2,table_time1[0]);
                for(i=0;i<7;i++)
                        display_1602(2,i+6,table_time1[0]);*/
                for(i=0;i<10;i++)
                        display_1602(1,i,table3[i]);                        //1602的显示函数 第一行第i列显示数据table3[i]
        }
               
}
问题就是仿真的时候给ds1302设定时间了,但是它不按照1秒1秒的走,而是走的很慢,好几秒才走一次
但是如果我把1602的显示函数给注释的时候,芯片又能正常的走了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
yangkuan85988
1楼-- · 2020-02-07 04:20
babytaomail 发表于 2012-7-4 14:04
楼主应该把仿真工程和程序上传啊。方便大家给你看看。这样子说不清楚的

你是说还有1602的吗....
#include<reg51.h>
#include<intrins.h>
#include "delay.h"
#include "1602.h"
sbit RS_1602=P2^0;
sbit E_1602=P2^1;
void write_command_1602(unsigned char com)
{
        RS_1602=0;
        P0=com;
        _nop_();
        E_1602=1;
        delay_ms(1);
        E_1602=0;       
}
void write_data_1602(unsigned char dat)
{
        RS_1602=1;
        P0=dat;
        _nop_();
        E_1602=1;
        delay_ms(1);
        E_1602=0;
}
void init_1602()
{
        write_command_1602(0X38);
        write_command_1602(0X0C);
        write_command_1602(0X06);
        write_command_1602(0X80);
        write_command_1602(0X01);
}
void display_1602(unsigned char hang,unsigned char lie,unsigned char date)
{
        if(hang==1)
                write_command_1602(0X80+lie);
        else if(hang==2)
                write_command_1602(0X80+0X40+lie);
        write_data_1602(date);
}
yangkuan85988
2楼-- · 2020-02-07 04:33
albert_w 发表于 2012-7-4 14:06
仿真比较慢,也算正常吧

正常啊....还有现在一直不能正确的读出DS1302的时间出来,很难受啊,表示,大侠能不能帮我看看的读函数啊
fsclub
3楼-- · 2020-02-07 06:19
仿出问题了还仿个毛啊,直接洞洞板焊个真机来跑。包你满意。
zpxa001
4楼-- · 2020-02-07 11:42
 精彩回答 2  元偷偷看……
yangkuan85988
5楼-- · 2020-02-07 17:12
fsclub 发表于 2012-7-4 15:37
仿出问题了还仿个毛啊,直接洞洞板焊个真机来跑。包你满意。

嗯.....做个去
yangkuan85988
6楼-- · 2020-02-07 20:01
zpxa001 发表于 2012-7-4 16:10
原来是Proteus仿真,还以为是真刀真枪地干呢;如果软仿真,这种情况正常...... ...

直接做个去......太烦人了,这仿真

一周热门 更多>