打印

C51复位问题?怪?

[复制链接]
3497|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huzeng168|  楼主 | 2007-11-29 13:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
来自 2楼
huzeng168|  楼主 | 2007-12-6 18:01 | 只看该作者

51单片机总线扩IO难题

51单片机总线扩IO难题 
来源:21ic 作者:古道热肠 栏目:技术交流 
51单片机总线扩IO难题
   51单片机工作在总线方式,准备用1个8位锁存器扩充8个输出口,要求上电时,输出口必须保证为高电平,系统复位时(如按下复位键不放),也要确保输出口为高电平,电路如何实现,问题的关键是上电状态如何为高。

 
1楼: >>参与讨论 
作者: 古道热肠 于 2007-4-30 11:43:00 发布: 
--------------------------------------------------------------------------------
抛码引玉
  如果要求上电为低电平,使用74HC273就能实现,该芯片带复位引脚。

 
2楼: >>参与讨论 
作者: maychang 于 2007-4-30 12:07:00 发布: 
--------------------------------------------------------------------------------
楼主是否考虑用三态输出的芯片如74HC573,输出加上拉电阻
该芯片输出允许端加电阻电容(类似51单片机复位电路),时间常数够大,使得上电时该芯片输出为高阻态。单片机开始工作后,先锁存数据,再使该芯片允许输出。

 
3楼: >>参与讨论 
作者: xwj 于 2007-4-30 12:08:00 发布: 
--------------------------------------------------------------------------------
1、输出加或门与复位信号相或;2、输出加上拉,/OE脚接复位脚
其他,你自己慢慢想...

 
4楼: >>参与讨论 
作者: chunyang 于 2007-4-30 12:28:00 发布: 
--------------------------------------------------------------------------------
HC377
    总线要加上拉,G端连复位,不过得试试,能否可靠要看总线的逻辑1和复位的逻辑1谁先建立了,该方法甚至可能与IC生产商有关。另一类方法是用三态输出的锁存器或用锁存器+驱动器的结构,上电输出呈高阻,然后外加上拉,必要时再加一级缓冲,但此类方法仍可能存在暂态问题,要仔细分析。
    电路设计的合理性应该总体考虑,在某些需严格避免暂态影响的应用中,最佳方法是在传输通道上加一道逻辑“锁”,如要求特定组合逻辑序列(例两个IO必须按序输出10,而其它组合如01、11、00等无效,位数越多越可靠)甚至特定时序逻辑系列(可用移位寄存器等配合逻辑电路实现)才能打开这道“锁”。

 
5楼: >>参与讨论 
作者: 古道热肠 于 2007-4-30 12:45:00 发布: 
--------------------------------------------------------------------------------
难题背景说明
  该系统原使用的并行串口扩展芯片GM16C450,并使用了其DTR、RTS、OUT1、OUT2作为4路通用IO输出,此芯片的复位脚与MCU复位脚相连,上电复位时,GM16C450就为高电平输出,现在不想用此芯片了,简化电路,诸位所述方案不太理想。

 
6楼: >>参与讨论 
作者: 古道热肠 于 2007-4-30 12:54:00 发布: 
--------------------------------------------------------------------------------
4楼的办法也许可行
   3楼所提用阻容控制三态门的OE脚,如果一直按复位键,输出就会不确定啦!4楼朋友提供的第2种办法理论上可行,只是IO输出串联1K电阻后直接驱动8050三极管,上拉电阻用10K肯定太大,用1K上拉是否又太小,而且复位完成后,锁存器的内容立即输出,如果此时单片机出了故障,没有发出锁存FF的指令,输出的内容还是不能确定,会失控的。

 
7楼: >>参与讨论 
作者: chunyang 于 2007-4-30 12:57:00 发布: 
--------------------------------------------------------------------------------
没有空余IO又想简单单芯片解决不容易
试试377吧,只要复位的逻辑1稍滞后于上拉的逻辑1即可。

 
8楼: >>参与讨论 
作者: 古道热肠 于 2007-4-30 14:24:00 发布: 
--------------------------------------------------------------------------------
8位锁存器带预置的是否有?
  MCU的IO口线是全部用完了,不能动了,楼上推荐用377锁存器,想问上电时377锁存器如果Q输出端为低电平,上拉又有何用,灌电流很大的,会拉低电位。诸位是否用过带预置功能的8位锁存器,2位的倒有现成的如74HC74,实在不行,准备用此来试试了。

 
9楼: >>参与讨论 
作者: maychang 于 2007-4-30 14:52:00 发布: 
--------------------------------------------------------------------------------
居然要用74HC74,真不知道楼主怎么想的
那要用几片?
看来电路板面积有余。

 
10楼: >>参与讨论 
作者: conwh 于 2007-4-30 16:04:00 发布: 
--------------------------------------------------------------------------------
简单问题简单处理,在硬件加一级延时控制,以避开MCU在上电时的
不稳定状态.其他的没有看明白

 
11楼: >>参与讨论 
作者: 古道热肠 于 2007-4-30 16:25:00 发布: 
--------------------------------------------------------------------------------
可靠的设计,上电与下电一定要可靠,简单处理不行的
    系统原来使用串口芯片16C450的4个控制口,用74HC74,用2片,是不爽。只是找不到好的办法呀!

 
12楼: >>参与讨论 
作者: chunyang 于 2007-4-30 17:42:00 发布: 
--------------------------------------------------------------------------------
上拉是在输入即总线上
377的使能端为高时,其输出不是高阻而是锁存器当前的内容,在芯片上电暂态时,接在总线上的输入、接在复位上的芯片使能和接在MCU IO上的锁存端均存在一个上升沿,只要使能端的上升沿稍滞后,其输出就为高,但这只是理论上的,而且正常工作态按下复位,377的输出将是当前值,不能保证全1。变通的办法可用双输入或门如HC32配合锁存器实现,双输入或门的一输入接锁存器输出,另一输入接复位,相当于加了一道单输入的逻辑“锁”,但此电路需用3片IC才能实现,占用PCB面积较大。

 
13楼: >>参与讨论 
作者: chunyang 于 2007-4-30 17:50:00 发布: 
--------------------------------------------------------------------------------
还有个办法
用HC845、2845、29845等,带预置逻辑,只是未必好买,但其逻辑可轻松用一片GAL实现。

 
14楼: >>参与讨论 
作者: 古道热肠 于 2007-5-5 10:19:00 发布: 
--------------------------------------------------------------------------------
感谢诸位,最后的方案
   HC377的G端为输入锁存允许脚,chunyang 的方案我理解了。感谢诸位出谋画策,提出了这么多好的建议,经过多方考虑,最后决定用HC573作为锁存器,输出上拉,HC573的OE脚接公开高电平复位端,根据chunyang的建议,采用"逻辑锁"方式将输出再加一级由单片机控制的门控电路,实现了双保险,虽然不能与原系统完全兼容,但可靠性和简洁性大大提高。

 
15楼: >>参与讨论 
作者: 将军令 于 2007-5-7 9:41:00 发布: 
--------------------------------------------------------------------------------
这个简单极了
用MCU的复位信号,再用CPLD来扩展IO
复位信号不要用RC的那种电路,要用专门的复位IC电路
 

使用特权

评论回复
板凳
huzeng168|  楼主 | 2007-12-6 16:24 | 只看该作者

C51复位的问题?急

我们在使用51单片机进行总线扩展I/O口时,在上电复位时74H373会输出低电平,请各位帮手看看,谢谢!

使用特权

评论回复
地板
mohanwei| | 2007-12-6 16:45 | 只看该作者

复位时间常数太大了

如果真的是8031,12MHz,10uF+1.5k左右电阻即可.

扩展方法按照教科书上的电路接即可。373最好不要一上电就使能输出……

使用特权

评论回复
5
2_1_I_C| | 2007-12-6 17:03 | 只看该作者

可以解决上电顺序的问题了

100K     10UF   延迟1S
可以解决上电顺序的问题了

使用特权

评论回复
6
草履虫| | 2007-12-6 17:06 | 只看该作者

动手计算太重要了,为什么都得要别人帮忙

使用特权

评论回复
7
孤星119| | 2007-12-6 17:09 | 只看该作者

U4后面再加个非门

使用特权

评论回复
8
huzeng168|  楼主 | 2007-12-6 17:25 | 只看该作者

不是复位时间太长!

谢谢各位的答复!首先说明图上复位端的电阻阻值不是100K,而是5.1K。是我标错。应该不是复位时间常数太长引起的,我试过改成10K ,1UF  也不行(用AT89S52和STC89C52RC),也试过复位端接地(STC89C52RC),也不行。

使用特权

评论回复
9
hq_y| | 2007-12-6 18:06 | 只看该作者

OE接到I/O的口线上,这样373上电输出是高阻态

使用特权

评论回复
10
huzeng168|  楼主 | 2007-12-7 11:31 | 只看该作者

换了74LS373就可以了!

我将先前用的SN74LS373换HD74LS373就可以了!不会在上电时373输出低电平了!奇怪!日立的IC就好些吗?

使用特权

评论回复
11
xwj| | 2007-12-7 11:37 | 只看该作者

设计问题,应该用复位信号去控制OE脚

使用特权

评论回复
12
pxy94| | 2007-12-11 14:18 | 只看该作者

可以用8255

可以用8255来扩展

使用特权

评论回复
13
fenjin| | 2007-12-11 15:05 | 只看该作者

路过

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

45

帖子

1

粉丝