欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)查詢方式和中斷方式的區(qū)別詳解
[打印本頁]
作者:
yuduan66
時(shí)間:
2019-3-29 11:11
標(biāo)題:
單片機(jī)查詢方式和中斷方式的區(qū)別詳解
查詢方式就是不斷的查詢某個(gè)標(biāo)志位,需要耗費(fèi)大量的cpu 的時(shí)間,一般情況下除專門用于延時(shí)外不用這種方式(自己認(rèn)為),中斷方式比較適合處理具有隨即特性的事件,事件發(fā)生后向cpu提出申請,然后cpu會保存當(dāng)前的任務(wù)轉(zhuǎn)去處理事件
編程時(shí)查詢方式要不斷查詢標(biāo)志位,而中斷要編寫中斷服務(wù)子程序來處理中斷事件
你看看上面的,能不能編個(gè)中斷方式的程序給我咯
比方說定時(shí)100ms,分別用查詢法和中斷法實(shí)現(xiàn)
查詢法
#include<reg52.h>
void main()
{
TMOD=0X01;//定時(shí)器0方式1
TH0=(65536-10000)%256;//定時(shí)器器初值
TL0=(65536-10000)/256;
ET0=0;//關(guān)定時(shí)器0中斷
TR0=1;
while(TF0==0);//若定時(shí)完成則中斷標(biāo)志位TF0為1,在此不斷查詢TF0
TR0=1;//完成定時(shí)關(guān)閉定時(shí)器
while(1); //等待
}
中斷法
#include<reg52.h>
void main()
{
TMOD=0X01;//定時(shí)器0方式1
TH0=(65536-10000)%256;//定時(shí)器器初值
TL0=(65536-10000)/256;
EA=1;//開總中斷
ET0=1;//關(guān)定時(shí)器0中斷
TR0=1;//打開定時(shí)器
while(1); //等待
}
void isr_timer0 interrupt 1
{
TR0=0;//關(guān)閉定時(shí)器
}
另一個(gè)實(shí)例:P3.2口接有一個(gè)按鍵,未按下為高電平,按下則為低電平,當(dāng)按下鍵時(shí)點(diǎn)亮一個(gè)led燈
查詢法
#include<reg52.h>
sbit led=P1^1;//led是共陰極接法
sbit key=P3^2//按鍵接到p3.0口
void main()
{
led=0;//熄滅所有燈
while(key==1);//沒有鍵按下則等待(不斷查詢p3.0的狀態(tài))
led=1;//點(diǎn)亮燈
while(1);
}
中斷法
#include<reg52.h>
sbit led=P1^1;//led是共陰極接法
void main()
{
led=0;//熄滅所有燈
while(1);
}
void isr_led interrupt 0
{
led0=1;//點(diǎn)亮燈
}
作者:
zlstone1974
時(shí)間:
2020-6-17 09:23
你的查詢法都沒有包含在大循環(huán)中怎么實(shí)現(xiàn)查詢。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1