国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

51單片機的中斷系統基礎知識

[復制鏈接]
樓主
coolfire 發表于 2021-6-5 01:19:20 | 只看該作者 |倒序瀏覽 |閱讀模式
中斷:停下來正在做的事,去做別的事。CPU終止正在執行的程序,轉而去做中斷信號發生的程序,執行完此處程序,回到原位置。
中斷源:MCS-51單片機共有五個位置可以產生中斷信號:外部中斷INT0和INT1,定時器/計數器T0和T1,串行中斷。
中斷優先級:當有多個中斷源向CPU發生信號時,處理中斷需要優先級的設置。外部中斷INT0優先級最高,串行中斷優先級最低。需要設置IP寄存器。
中斷源寄存器:TCON和SCON。TCON主要包含了外部中斷觸發方式和外部中斷請求標志。當IT0、IT1為0,則是電平觸發方式(低電平有效);為1時,負跳變觸發方式。IE0、IE1在中斷發出請求后,置為1.中斷完成后,自動清零。
中斷允許寄存器:IE,IE寄存器包含了總開關、外部中斷、串行口中斷、定時器中斷等內容。
中斷優先級控制寄存器:IP。對應位置為1的話,高優先級;為0,低優先級。

-----之前實現跑馬燈都需要設定一個延時函數,現在有了定時器、中斷,不需要設定延時函數
  1. 用定時器T0的中斷方式實現跑馬燈控制
  2. #include<reg52.h>
  3. sbit D1=P2^0;
  4. void main()

  5. {
  6.         char A;
  7.         EA=1;
  8.         ET0=1;
  9.         TMOD=0x01;
  10.         TH0=(65536-46083)/256;
  11.         TL0=(65536-46083)%256;
  12.         TR0=1;
  13.         A=0xfe;
  14.         D1=A;
  15.         while(1);
  16. }
  17. void Time(void) interrupt 1 using 0
  18. {
  19.         char A;
  20.         A=A<<1;
  21.         if (A !=0xff)
  22.         {
  23.                 A=A|1;
  24.         }
  25.         else
  26.                 A=0xfe;
  27.         D1=A;
  28.         TH0=(65536-46083)/256;
  29.         TL0=(65536-46083)%256;
  30. }
復制代碼

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

本版積分規則

手機版|小黑屋|ELEOK |網站地圖

GMT+8, 2026-5-26 04:54

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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