|
最近在自學(xué)STC89C52單片機(jī),也看了許多的老師的講解,有些問(wèn)題沒(méi)有弄明白,向大家求教一下。
外部中斷,我明白有兩種觸發(fā)方式,一種電平觸發(fā),一種下降沿觸發(fā),也看了單片機(jī)的原理圖。
我理解的外部中斷,電平觸發(fā)就是一個(gè)按鍵或是什么東西,在單片機(jī)引腳上輸入了一個(gè)電平,這個(gè)電平一直存在使其一直保持中斷,松開(kāi)按鍵就外部中斷停止了,
下沿觸發(fā)像是在引腳上輸入一個(gè)電平的信號(hào),就像一個(gè)波形一樣,觸發(fā)不需要保持住,單片機(jī)檢測(cè)到這個(gè)波形了就觸發(fā)外部中斷。
就一點(diǎn)不明白,外部中斷一定要接在INT0,INT1引腳上才可以嗎?別的端口不可以嗎?那如果需要用傳感器控制的外部中斷多幾個(gè),好像局限性很大
我在想,
比如用P2.0引腳
讓單片機(jī)一直掃描P2.0引腳的狀態(tài),有電平變化了就停止程序,沒(méi)變化繼續(xù)執(zhí)行程序。這樣好像也和INT0,INT1這些引腳功能一樣!
不知道我說(shuō)的對(duì)不對(duì),剛剛接觸單片機(jī),以前的知識(shí)早忘完了。
還有定時(shí)器,感覺(jué)怎么這么復(fù)雜,可以一會(huì)語(yǔ)句循環(huán),一會(huì)定時(shí)器控制,都不知道到底該用哪種了。
到現(xiàn)在定時(shí)器都沒(méi)弄懂。
程序方面,看了許多的例程,里面的代碼,最后感覺(jué)有很多的相似,就好像有固定的框框,寫(xiě)程序的時(shí)候只需要朝里面套自己的東西一樣。
但還是許多代碼看不明白,有的頭文件我抄上來(lái),編譯直接出錯(cuò),把它刪掉就行了,單片機(jī)也照樣的執(zhí)行,搞不明白是為什么。
最后希望各位大佬幫個(gè)忙,這兩天在做個(gè)小車(chē),程序老是寫(xiě)不好。不是這里出錯(cuò)就是那里出錯(cuò)。希望有大佬幫幫忙,幫我寫(xiě)一下,這樣我能根據(jù)我自己的情況,明白的更快一點(diǎn)。
我自己寫(xiě)的哪個(gè)錯(cuò)漏百出的程序就不貼上來(lái)給大家獻(xiàn)丑了
下邊是我定義的一些引腳,如果有不對(duì)的請(qǐng)大佬們幫忙指出來(lái),謝謝
我按照我想要的程序的流程寫(xiě)出來(lái),請(qǐng)大佬們幫忙填充一下,如果可能請(qǐng)釋義一下,越詳細(xì)越好,以給我們這些小白一些啟示,謝謝。
單片機(jī)源程序如下:
- #include<reg52.h> //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
- #define uchar unsigned char //這兩句的具體意思還沒(méi)有搞懂,但知道是有關(guān)函數(shù)的
- #define uint unsigned int
- sbit YB = P2^5; // 定義遙控器 B 鍵的引腳,B鍵為-正啟動(dòng)-按鍵,輸入高電平
- sbit YC = P2^6; // 定義遙控器 C 鍵的引腳, C鍵為-倒啟動(dòng)-按鍵,輸入高電平
- sbit YD = P3^2; // 定義遙控器 D 鍵的引腳, D鍵為-緊急停止, 輸入高電平
- // 遙控器為自鎖模式,按下按鍵之后,遙控器接收板持續(xù)輸出高電平
- // 再次按下遙控器相應(yīng)按鍵,停止輸出高電平
-
- //這個(gè)遙控器接收板只能輸出高電平, //如果這幾個(gè)引腳的位置不行那么應(yīng)該用哪幾個(gè)引腳?
- //或者有什么辦法能夠轉(zhuǎn)換一下這個(gè)電平信號(hào),把它從高轉(zhuǎn)到低
- sbit JDQ1 = P1^1; // 定義繼電器 1號(hào) 的引腳。 | 低電平 觸發(fā)
- sbit JDQ2 = P1^2; // 定義繼電器 2號(hào) 的引腳。 |
- sbit JDQ3 = P1^3; // 定義繼電器 3號(hào) 的引腳。
- sbit JDQ4 = P1^4 // 定義繼電器 4號(hào) 的引腳。
- sbit JDQ5 = P1^5; // 定義繼電器 5號(hào) 的引腳。
- sbit JDQ6 = P1^6; // 定義繼電器 6號(hào) 的引腳。
- sbit JDQ7 = P2^0; // 定義繼電器 7號(hào) 的引腳。
- sbit JDQ8 = P2^1; // 定義繼電器 8號(hào) 的引腳。
- sbit NPN1 = P2^2; //定義NPN開(kāi)關(guān) 1號(hào) 的信號(hào)輸入引腳。輸入低電平有效
- sbit NPN2 = P2^3; //定義NPN開(kāi)關(guān) 2號(hào) 的信號(hào)輸入引腳。輸入低電平有效
- //NPN開(kāi)關(guān)為 常開(kāi),
- //NPN接近傳感器---無(wú)障礙物--無(wú)檢測(cè)信號(hào)時(shí)輸出高電平,
- //NPN接近傳感器---有障礙物--有檢測(cè)信號(hào)時(shí)輸出低電平。
- sbit HW = P2^4; //定義紅外避障開(kāi)關(guān)的信號(hào)輸入引腳。
- //紅外避障開(kāi)關(guān)--無(wú)障礙物---無(wú)檢測(cè)信號(hào)時(shí)輸出高電平,
- //紅外避障開(kāi)關(guān)--有障礙物---有檢測(cè)信號(hào)時(shí)輸出低電平。
- // 首先我想應(yīng)該是將各個(gè)引腳的初始狀態(tài)置高或低吧?
- // 這樣以便引腳輸出相應(yīng)的狀態(tài)
- // 程序流程 正序
- // 1 P2^5 接收 高電平 信號(hào)輸入,開(kāi)始進(jìn)入程序
- // 2 P1^1 , P1^4 輸出低電平信號(hào)--小車(chē)跑4秒 --停止,
- // 停頓2秒
- // 3 P1^2 , P1^3 輸出低電平信號(hào) --小車(chē)跑18秒---停止,
- // 停頓2秒
- // 4 P1^2 , P1^4 , P1^5 輸出低電平信號(hào)--小車(chē)跑2秒--停止,
- // 停頓2秒
- // 5 P1^2 , P1^3 輸出低電平信號(hào)---小車(chē)跑10秒---停止,
- // 停頓2秒
- // 6 P2^0 輸出低電平信號(hào)-------P2^2 NPN輸入低電平--停止。
- // 停頓2秒
- // 7 P1^2 , P1^3 輸出低電平信號(hào)-----P2^4紅外避障輸入低電平,停止。
- // 完
-
- //這里邊的P3^2起到中斷的作用,按下遙控器D,P3^2引腳接收高電平
- //程序暫停,因?yàn)榻邮瞻鍨樽枣i,所以會(huì)持續(xù)的輸出高電平,直到再次按下, //P3^2不再輸入高電平,程序從暫停之前那一步繼續(xù)執(zhí)行下去.
-
- // 程序流程 倒序 按下C鍵 P2^6 倒序
- //因?yàn)槭浅绦蚬潭ǖ乃缘剐蛞簿褪前殉绦虻箓(gè)方向,不知道這個(gè)算不算兩個(gè)程序,
復(fù)制代碼
這個(gè)小車(chē)的效果,就是按下遙控器B ,小車(chē)會(huì)沿著固定的一條框框道路行走,然后小車(chē)上邊的一個(gè)小電機(jī)會(huì)做一些動(dòng)作。按下遙控器C小車(chē)就會(huì)倒著走回來(lái),這個(gè)對(duì)于各位大佬應(yīng)該非常容易,請(qǐng)幫幫我,最好能給我釋義一下,你們是怎么定的時(shí)間,時(shí)間是怎么樣計(jì)算出來(lái)的 , 怎么外部中斷的,特別是這兩個(gè),非常重要,希望能夠在大佬們的幫助下弄懂這兩個(gè)的用法
萬(wàn)分感謝,
從上個(gè)月才開(kāi)始自己學(xué)習(xí)單片機(jī),因?yàn)闀r(shí)間的關(guān)系,之前學(xué)習(xí)過(guò)的一些知識(shí)都已經(jīng)忘記完了,但現(xiàn)在慢慢的看一些視頻,各位老師的講解。各位大佬的發(fā)帖,回復(fù),給了我很多的啟發(fā)和幫助。也開(kāi)始覺(jué)的單片機(jī)挺有趣,這幾天老是想著程序該怎么設(shè)計(jì),需要哪些東西,等等,感覺(jué)有點(diǎn)入迷了,不知道快入門(mén)了吧。
非常感謝有51黑這樣一個(gè)大平臺(tái),讓大家能夠互相幫助著在自己喜歡或者賴(lài)以生活的道路上走著。
愿大家永遠(yuǎn)不忘初心,繼續(xù)前行。  
設(shè)置有回復(fù)獎(jiǎng)勵(lì)喲,希望各位大佬們贈(zèng)人玫瑰,手有余香。
附上我用的89C52RC單片機(jī)單片機(jī)的原理圖
2222222.PNG (59.13 KB, 下載次數(shù): 52)
下載附件
2019-4-16 17:58 上傳
4444444.PNG (48.94 KB, 下載次數(shù): 55)
下載附件
2019-4-16 17:58 上傳
11111111.PNG (94 KB, 下載次數(shù): 56)
下載附件
2019-4-16 17:58 上傳
333333.PNG (40.6 KB, 下載次數(shù): 59)
下載附件
2019-4-16 17:58 上傳
|
|