找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

我的12c887程序显示不正常,请各位大侠给帮我看看

[复制链接]
admin 发表于 2012-9-2 08:45:40 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
自己写了一个12c887时钟程序,但是它显示不是按顺序显示,例如:但显示到10秒时它自动跳到14秒了,秒居然可以显示到70多,请大侠们帮我看看程序,程序如下:
#include<reg51.h>
#include <intrins.h>
#include <absacc.h>
#include <math.h>
#include <stdio.h>

#define uchar unsigned char
#define uint unsigned int

#define DS12887a XBYTE[0x7f0a]
#define DS12887b XBYTE[0x7f0b]
#define sec_com XBYTE[0x7f00]
#define min_com XBYTE[0x7f02]
#define hour_com XBYTE[0x7f04]
#define weak_com XBYTE[0x7f06]
#define month_com XBYTE[0x7f08]
#define year_com XBYTE[0x7f09]
#define century_com XBYTE[0x7f32]
//uchar value[8]={0,1,2,3,1,0,1,0};
uchar k=0,flag=1;

//uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uchar DATA[]={0x81,0xf3,0x49,0x61,0x33,0x25,0x05,0xf1,0x01,0x21,
0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar sec,min,hour,day,weak,month,year;
sbit shuru=P1^0;
sbit yiwei=P1^1;
sbit suocun=P1^2;
void out_disp(uchar);
void gettime();
void settime();
void delay(uchar);
void DS12887_init();
void main(void)
{
DS12887_init();
settime();

while(1)
{
gettime();
out_disp(DATA[sec%10]);
out_disp(DATA[sec/10]);
out_disp(DATA[min%10]);
out_disp(DATA[min/10]);
out_disp(DATA[hour%10]);
out_disp(DATA[hour/10]);
suocun=0;
delay(1);
suocun=1; //输出锁存
}
}
void DS12887_init()
{

DS12887a=DS12887a&0xaf; // DV2=DV0=0 10101111 uip=1,即将更新
DS12887a=DS12887a|0x20; // DV1=1 00100000
DS12887b=DS12887b&0x7b; // SET=0,时间数据正常更新;DM=0,二进制数据模式
DS12887b=DS12887b|0x02; // 寄存器B的24/12位置1,24小时时间模式
// DS12887a=0xa0; // DV2=DV0=0 10101111 uip=1,即将更新
// DS12887b=0x02; // SET=0,时间数据正常更新;DM=0,二进制数据模式, 寄存器B的24/12位置1,24小时时间模式

}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 11:49 , Processed in 0.050094 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表