|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
C51中的中斷參數(shù)怎么設(shè)置和傳遞? |
| 作者:dong241 欄目:單片機(jī) |
C51的中斷怎么設(shè)置參數(shù)阿 還有 參數(shù)是怎么傳遞的阿 可否幫忙解釋一下 ? 謝謝了! |
| 2樓: | >>參與討論 |
| 作者: dong241 于 2005/6/19 20:36:00 發(fā)布:
怎么沒人發(fā)言阿? 我的同一個(gè)中斷源 但是在不同的觸發(fā)情況下要處理不同的事情 ,可是我就想不通該怎么將他們?nèi)シ珠_呢? 有沒有人遇到過類似的事情呢?可否給與建議? 謝謝! |
|
| 3樓: | >>參與討論 |
| 作者: hotpower 于 2005/6/19 20:42:00 發(fā)布:
中斷是不可能也不能傳遞參數(shù)的 一個(gè)中斷向量即只有一個(gè)中斷入口地址,若硬件想復(fù)用此外部中斷時(shí),必須在用其他IO通知中斷服務(wù)程序.一般軟件標(biāo)志是不能區(qū)分的... |
|
| 4樓: | >>參與討論 |
| 作者: dong241 于 2005/6/19 20:45:00 發(fā)布:
?? 比如說用int1 那豈不是要進(jìn)入到同樣的中斷程序了?那處理不同的事情可以么? |
|
| 5樓: | >>參與討論 |
| 作者: hotpower 于 2005/6/19 21:05:00 發(fā)布:
同時(shí)中斷要分先后級(jí) 例如: P1.0,P1.1各為一個(gè)中斷源,P1.0,P1.1再各通過一個(gè)二極管(接負(fù)極)后復(fù)聯(lián)(及線與)后的公共端(正極)接INT1. 在INT1中斷中: /*------------------------------------ 外部INT1中斷服務(wù)程序 ------------------------------------*/ void int1proc() interrupt IE1_VECTOR using 1 { if (!P1^0 && !P1^1) {//同時(shí)中斷時(shí) //加入P1^0中斷處理代碼 //加入P1^1中斷處理代碼 } else if (!P1^0) { //加入P1^0中斷處理代碼 } else if (!P1^1) { //加入P1^1中斷處理代碼 } } 或 /*------------------------------------ 外部INT1中斷服務(wù)程序 ------------------------------------*/ void int1proc() interrupt IE1_VECTOR using 1 { if (!P1^0) { //加入P1^0中斷處理代碼 } if (!P1^1) { //加入P1^1中斷處理代碼 } } 上例較好,但費(fèi)代碼.下例雖省代碼,但存在P1^0中斷處理代碼過長(zhǎng)時(shí),P1^1信號(hào)丟失的問題... * - 本貼最后修改時(shí)間:2005-6-19 21:07:51 修改者:hotpower |
|
| 6樓: | >>參與討論 |
| 作者: dengm 于 2005/6/19 21:13:00 發(fā)布:
ps:這種情況,中斷要用電平方式 |
|
| 7樓: | >>參與討論 |
| 作者: hotpower 于 2005/6/19 21:22:00 發(fā)布:
不用電平方式也問題不大,關(guān)鍵在信號(hào)的脈寬能否被中斷捕捉 /*------------------------------------ 外部INT1中斷服務(wù)程序 ------------------------------------*/ void int1proc() interrupt IE1_VECTOR using 1 { unsigned CHAR tmp; tmp = P1;//關(guān)鍵是否能在此處可靠捕捉 if (!(tmp & 0x01)) { //加入P1^0中斷處理代碼 } if (!(tmp & 0x02)) { //加入P1^1中斷處理代碼 } } 電平方式比較討厭,如果其信號(hào)寬度小于中斷服務(wù)處理時(shí)間即可. 51就是沒AVR等上下沿都觸發(fā)的功能好... * - 本貼最后修改時(shí)間:2005-6-19 21:26:34 修改者:hotpower |
|
| 8樓: | >>參與討論 |
| 作者: dong241 于 2005/6/19 21:27:00 發(fā)布:
呵呵 ,其使用一個(gè)標(biāo)志位就可以搞定了! 謝謝各位了 ! |
|
| 9樓: | >>參與討論 |
| 作者: dong241 于 2005/6/19 21:28:00 發(fā)布:
中斷原來使用起來這么有意思! 呵呵 看來要走的路還很長(zhǎng)。 |
|
| 10樓: | >>參與討論 |
| 作者: hotpower 于 2005/6/19 21:32:00 發(fā)布:
硬件復(fù)用必有代價(jià),天下沒有白吃的干飯 P1.0和P1.1就是硬件傳遞給中斷的"參數(shù)"... * - 本貼最后修改時(shí)間:2005-6-19 21:35:39 修改者:hotpower |
|
| 11樓: | >>參與討論 |
| 作者: zhj_dz 于 2005/6/19 22:13:00 發(fā)布:
建議 可在中斷程序中來區(qū)分,以執(zhí)行不同的操作。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |