QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我刚踏入单片机领域不久,AT89C51系列的,遇见了个问题,请教大家:
0 D! R% Y7 E( j% ~8 b立即响应的问题:8 i* V2 ?% q7 M. R9 z
当程序循环再某一个地方时,外部有需要立即响应的信号出现时怎么办?/ l% K8 q9 q" k/ E
比如现在程序在让步进电机运行,同时需要检测超程检测,而此时需要的外部检测怎么处理
( h2 u1 [, \* J3 O0 V6 t) Y$ u 假设用中断,但当程序运行在另外的地方时,又得需要中断,总起来哪的需要多少中断,怎么处理这些问题,希望同行帮助一下
发表于 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 编辑 . T  @& F+ w/ @# u4 a

+ }9 @6 \' v+ U显然就是用中断来处理啊
发表于 2011-8-19 13:42:10 | 显示全部楼层 来自: 中国黑龙江大庆
采用中断处理应该能够解决问题。
 楼主| 发表于 2011-8-20 10:25:13 | 显示全部楼层 来自: 中国山东潍坊
谢谢上面的好心人,我只是想知道:! e. X1 w6 n  E% n- r5 ~8 m
我们知道PLC是用单片机来构成的,特别是80.90年代的PLC是用8031单片机来生产的,但是里面的各个输入,都是可以立即响应的,还有是时间继电器,可提供的资源那么多,我们怎样用单片机来实现PLC的功能?
' B4 U% w) b$ I1 b( x* q如果自己能将单片机设计的像PLC一样就好多了?
5 K( ]; \$ Q- k: p$ j敬请赐教!!
发表于 2011-8-31 17:15:00 | 显示全部楼层 来自: 中国广东佛山
PLC就是用单片机构成的呀!
发表于 2011-9-9 15:54:02 | 显示全部楼层 来自: 中国山东日照
中断信号就可以了
发表于 2011-9-17 21:55:43 | 显示全部楼层 来自: 中国广东广州
我说一下我以前用AT89C51做的一个步进电机控制电路吧。
7 A4 x9 }* @/ `: E  A* {- v/ {; T/ V6 h
单片机同时控制两个步进电机运动,步进电机使用半步工作方式,各用一个光电开关做超程检测。
' `( J+ r& @" {( O步骤如下:
4 V/ P$ i# g/ f5 M! K7 j! X4 Z1、单片机给出脉冲使左步进电机行进半步;
; n, D+ A& d4 n# Q/ [4 F( h2、单片机检测左光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时左步进电机可行进;
2 W8 [1 [! a8 E" U" M3、单片机给出脉冲使右步进电机行进半步;
, K5 r4 v- v* `; J3 t. g' W4、单片机检测右光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时右步进电机可行进;
' @* _& e2 D; R! O我的电路还有一个128X64的液晶模块和5个按键,都是采用主程序大循环的方式来实现。特别是要实现液晶的菜单耗费了很多代码空间。
& }; @/ ]) F  V. T
0 M' N0 A: C' z$ O1 B% \8 H3 b这时完全没用到单片机宝贵的中断资源。, q0 d9 q' P) }8 N, C7 N8 Z" T
AT89C51不做扩展的话可以实现4个外部中断(两个外中断和两个定时器工作方式为计数时实现的外中断),  c- ^  M: x; Z/ A- U; t
楼主看够不够用吧。

评分

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

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