发表于:2005-12-16 15:44:00
3楼
我曾设计了一套电源控制系统,AT89S52,AD1674,DAC1230,232接口,矩阵键盘,LED,TPUP打印机,在开发过程中也几次遇到类似问题,现按顺序详述如下:
1: 我的AD1674有MC4558做前级放大,再往前是CD4051与74HC373进行通道选择,一开始,我的通道编码有误,选通了无效的悬空端接入4558,使4558的输出达到最大,从而AD输出全1,而且,我发觉,如对输入通道切换过频,切换后立即启动转换,有可能诱发硬件错误,从而在CPU取消对AD的片选后,AD1674的输出仍然有效,就将数据线钳在高电平,使得同挂在总线上的DA只能按最大输出。ADC0809将通道选择集成于片内,同样也有类似问题。
2:查一下你的上电复位。我的系统在仿真器调试成功后,用8952却不工作,问题在于仿真器可以独立复位,而后正常工作,但MCU则依赖上电复位,虽然我按经典电路设计复位,单不知为何却有问题,8952复位不好,其P0口恐怕不是FF,从而使得读键盘接口的8155时,不能正确读入常高,误以为一直有键按下,陷入键释放等待无法脱出。如果你的CPU复位不好,那就有可能带某些器件出问题,我当时的办法是人为模拟复位效果,即一开机就往P0里写入FF并延时,解决了这个问题,你可类推一下。
3:查一下你的ADC0809的ALE引脚的接法。我曾错把74373当作74377使用,使得其ALE管脚在常高时始终直通,数据线无法负载,系统死机。如果你的ADC0809的ALE引脚接错或其中的锁存已坏直通,就会发生这种问题。我曾遇到过这样的坏打印机,一接入,系统就完蛋。