|
發(fā)布時(shí)間: 2020-5-28 20:40
正文摘要:#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit flag=P3^2;//外部中斷信號(hào)產(chǎn)生腳 sbit key=P3^0;//控制flag產(chǎn)生下降沿 sbit led=P2 ... |
lyxing 發(fā)表于 2020-5-29 22:55 我知道那兩個(gè)腳 我網(wǎng)上查的也可以通過別的i/o口來控制P3^2 P3^3的高低電位 觸發(fā)不就是有下降沿么 別的可以控制他的高低電位 咋就不可以等效那兩個(gè)腳呢 |
雪峰1259 發(fā)表于 2020-5-29 21:43 外部中斷INT0與INT1,在 P3.2 P3.3口上,按P3.0不能產(chǎn)生外中斷。 |
wulin 發(fā)表于 2020-5-29 16:11 額 我是想通過P3^0按鍵來產(chǎn)生這個(gè)中斷 |
雪峰1259 發(fā)表于 2020-5-29 13:16 程序都給你改好了你還玩不轉(zhuǎn),無語了。 |
273431377 發(fā)表于 2020-5-29 00:33 應(yīng)該加個(gè)while 不過這和名字沒啥關(guān)系吧 |
wulin 發(fā)表于 2020-5-29 06:05 加過while后 還是不行 我先通過按P3^0按鍵發(fā)現(xiàn)沒用 然后我又直接按P3^2想產(chǎn)生跳變沿 還是沒反應(yīng) 懵逼了 ![]() |
csmyldl 發(fā)表于 2020-5-29 00:43 想通過按鍵來控制中斷 |
wulin 發(fā)表于 2020-5-29 06:05 贊同樓上 |
樓主犯了兩個(gè)錯(cuò)誤。1.程序結(jié)構(gòu)錯(cuò)誤:main函數(shù)初始化后必須限制在主循環(huán)while(1)中運(yùn)行,哪怕沒有如何任務(wù)也得在while(1)中死循環(huán)。2.外部中斷理解錯(cuò)誤:所謂外部中斷必須是單片機(jī)外部信號(hào)作用于IN0(IN1),由軟件置flag=1; flag=0;不會(huì)觸發(fā)IN0中斷。
|
| 問題未描述清楚,flag與KEY在程序中定義引腳P32和P30,不知為何要這么定義 |
|
在main()函數(shù)結(jié)尾加個(gè)while(1); 把中斷函數(shù)名改成void exint0() interrupt 0 試一下。 |
Powered by 單片機(jī)教程網(wǎng)