|
|||||||||||
| 技術(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 |
51的INT0/1口在做總線是能否單獨(dú)作為I/O? |
| 作者:小羅納耳朵 欄目:新手園地 |
我想用INT1和T1檢測(cè)一個(gè)輸入方波的頻率,當(dāng)按鍵按下,方波輸入到INT1口 設(shè)置TMOD=0x90 即由INT1(P3_3)和TR1 同時(shí)控制定時(shí)器T1的開啟和關(guān)閉 程序如下: 1 TMOD = 0x90; //設(shè)置T1,方式1,外部INT1控制啟停,定時(shí)器方式。 2 TL1 = 0x00; 3 TH1 = 0x00; 4 P3=0xFF; //置INT1輸入方式 5 CY = 1; 6 while ( CY ){ 7 CY = P3_3; //查詢INT1是否變低 8 } 9 10 Delayms(50); //去抖動(dòng) 11 12 while (CY) { //查詢INT1是否變低 13 CY = P3_3; 14 } 15 TR1 = 1; 16 17 while (!CY) { //查詢INT1是否變高 T1再此期間計(jì)時(shí) 18 CY = P3_3; 19 } 20 21 while ( CY ) { //查詢INT1是否變低 (此時(shí)由于INT1已變低, 22 //T1已經(jīng)關(guān)閉 ) 23 CY = P3_3; 24 } 25 26 TR1 = 0; //關(guān)T1 問題是:為什么我的程序老是運(yùn)行到第6行時(shí)無法繼續(xù)向下運(yùn)行,此時(shí)輸入的信號(hào)正常,為一個(gè)200K左右的方波,按鍵按下時(shí),在示波器上也能觀察到INT1腳出現(xiàn)了這個(gè)200K的方波信號(hào),但是程序就是無法向下走了。除非在仿真軟件里強(qiáng)制把INT1置低,程序才能繼續(xù),但是到下一個(gè)判斷INT1是否變低時(shí),又出現(xiàn)同樣的情況。有沒有達(dá)人幫忙看一下問題出在什么地方啊? 多謝了!。。。。。。。。。! |
| 2樓: | >>參與討論 |
| 作者: awey 于 2006/7/28 17:40:00 發(fā)布:
200K的方波一個(gè)周期里低電平的時(shí)間是2.5uS 如果你的51晶振是12MHZ的,指令周期是1uS,還計(jì)什么數(shù)? |
|
| 3樓: | >>參與討論 |
| 作者: 小羅納耳朵 于 2006/7/28 19:14:00 發(fā)布:
是這樣 200K是個(gè)概數(shù)。我是拿這舉個(gè)例子而已?梢允瞧渌l率的方波。并且是要隨時(shí)改變頻率的 |
|
| 4樓: | >>參與討論 |
| 作者: maychang 于 2006/7/28 20:47:00 發(fā)布:
看不出INT0/1是做總線 51單片機(jī)的INT0/1在控制定時(shí)器T0/1的開啟和關(guān)閉(門控)時(shí)仍可產(chǎn)生中斷,為什么不用中斷而用查詢方式? |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |