QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3219|回复: 16
收起左侧

[讨论结束] 单片机的立即响应

[复制链接]
发表于 2011-6-18 09:57:38 | 显示全部楼层 |阅读模式 来自: 中国山东潍坊

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我刚踏入单片机领域不久,AT89C51系列的,遇见了个问题,请教大家:: C3 m4 P2 b( O
立即响应的问题:, {( m. S6 Q4 Z% p  a' s1 [
当程序循环再某一个地方时,外部有需要立即响应的信号出现时怎么办?! }0 L4 {5 o) x: j" x7 Y
比如现在程序在让步进电机运行,同时需要检测超程检测,而此时需要的外部检测怎么处理
( {8 U0 J6 e* _# v8 H 假设用中断,但当程序运行在另外的地方时,又得需要中断,总起来哪的需要多少中断,怎么处理这些问题,希望同行帮助一下
发表于 2011-6-19 11:02:36 | 显示全部楼层 来自: 中国山西太原
对,我觉的像你说的情况就得是中断,一个中断源就可以啊。
发表于 2011-6-19 20:34:35 | 显示全部楼层 来自: 中国河北石家庄
中断响应 51单片机可以有2个外部中断 可以扩展
发表于 2011-7-30 08:38:31 | 显示全部楼层 来自: 中国上海
中段在软件里可以扩展的,参见KEILC51的资料
发表于 2011-8-18 15:35:19 | 显示全部楼层 来自: 中国浙江台州
本帖最后由 pangpang 于 2011-12-31 19:07 编辑 ) w! m# p- ?/ K4 g3 l9 h

$ M6 P# r7 O' ]  @4 X显然就是用中断来处理啊
发表于 2011-8-19 13:42:10 | 显示全部楼层 来自: 中国黑龙江大庆
采用中断处理应该能够解决问题。
 楼主| 发表于 2011-8-20 10:25:13 | 显示全部楼层 来自: 中国山东潍坊
谢谢上面的好心人,我只是想知道:8 y, o5 E+ b' r
我们知道PLC是用单片机来构成的,特别是80.90年代的PLC是用8031单片机来生产的,但是里面的各个输入,都是可以立即响应的,还有是时间继电器,可提供的资源那么多,我们怎样用单片机来实现PLC的功能?0 ?2 m; \3 Z9 m) N* b/ ~! y$ G8 g
如果自己能将单片机设计的像PLC一样就好多了?
: X% W1 o% f2 C- ]# ?敬请赐教!!
发表于 2011-8-31 17:15:00 | 显示全部楼层 来自: 中国广东佛山
PLC就是用单片机构成的呀!
发表于 2011-9-9 15:54:02 | 显示全部楼层 来自: 中国山东日照
中断信号就可以了
发表于 2011-9-17 21:55:43 | 显示全部楼层 来自: 中国广东广州
我说一下我以前用AT89C51做的一个步进电机控制电路吧。
, t. y2 `+ H/ }7 ?$ q
$ V7 b" s; L2 y# L3 R单片机同时控制两个步进电机运动,步进电机使用半步工作方式,各用一个光电开关做超程检测。
' H: F, }- {- p/ e" r  n步骤如下:. A! X& \" q4 t2 q0 F1 M$ @7 P. W8 V
1、单片机给出脉冲使左步进电机行进半步;
' |: c1 a" G$ i* S, g- Z5 _2、单片机检测左光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时左步进电机可行进;" X  @" `& I# e' f8 P
3、单片机给出脉冲使右步进电机行进半步;# ]: e& x$ i4 c& j# n4 p
4、单片机检测右光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时右步进电机可行进;& }) d6 {& n: x! w5 q
我的电路还有一个128X64的液晶模块和5个按键,都是采用主程序大循环的方式来实现。特别是要实现液晶的菜单耗费了很多代码空间。
7 H7 q5 o: z2 f, H: l( a( _1 Q- n1 O5 t
这时完全没用到单片机宝贵的中断资源。3 b% i( Y; s0 J
AT89C51不做扩展的话可以实现4个外部中断(两个外中断和两个定时器工作方式为计数时实现的外中断),6 Z( j1 k6 ]2 ~
楼主看够不够用吧。

评分

参与人数 1三维币 +8 收起 理由
pangpang + 8 应助,极其认真。

查看全部评分

发表于 2011-9-23 09:18:42 | 显示全部楼层 来自: 中国河北石家庄
可以外加芯片扩展中断源 也可以10#那样不停检测
发表于 2011-12-30 09:09:54 | 显示全部楼层 来自: 中国湖北武汉
使用中断,中断后再判断中断源即可,同时应该考虑中断源的优先级
发表于 2011-12-31 11:34:12 | 显示全部楼层 来自: 中国湖北潜江
10楼所述的是一种查询法的设计思路,这是一个解决的方法,但这种方法也有它的不足,就是反复不停地检查,这样会占用CPU的资源,对于整个程序响应的实时性有一定的影响,中断则相对来说实时性更好一些,但也面临资源相对紧张的问题,因此需要设计者有一定取舍。条条大路通罗马,解决问题不一定只有一个方法的,多学、多用,自然会写出更好的、更合理的控制程序。

评分

参与人数 1三维币 +3 收起 理由
pangpang + 3 认真、积极参予讨论。

查看全部评分

发表于 2012-1-10 14:22:00 | 显示全部楼层 来自: 中国北京
你可以分时复用啊,如果中断的话哪电机就得等中断结束了再起转。我的方法你可以让他们同时工作!
发表于 2012-1-15 22:29:56 | 显示全部楼层 来自: 中国上海
中断可以扩展
发表于 2012-5-22 14:00:38 | 显示全部楼层 来自: 中国福建漳州
中断,再加时间片管理处理。
发表于 2012-5-24 21:36:58 | 显示全部楼层 来自: 中国浙江杭州
中断处理啊
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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