请问51单片机有5个中断源,但只有两级中断优先级。怎么控制5个中断源优先顺序的?

你的问题虽多,但总结起来就是一句话:你对51单片机的中断工作过程没有概念。其实,大部分的教材都是有的……我就带你捋一捋吧。
我们都知道,中断的主要目的就是让重要且紧急的事件插队,优先得到处理。怎么知道有没有发生这样的事情?
51内核会在每个机器周期的S5P2将所有中断标志锁存采样,在下个机器周期进行依次判断,判断的顺序是:先在高优先级中断中,按照中断号由低到高(从0到n)的顺序巡查,再从低优先级中断中,按照中断号由低到高的顺序巡查。
巡查过程中只要发现哪一个中断标志置位了,就会在当前指令执行完毕后插入一个LCALL指令、根据中断向量设置跳转到对应的中断向量执行。但有下面三种情况例外:
1. 当前正有优先级相同或更高的中断在执行,位高权重惹不起;
2. 当前指令是个多周期指令(例如除法),还的往后等待若干机器周期;
3. 当前指令是RETI,或者与IE、IP相关的访问指令。
所以我们看到这个系统考虑得还算是全面的。以上可以回答你的问题1、2了。
至于问题3,中断会不会相互影响甚至丢失,通过刚才三个例外你就会发现,这是很有可能的。例如用户的中断函数磨磨唧唧占用时间太长(有些人喜欢在中断里面跑业务我也是服了),或者高优先级/高顺位的中断产生得太频繁,都会影响到其他中断的响应乃至导致事件丢失。
至于问题4,就要依赖于我们的设计思维和设计经验。当你明白巡检中断的顺序后,希望改变这样的顺序,就可以通过优先级来调整。例如在你的应用里把总线通讯响应速度放在最重要的地位,那么4号中断就要丢到高优先级里,避免定时器和外部中断的影响……

  • MCS-51绯诲垪鍗曠墖鏈虹殑鏈夊嚑涓腑鏂簮?
    绛旓細鏍囧噯51鏈5涓腑鏂鍚戦噺锛堜笉绠楀浣嶏級锛屽垎鍒槸澶栭儴涓柇0锛屽畾鏃跺櫒0锛屽閮ㄤ腑鏂1锛屽畾鏃跺櫒1锛屼覆琛屽彛锛涙诲叡鏈6涓腑鏂爣蹇楋紝涓茶鍙g殑鍙戦佸拰鎺ュ彈鍏变韩涓涓腑鏂悜閲忋俓x0d\x0a 鍚勪釜缁堢鏍囧織浜х敓鎯呭喌濡備笅:\x0d\x0a 澶栭儴涓柇鍙互璁剧疆杈规部瑙﹀彂鎴栬呯數骞宠Е鍙戯紝杈规部瑙﹀彂杩涘叆涓柇绋嬪簭鍚庣‖浠惰嚜鍔ㄦ竻涓柇鏍囧織锛岀數骞...
  • 51鍗曠墖鏈烘湁鍑涓腑鏂簮,鍒嗗埆鏄粈涔?
    绛旓細锛2锛夊嚱鏁板悕()interrupt 1 {} //瀵瑰簲瀹氭椂鍣/璁℃暟鍣0涓柇锛涳紙3锛夊嚱鏁板悕()interrupt 2 {} //瀵瑰簲澶栭儴涓柇1锛涳紙4锛夊嚱鏁板悕()interrupt 3 {} //瀵瑰簲瀹氭椂鍣/璁℃暟鍣1涓柇锛涳紙5锛夊嚱鏁板悕()interrupt 4 {} //瀵瑰簲涓插彛涓柇锛51鍗曠墖鏈鏄鎵鏈夊吋瀹笽ntel 8031鎸囦护绯荤粺鐨鍗曠墖鏈虹殑缁熺О銆傝绯诲垪鍗曠墖鏈虹殑濮嬬...
  • 51鍗曠墖鏈烘湁鍑涓腑鏂簮?
    绛旓細鏍囧噯51鏈5涓腑鏂鍚戦噺锛堜笉绠楀浣嶏級锛屽垎鍒槸澶栭儴涓柇0锛屽畾鏃跺櫒0锛屽閮ㄤ腑鏂1锛屽畾鏃跺櫒1锛屼覆琛屽彛锛涙诲叡鏈6涓腑鏂爣蹇楋紝涓茶鍙g殑鍙戦佸拰鎺ュ彈鍏变韩涓涓腑鏂悜閲忋傚悇涓粓绔爣蹇椾骇鐢熸儏鍐靛涓:澶栭儴涓柇鍙互璁剧疆杈规部瑙﹀彂鎴栬呯數骞宠Е鍙戯紝杈规部瑙﹀彂杩涘叆涓柇绋嬪簭鍚庣‖浠惰嚜鍔ㄦ竻涓柇鏍囧織锛岀數骞宠Е鍙戦渶瑕佽蒋浠舵竻鏍囧織浣嶏紱瀹氭椂鍣═0,T1...
  • 51鍗曠墖鏈烘湁鍑涓腑鏂簮?
    绛旓細MCS-51鍗曠墖鏈烘湁涓や釜涓柇浼樺厛绾с傚湪51鍗曠墖鏈轰腑锛屾湁2涓彲缂栫▼瀹氭椂/璁℃暟鍣5涓腑鏂簮锛2涓紭鍏堢骇锛21涓笓鐢ㄥ瘎瀛樺櫒銆傚彟鏈8浣岰PU鐨4kbytes绋嬪簭瀛樺偍鍣(ROM) 锛128bytes鐨勬暟鎹瓨鍌ㄥ櫒锛圧AM锛夛紝32鏉/O鍙g嚎路111鏉℃寚浠わ紝澶ч儴鍒嗕负鍗曞瓧鑺傛寚浠ゃ備紭鍏堢骇璁惧畾鏂规硶锛1銆両P鐨勭姸鎬佺敱杞欢璁惧畾锛屾煇浣嶈瀹氫负鈥1鈥濓紝...
  • 51绯诲垪鍗曠墖鏈哄叿鏈鍑涓腑鏂簮,鍒嗗埆鏄浣
    绛旓細51鍗曠墖鏈鎬诲叡鏈5涓腑鏂簮锛鍒嗗埆涓猴細澶栭儴涓柇0锛圛NT0锛,瀵瑰簲涓柇鍙锋槸0,涓柇鍏ュ彛鍦板潃0003H 瀹氭椂/璁℃暟鍣0锛圱1锛,瀵瑰簲涓柇鍙1 ,涓柇鍏ュ彛鍦板潃000BH 澶栭儴涓柇1锛圛NT1锛,涓柇鍙2 鍏ュ彛鍦板潃0013H 瀹氭椂/璁℃暟鍣1锛圱1锛変腑鏂彿3 鍏ュ彛鍦板潃001BH 涓茶鍙d腑锛圧I/TI锛変腑鏂彿4 鍏ュ彛鍦板潃0023H ...
  • 89C51鍗曠墖鏈烘湁鍝5涓腑鏂簮,鎬庢牱寮鏀惧拰绂佹涓柇?鎬庢牱璁剧疆浼樺厛绾?_鐧惧害...
    绛旓細鏈5涓腑鏂簮锛澶栭儴涓柇0锛屽畾涔変负INT0锛涘畾鏃讹紡璁℃暟鍣0锛屽畾涔変负T0锛屽閮ㄤ腑鏂1锛屽畾涔変负INT1锛涘畾鏃讹紡璁℃暟鍣1锛屽畾涔変负T1锛涗覆琛岄氫俊鍙d腑鏂 杩欎簲绉嶄腑鏂兘鍙互瀹氫箟楂樹紭鍏堢骇涓柇锛屽彲浠ユ牴鎹畠浠嚜宸辩殑闇瑕佽缃傛墍鏈変簲涓腑鏂簮閮藉彲浠ユ牴鎹嚜宸辩殑闇瑕佸畾涔夐珮浼樺厛绾с傚畾涔夐珮浼樺厛绾ф椂锛屽彧闇瀹氫箟IP瀵勫瓨鍣ㄤ腑瀵瑰簲鐨勪綅缃1...
  • 8051鍗曠墖鏈鎻愪緵浜嗗嚑涓腑鏂簮?瀹冧滑鐨涓柇鏍囧織鏄粈涔?鍙堝浣曟竻闄ら檲杩欎簺涓...
    绛旓細鏈5涓腑鏂簮锛涓や釜澶栦腑鏂紝涓や釜瀹氭椂/璁℃暟鍣ㄤ腑鏂紝涓涓覆鍙d腑鏂紝澶栦腑鏂爣蹇楁槸IE0锛孖E1 ;瀹氭椂鍣ㄤ腑鏂爣蹇楁槸TF0锛孴F1;涓插彛涓柇鏍囧織鏄疪I,TI銆侷E0锛孖E1锛孴F0锛孴F1鐢辩‖浠舵竻闆舵棤闇澶栬竟骞查锛孯I,TI鐢辫蒋浠舵竻闆躲
  • 8051鍗曠墖鏈5涓腑鏂簮鐩稿簲鍦板湪鑺墖涓婇兘鏈涓柇璇锋眰杈撳叆寮曡剼銆 涓哄暐鏄敊...
    绛旓細瀹氭椂鍣ㄥ拰涓插彛鐨勪腑鏂鏄唴閮ㄨЕ鍙戠殑锛屾墍浠ヤ笉闇瑕佷篃灏辨槸娌鏈変腑鏂璇锋眰杈撳叆寮曡剼锛屼笉鐭ラ亾杩欎箞瑙i噴瀵逛笉瀵
  • 51鍗曠墖鏈烘湁鍝簺涓柇婧?
    绛旓細PCI绛涓柇锛鍏蜂綋鐪鍗曠墖鏈虹殑璧勬枡銆侾roteus 鑷粠鏈変簡鍗曠墖鏈轰篃灏辨湁浜嗗紑鍙戠郴缁燂紝闅忕潃鍗曠墖鏈虹殑鍙戝睍寮鍙戠郴缁熶篃鍦ㄤ笉鏂彂灞曘 keil鏄竴绉嶅厛杩涚殑鍗曠墖鏈洪泦鎴愬紑鍙戠郴缁熴傚畠浠h〃鐫姹囩紪璇█鍗曠墖鏈哄紑鍙戠郴缁熺殑鏈鏂板彂灞曪紝棣栧垱澶氶」渚垮埄鎶鏈紝灏嗗紑鍙戠殑缂栫▼/浠跨湡/璋冭瘯/鍐欏叆/鍔犲瘑绛夋墍鏈夎繃绋嬩竴姘斿懙鎴愶紝涓棿涓嶉』浠讳綍缂栬瘧鎴栨眹缂栥
  • 鍦C51 璇█绋嬪簭涓,瀵逛簬 51 绯诲垪鍗曠墖鏈虹殑 5 涓腑鏂簮,涓柇鍑芥暟瀹氫箟鏍煎紡涓...
    绛旓細timer0_sev鏄腑鏂▼搴忓悕绉帮紝鍙嚜宸卞畾 interrupt 1鎸囩殑鏄腑鏂彿锛屼笉鑳介殢鎰忓啓 0 1 2 3 4 鍒嗗埆鏄閮ㄤ腑鏂0 瀹氭椂鍣0 澶栭儴涓柇1 瀹氭椂鍣1 涓插彛涓柇銆傛湁鐨勮繕鍦ㄤ腑鏂簭鍙峰悗闈㈠啓 using 0 using 1绛,鎸囩殑鏄敤鍝竴涓瘎瀛樺櫒缁勶紝闃叉鍐呭瓨鍐茬獊锛屽簲璇ユ病浠涔堢敤閫 鎴戠紪绋嬪啓涓涓腑鏂绋嬪簭锛屼笓闂ㄦ敞鏄 using 1 ...
  • 扩展阅读:51单片机5个中断源入口 ... c51的中断源哪五个 ... 5个中断源中断优先级 ... 51单片机4种工作方式 ... 5个中断源自然顺序 ... 中断源的优先级顺序 ... 五个中断源的中断地址 ... 5个中断源端口 ... c51的中断源有5个 分别是 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网