80c51的中斷系統有5個中斷源(80c52有6個),2個優先順序,可實現二級中斷巢狀。
根據它的原理圖就可以看出,80c51一共有4個暫存器(tcon,scon,ie,ip),附件有她們的詳細的暫存器示例圖。
[img]/upload/attachment/88246/4f31826e-53a5-30c4-80d4-9b7af2ba7910.bmp[/img]
[img]/upload/attachment/88268/b0ac5d7a-6e71-3352-880c-35914bae90dc.bmp[/img]
如果想產生乙個中斷請求,首先要做的就是開啟ie裡的ea標誌位,因為ie暫存器的位址是0xa8,所以可以對其位進行操作。而ea標誌位是整個中斷系統的總開關,這一步必不可少。接著還要將你要產生的中斷號對位的ie中的相應位置高電平,包括ex0(0號外部中斷),et0(0號定時器中斷),ex1(1號外部中斷),et1(1號定時器中斷),es(串列埠中斷);上面的就是ie中的一些特殊位。下一步就是要指定是電平觸發還是脈衝觸發了,此步是要操作tcon暫存器,將it0置1表示脈衝觸發,置0表示是電平觸發,此處操作是0號外部中斷的一些基本設定,其它中斷設定參照原理圖便可得,此處不再重複。
接下來就可以拿出板子進行試驗了,注意因為是電平觸發,所以要將p32引腳接地,也就是變為低電平即可,來產生乙個中斷請求。下面附上我的乙個示例程式, 產生的效果是:蜂鳴器將不間斷的發出響聲,注:程式為手寫,沒除錯過,不能保證一定能調通
#include
sbit beep=p3^2;
int i,j;
void delay(unsigned char);//宣告延遲函式
void main()
}//延遲函式
void delay(unsigned char t)
//中斷函式
void interupt() interrupt 0//此為中斷函式的固定格式,
//interrupt為關鍵字,0表示是0 號中斷
STC89C52開發學習(三)
不多bb,先上 讓大家看看 include reg52.h include intrins.h typedef unsigned int u16 typedef unsigned char u8 define led p2 void delay u16 i void main for i 0 i 7...
STC89C52的結構體
c51程式設計有時需要將一批基本型別的資料放在一起使用,從而引入了所謂構造型別資料,前面學習的資料就是一種構造型別的資料,乙個陣列實際上是一批順序存放的相同型別資料。結構體也是一種結構型別資料。結構體它是將若干個不同型別的資料變數有序地組合在一起而形成的一種資料集合體。一般來說,結構體中各個變數之間...
基於stc89c52藍芽四輪小車
基於stc89c52 藍芽四輪小車 protell99se sch 原理圖 mss130303.ddb mss學習整理所得 未完全除錯日期 2013 03 03 準備 1 硬體 四輪小車底盤 andriod 手機51最小系統 stc89c52 藍芽模組 hc 06 從機電機驅動模組 l298n 帶 ...