一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 5517|回复: 19
收起左侧

[51单片机] 51做个32768晶振筛选仪,有现成的缓冲电路吗?现在直接接晶振处会停振。

  [复制链接]
发表于 2012-5-19 18:53 | 显示全部楼层 |阅读模式
做个电子钟,时间老走不准,如题。
显示部分用6位数码管,程序已经差不多了,我和示波器对比刚好少了一半,这个改动下就好。

想找个缓冲电路,高阻的,请推荐个高阻的门电路缓冲下。
有朋友要做的话我把程序贴出来,很简单的程序。
 楼主| 发表于 2012-5-19 18:57 | 显示全部楼层
本帖最后由 gw168sh 于 2012-5-19 19:00 编辑

刚想起来了,我用STC的单片机,选了6T。所以频率少了一半。

用的郭天祥的TX-1板。
#include <AT89X52.H>
#define dula P2_6 //U1锁存位
#define wela P2_7 //U2锁存位
#define uint unsigned int
#define uchar unsigned char
unsigned long shu;
//uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};        //tx_led
uchar code table[]={0xA0,0xF9,0xC4,0xD0,0x99,0x92,0x82,0xF8,0x80,0x90};                //wasibaojingqi
//共阳0-9的LED笔划

uchar time,t1cont,t0,t1,aa,wan,qian,bai,shi,ge;

void init();              //函数声明
void display(uchar aa,uchar wan,uchar qian,uchar bai,uchar shi,uchar ge);


void delay(uint z)     //延时子函数
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=100;y>0;y--);                //100
}

void main()          //主函数
{        
        init();
        while(1)
        {                        
        display(aa,wan,qian,bai,shi,ge);               
        }
}

void init()          //初始化函数
{

        TMOD=0x15; //设计数器1  和  0为工作方式1(0101-LED 0001)
        TH1=(65536-10000)/256;//0xB1;
        TL1=(65536-10000)%256;//0xDF; //设定时值为50000us(50ms)
        TH0=0;
        TL0=0;
        EA = 1; //允许CPU中断
        ET1 = 1; //定时器0中断打开
        ET0 = 1;//计数器1中断打开
        TR1 = 1; //启动定时器0
        TR0 = 1; //启动计数器1

}
void t1cont1(void) interrupt 1
{
t1cont++;
}

void KeyAndDis_Time0(void) interrupt 3
{        
TH1=(65536-10000)/256;//0xB1;
TL1=(65536-10000)%256;//0xDF; //设定时值为
time++;
                if(time==200)//266000
                {               
                time=0;        
                shu=t1cont*65536+(TH0<<8|TL0);
                t1cont=0;
                TH0=0;
                TL0=0;
                }
}

void display(uchar aa,uchar wan,uchar qian,uchar bai,uchar shi,uchar ge) //显示子函数
{

                         aa=shu/100000;
                        wan=shu/10000%10;
                        qian=shu/1000%10;
                        bai=shu/100%10;
                        shi=shu/10%10;
                        ge=shu%10;

                t0=10;        
                while(t0>1)
                {
                t0--;
        dula=0;
                P0=table[aa];
                dula=1;
                P0=0x00;
                wela=0;
                P0=0x01;
                wela=1;
                delay(5);

               dula=0;
                P0=table[wan];
                dula=1;
                P0=0x00;
                wela=0;
                P0=0x02;
                wela=1;
                delay(5);

       dula=0;
                P0=table[qian];
                dula=1;
                P0=0x00;
                wela=0;
                P0=0x04;
                wela=1;
                delay(5);

        dula=0;
                P0=table[bai];
                dula=1;
                P0=0x00;
                wela=0;
                P0=0x08;
                wela=1;
                delay(5);

                dula=0;
                P0=table[shi];
                dula=1;
                P0=0x00;
                wela=0;
                P0=0x10;
                wela=1;
                delay(5);

                dula=0;
                P0=table[ge];
                dula=1;
                P0=0x00;
                wela=0;
                P0=0x20;
                wela=1;
                delay(5);
}
}
发表于 2012-5-19 23:59 | 显示全部楼层
什么做基准?
 楼主| 发表于 2012-5-20 00:45 | 显示全部楼层
用数字示波器行不?没有更高级的了。
发表于 2012-5-20 09:12 | 显示全部楼层
000.jpg
发表于 2012-5-20 10:36 | 显示全部楼层
做个电子钟,时间老走不准,如题。
显示部分用6位数码管,程序已经差不多了,我和示波器对比刚好少了一半, ...
gw168sh 发表于 2012-5-19 18:53 https://www.yleee.com.cn/images/common/back.gif



    即使加上缓冲,也是有影响的,还不如另做一个挑选电路,用频率计挑选稳定准确的晶振。

32768KHz晶振振荡电路.GIF
发表于 2012-5-20 10:48 | 显示全部楼层
用 2M 或 4M 晶振m, pF 值一樣嗎?
 楼主| 发表于 2012-5-20 10:55 | 显示全部楼层
回复 6# 3AG1


    能不能用电容隔离一下呢?单独把晶振拆下来有点麻烦。
 楼主| 发表于 2012-5-20 10:56 | 显示全部楼层
那些个示波器里面用的什么缓冲电路呀
发表于 2012-5-20 11:21 | 显示全部楼层
回复  3AG1


    能不能用电容隔离一下呢?单独把晶振拆下来有点麻烦。
gw168sh 发表于 2012-5-20 10:55 https://www.yleee.com.cn/images/common/back.gif



    输入端串一个小电容,用CD4069UB缓冲试试吧。

注意电容在满足测试要求时越小越好,引线尽量短。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-24 08:56 , Processed in 0.063756 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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