欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20609|回復: 1
收起左側

單片機查詢方式和中斷方式的區別詳解

[復制鏈接]
ID:425029 發表于 2019-3-29 11:11 | 顯示全部樓層 |閱讀模式
查詢方式就是不斷的查詢某個標志位,需要耗費大量的cpu 的時間,一般情況下除專門用于延時外不用這種方式(自己認為),中斷方式比較適合處理具有隨即特性的事件,事件發生后向cpu提出申請,然后cpu會保存當前的任務轉去處理事件
編程時查詢方式要不斷查詢標志位,而中斷要編寫中斷服務子程序來處理中斷事件


你看看上面的,能不能編個中斷方式的程序給我咯

比方說定時100ms,分別用查詢法和中斷法實現
查詢法
#include<reg52.h>
void  main()
{
  TMOD=0X01;//定時器0方式1
   TH0=(65536-10000)%256;//定時器器初值
  TL0=(65536-10000)/256;
  ET0=0;//關定時器0中斷
  TR0=1;
   while(TF0==0);//若定時完成則中斷標志位TF0為1,在此不斷查詢TF0
   TR0=1;//完成定時關閉定時器
    while(1); //等待
  
}
中斷法
#include<reg52.h>
void  main()
{
  TMOD=0X01;//定時器0方式1
   TH0=(65536-10000)%256;//定時器器初值
  TL0=(65536-10000)/256;
   EA=1;//開總中斷
  ET0=1;//關定時器0中斷
  TR0=1;//打開定時器
  while(1); //等待
}
void  isr_timer0 interrupt 1
{
  TR0=0;//關閉定時器
}
另一個實例:P3.2口接有一個按鍵,未按下為高電平,按下則為低電平,當按下鍵時點亮一個led燈
查詢法
#include<reg52.h>
sbit led=P1^1;//led是共陰極接法
sbit key=P3^2//按鍵接到p3.0口
void main()
{
  led=0;//熄滅所有燈
while(key==1);//沒有鍵按下則等待(不斷查詢p3.0的狀態)
led=1;//點亮燈
while(1);
}
中斷法
#include<reg52.h>
sbit led=P1^1;//led是共陰極接法
void main()
{
  led=0;//熄滅所有燈
  while(1);
}
void  isr_led interrupt 0
{
  led0=1;//點亮燈
}



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:103162 發表于 2020-6-17 09:23 | 顯示全部樓層
你的查詢法都沒有包含在大循環中怎么實現查詢。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表