C51 玄學問題,magic

2021-08-22 08:11:59 字數 618 閱讀 2680

void int0_isr(void) interrupt 0

}else

if (num%2 == 0)

for (m=0;m<7;m++)}}

}void int1_isr (void) interrupt 2

手動分配using 0,using 1導致無法退出中斷

手動分配using 1,using 2正常退出並返回主函式

自動分配正常退出並返回主函式

以下純屬猜測,畢竟跟使用哪組暫存器沒啥關係

**中使用電平中斷(可能也和使用全域性變數有關係?)

在沒有清中斷標誌位的情況下,開啟中斷後,會產生多個中斷訊號

每個中斷程式都在把他們清零,相互影響,導致很難達到計數終點,程式難以終止

又發現乙個問題:using 0,using 1是手動分配中斷使用哪組暫存器

但預設情況下系統自動分配暫存器也是using 0,using 1,正常退出中斷

using 0使用第0組暫存器(rs1=0,rs0=0),實際位址r0(00h) - r7(07h)

using 1使用第1組暫存器(rs1=0,rs0=1),實際位址r0(08h) - r7(0fh)

c51為啥要巨集定義時鐘 c51時鐘

程式效果 時鐘,包括時間可調,定時到了鬧鐘響,用蜂鳴器,本程式已經除錯通過 喇叭接在p2.0上.埠均可自行更改.include 標頭檔案 include define uchar unsigned char 巨集定義 define uint unsigned int sbit key1 p3 5 位...

51微控制器與C51

微控制器又稱單片微控制器,是在一塊晶元中整合了cpu 處理器 ram 資料儲存器 rom 程式儲存器 定時器 計數器和多種功能的i o 輸入 輸出 介面等一台計算機所需要的基本功能部件,從而可以完成複雜的運算 邏輯控制 通訊等功能。51微控制器是對所有相容intel 8031指令系統的微控制器的統稱...

51微控制器C51程式

學習c51程式之前需要對c語言有一定的了解和學習 這裡只介紹與c語言有區別的地方 具體的不同如下 1 c51中增加了幾種針對msc 51微控制器的特有資料型別 a sfr和sfr16 用於定義特殊功能暫存器,如 sfr psw 0xd0 一般情況下這些特殊功能暫存器不需要使用者自定義,通常包含在標頭...