• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

请问DS1287&DS12C887

我在电子市场买了个DS12C887定时芯片,有18个引脚,和书上提供的24脚不同,但查到相关资料有DS1287是18脚的
此芯片到底是哪个?有哪位大哥告诉我吗?
全部回复(9)
正序查看
倒序查看
wangsk
LV.1
2
2004-09-08 10:40
DS12C887封装为DIP24,但其中有一些为空脚,有效的引脚为18个
0
回复
2004-09-08 11:00
@wangsk
DS12C887封装为DIP24,但其中有一些为空脚,有效的引脚为18个
书上的是最老的封装啊,
0
回复
wangsk
LV.1
4
2004-09-11 07:53
@一个好人
书上的是最老的封装啊,
请贴出最新的DS12C887的典型电路.
0
回复
hello_lzh
LV.1
5
2004-12-06 09:14
@wangsk
请贴出最新的DS12C887的典型电路.
我做过这个片子的电路,程序也有,要得话联系我啊
0
回复
yu_zdws
LV.3
6
2004-12-06 11:05
@hello_lzh
我做过这个片子的电路,程序也有,要得话联系我啊
可以给我吗?我的邮箱是:jiacunyu@tom.com.QQ:410899759.
0
回复
bessam
LV.4
7
2004-12-10 11:00
到中国电子资源网查一下,提供的资料比较详细
0
回复
ericli80
LV.1
8
2004-12-13 17:18
@wangsk
DS12C887封装为DIP24,但其中有一些为空脚,有效的引脚为18个
對.
0
回复
melonchen
LV.1
9
2005-04-14 15:59
@hello_lzh
我做过这个片子的电路,程序也有,要得话联系我啊
你好啊,你可不可以把你的电路与程序发给我.

请你帮我看看我下面这个电路有没有问题.
500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/28/1113465210.gif');}" onmousewheel="return imgzoom(this);">
我用如下程序去读写RTC芯片,芯片好象没工作,测SQW端没有方波输出.
我的程序如下:
#include
#include


#define DSA PBYTE[0x0a]/*寄存器A*/
#define DSB PBYTE[0x0b]/*寄存器B*/
#define DSC PBYTE[0x0c]/*寄存器C*/
#define DSD PBYTE[0x0d]/*寄存器D*/
                            /*0,1,2,3,4,5,6,7,8,9,10*/
unsigned char code table[]={0x05,0xDD,0x46,0x54,0x9C,0x34,0x24,0x5D,0x04,0x14,0xff};
unsigned int  new,old,temp,push;
unsigned int  bdata rel;
unsigned char disbuffer[8];     /*显示缓冲区*/

unsigned char pdata *addr=0x00;/*RTC地址*/


void delayms(void)
{
unsigned char i;
for(i=200;i>0;i--){}
}




void display()   /*显示与扫描按键函数*/
{
unsigned char *p=disbuffer;
unsigned char i;
unsigned char digit;   /*位码*/
bit press=0;           /*是否有按键标志*/
                        /*扫描是否有按键*/
P3=P3|0x07;            /*读入P3口低3位前先向该3位写1*/
P1=0xff;               /*数码管不显示*/
P2=0x00;               /*送全扫描字*/
if(P3&0x07==0x07)      /*判断是否有按键*/
press=1;               /*有按键,则有按键标志置1*/

for(i=0,digit=0xfe;i<8;i++)/*显示,并扫描按键*/
{
  delayms();
  P1=table[*p++];       /*送段码*/
  P2=digit;             /*送位信号*/
  digit=(digit<<1)|0x01;/*移位信号*/
   if(press==1&&i<3)
   {
   new=(new<<4)|((~P3)&0x07);/*将扫描结果放入new低4位,并将前一行的扫描结果右移到new高4位*/
   }
}
press=0;
if((temp=new^old)>0)
{
push=temp&new;         /*新按下键值*/
rel=temp&old;          /*释放键值*/
old=new;
}
}


main()
{
unsigned char i,n;

T1=0;                   /*关指示灯*/


for(n=0;n<250;n++)     /*延时*/  
    {
    delayms();        
    }

for(n=0;n<250;n++)     /*延时*/
    {
    delayms();          
    }

for(n=0;n<250;n++)     /*延时*/
    {
    delayms();          
    }

  DSA=0x25;        /* 启动RTC,SQW方波输出频率2.048KHz*/
  ACC=DSC;         /* 读寄存器C,清中断请求标志 */
  DSB=0x0E;        /* 方波输出使能,时标格式二进制,24小时模式*/

                   /*向RTC中的RAM写数据*/
  *(addr+15)=20;
  *(addr+16)=61;
  *(addr+17)=34;
  *(addr+18)=27;


for(n=0;n<250;n++)     /*延时*/
    {
    delayms();          
    }

while(1)
{
                        /*取RTC中RAM的数据并送显示缓冲区*/
  disbuffer[0]=i=*(addr+15)/10;
  disbuffer[1]=*(addr+15)-i*10;
  disbuffer[2]=i=*(addr+16)/10;
  disbuffer[3]=*(addr+16)-i*10;


  disbuffer[4]=i=*(addr+17)/10;
  disbuffer[5]=*(addr+17)-i*10;
  disbuffer[6]=i=*(addr+18)/10;
  disbuffer[7]=*(addr+18)-i*10;
  display();            /*显示*/

}
}
0
回复
melonchen
LV.1
10
2005-04-14 16:01
@hello_lzh
我做过这个片子的电路,程序也有,要得话联系我啊
忘记了给我的邮箱地址
chensongliang@sohu.com
0
回复