QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我刚踏入单片机领域不久,AT89C51系列的,遇见了个问题,请教大家:5 G1 |" s- X7 z9 [2 V5 T2 M0 s; `
立即响应的问题:
' h( \( v1 t9 a' M% r" S, M, N3 e 当程序循环再某一个地方时,外部有需要立即响应的信号出现时怎么办?. J  h: b: s  K9 r1 K* }
比如现在程序在让步进电机运行,同时需要检测超程检测,而此时需要的外部检测怎么处理
7 k' z& k- Z' T  V4 X0 m' m# ] 假设用中断,但当程序运行在另外的地方时,又得需要中断,总起来哪的需要多少中断,怎么处理这些问题,希望同行帮助一下
发表于 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 编辑 $ b; d3 f$ S! e9 y. n3 q2 S

; ^, b& r7 r  f1 E, ]显然就是用中断来处理啊
发表于 2011-8-19 13:42:10 | 显示全部楼层 来自: 中国黑龙江大庆
采用中断处理应该能够解决问题。
 楼主| 发表于 2011-8-20 10:25:13 | 显示全部楼层 来自: 中国山东潍坊
谢谢上面的好心人,我只是想知道:
2 _$ C5 C, ]- O2 |8 `- t" Y/ G我们知道PLC是用单片机来构成的,特别是80.90年代的PLC是用8031单片机来生产的,但是里面的各个输入,都是可以立即响应的,还有是时间继电器,可提供的资源那么多,我们怎样用单片机来实现PLC的功能?, _5 `3 C; W  g1 x; |7 ^
如果自己能将单片机设计的像PLC一样就好多了?" {* f0 _/ v% k
敬请赐教!!
发表于 2011-8-31 17:15:00 | 显示全部楼层 来自: 中国广东佛山
PLC就是用单片机构成的呀!
发表于 2011-9-9 15:54:02 | 显示全部楼层 来自: 中国山东日照
中断信号就可以了
发表于 2011-9-17 21:55:43 | 显示全部楼层 来自: 中国广东广州
我说一下我以前用AT89C51做的一个步进电机控制电路吧。; O+ S+ x. w8 V" z+ I* x
/ P# F; [, x& c, u3 ?! K2 R
单片机同时控制两个步进电机运动,步进电机使用半步工作方式,各用一个光电开关做超程检测。
2 v; r& \, ]' G$ }步骤如下:
7 T" C/ T9 N8 ]5 V0 T# W1、单片机给出脉冲使左步进电机行进半步;/ I5 v, v- W6 r
2、单片机检测左光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时左步进电机可行进;
, p" A4 E/ {. E  Q3 A3、单片机给出脉冲使右步进电机行进半步;
  G2 i* |+ G3 G0 Q, O4、单片机检测右光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时右步进电机可行进;
3 i4 Y0 Y: [' c" E  B我的电路还有一个128X64的液晶模块和5个按键,都是采用主程序大循环的方式来实现。特别是要实现液晶的菜单耗费了很多代码空间。
4 v3 g0 |6 q! H1 I  t( d' C1 p: E) v  G$ `9 D& Z
这时完全没用到单片机宝贵的中断资源。% _: q/ S- k8 |5 `( t1 }4 T2 X; [* \
AT89C51不做扩展的话可以实现4个外部中断(两个外中断和两个定时器工作方式为计数时实现的外中断),. V! W  M  j+ M& `- T* q
楼主看够不够用吧。

评分

参与人数 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 )

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