搜索
bottom↓
回复: 15

疑惑???关于马老师多功能实验板复位电路的问题

[复制链接]

出5入0汤圆

发表于 2005-5-1 00:25:51 | 显示全部楼层 |阅读模式
我是用S52的,一上电就发现程序跑飞啦,5.1K,22U好像不行

我改为10K,10U就行啦

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2005-5-1 08:54:33 | 显示全部楼层
EA 接了高电平没?

确认接线无误。



我用了十多块S52/S8252都没问题。
-----此内容被HJJourAVR于2005-05-01,08:56:02编辑过

出0入0汤圆

发表于 2005-5-2 15:32:37 | 显示全部楼层
你能说明使用5.1K,22U和使用10K,10U有什么区别吗?

出0入0汤圆

发表于 2005-5-4 00:06:49 | 显示全部楼层
是不是89S52的复位端和AVR的接到一块了?

出5入0汤圆

 楼主| 发表于 2005-5-4 12:21:12 | 显示全部楼层
EA肯定接到高电平了!

说明使用5.1K,22U和使用10K,10U有什么区别吗?

应该就没有多大区别,只是电容冲放电的时间长短而已

是吧??马老师

出0入0汤圆

发表于 2005-5-4 14:20:53 | 显示全部楼层
xiaozhang:

  EA已经接了高电平

  5.1K,22U和10K,10U  两者的微分时间差不多



  就是说问题不在这里---而是你在别的地方搞错了。

出5入0汤圆

 楼主| 发表于 2005-5-4 18:50:39 | 显示全部楼层
但为什么我用10K,10U就行呢???

接线就肯定没错的啦

出0入0汤圆

发表于 2005-5-4 23:04:25 | 显示全部楼层
你现在换回 5.1K,22U 再试一试--同样没问题!!!

出0入0汤圆

发表于 2005-6-16 11:58:49 | 显示全部楼层
我使用mega16也经常跑飞,经常需要上电以后再手工复位才可以啊

出0入0汤圆

发表于 2005-6-16 13:59:37 | 显示全部楼层
8楼请把具体情况介绍一下。我没有碰到此类情况。

出0入0汤圆

发表于 2005-6-16 15:13:27 | 显示全部楼层
上电以后有时程序会跑飞,然后我用导线一端接地,一端轻触复位脚,有时要试几次,在端口A得到正常结果.但是有时运行几秒钟又跑飞了.代码如下:

void port_init(void)

{

PORTA = 0xa5;

DDRA  = 0xff;

PORTB = 0x00;

DDRB  = _BV(PB4)|_BV(MOSI)|_BV(SCK);//0x00;

PORTC = 0x00; //m103 output only

DDRC  = 0x00;

PORTD = 0x00;

DDRD  = 0x00;

}



//SPI initialize

// clock rate: 62500hz

void spi_init(void)

{

SPCR = _BV(SPE)|_BV(MSTR)|_BV(SPR1)|_BV(SPR0);//|_BV(CPOL);//0x77; //setup SPI

// SPSR = 0xff; //setup SPI

}



//call this routine to initialize all peripherals

void init_devices(void)

{

//stop errant interrupts until set up

cli(); //disable all interrupts

port_init();

spi_init();

MCUCR = 0x00;

GICR  = 0x00;

TIMSK = 0x00; //timer interrupt sources

sei(); //re-enable interrupts

//all peripherals are now initialized

}



//

int main(void)

{

        char i,j,k;

        init_devices();

        //insert your functional code here...

        spi_trans_byte(0xf3);

        while(1)

        {

                i=1;

                for(j=0;j<8;j++)

                {

                        PORTA=~i;//这句主要用于鉴别程序是否正常运行

                        spi_trans_byte(~i);

                        for(k=0;k<8;k++)

                        _delay_ms(1000);

                        i=i<<1;

                }

        }

        while(1);

}



void spi_trans_byte(char b)

{

        SPDR=b;

        loop_until_bit_is_set(SPSR,SPIF);

        SETBIT(PORTB,PB4);

        _delay_ms(100);

        CLRBIT(PORTB,PB4);

        _delay_ms(100);

}

主要电路图如下,另外595输出口接了8个led,端口A接了8个led,主要功能是实现和595连接的led灯循环点亮,不接595跑飞情况相对较少,

接上595更严重,而且595极少数情况下出现预期的结果.在proteus仿真结果正确

出0入0汤圆

发表于 2005-6-17 01:19:28 | 显示全部楼层
你如何断定程序跑飞是由于多功能实验板复位电路的问题?

出0入0汤圆

发表于 2005-6-17 07:22:37 | 显示全部楼层
每次上电结果不一致,jeta仿真混乱,而且我还加入了测试代码

      for(j=0;j<8;j++)

      {

         PORTA=~i;//这句主要用于鉴别程序是否正常运行

         spi_trans_byte(~i);

         for(k=0;k<8;k++)

         _delay_ms(1000);

         i=i<<1;

      }

正常情况下A口的led会循环点亮,当A口显示混乱也可以判定

出0入0汤圆

发表于 2005-6-18 08:23:54 | 显示全部楼层
donkey:

   你是用 多功能实验板 还是自己焊的万能板?

   可能 RESET端悬空高阻,而且跟其他脉冲源太靠近---干扰了。

   干脆将 RESET接到VCC看看?



   如果使能了其他中断,也应同样注意输入引脚悬空的问题。

出0入0汤圆

发表于 2005-6-18 20:41:57 | 显示全部楼层
是使用多功能实验板.我已经将RESET接高电平了,但是不是你说的VCC.

我只是觉得奇怪的是接上HC595情况会更糟,难道因为接插线太多以至于引入了太多的干扰?(我使用了20多根线)

出0入0汤圆

发表于 2005-6-27 19:52:34 | 显示全部楼层
程序跑飞的问题我也经常发生

真不知道的是怎么回事?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 16:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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