『壹』 很簡單的51單片機程序,在線等!!
你現在的程序 INT0是1的話 while(!INT0);是不執行的所以直接執行了下邊的程序 所以那三個燈亮了
『貳』 stc15f2k60s2單片機的外部中斷怎麼使用
STC單片機官方提供的工具軟體裡面有常式可以查看。
打開軟體後,右邊欄有「范常式序」選項,點擊後打開窗口,在「單片機系列」選項里選擇系列,然後選擇需要的範例。
如果需要更詳細的內容,可以下載官方的器件手冊。
『叄』 單片機中斷打開後,直接進入中斷
在EX0置1前在外部的P3^2口有脈沖,
那麼在EX0置1後,打開EA,會直接進入中斷程序,
這是為什麼呢,
----
這是正常現象。
樓主認為,應該在什麼時候進入中斷?
在打開EA的前一條指令,應該是:
IE0 = 0; //消除以前的中斷申請
『肆』 單片機中 INT0,EX0,ET0,IE0.分別表示什麼意思
這個事51系列單片機的一系列中斷控制系統的寄存器位IT0:外部中斷0觸發方式控制位,1表示邊沿觸發,0表示電平觸發
EX0:外部中斷0允許位,1表示允許外部中斷0的中斷申請
ET0:定時/計數器0中斷允許位,1表示允許定時/計數器0的溢出中斷
IE0:外部中斷0中斷申請標志位,1表示有中斷申請
『伍』 單片機縮寫的英文全稱及中文名稱
單片機縮寫的英文全稱是Microcontrollers,中文名稱就是單片機。
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。
單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞——「智能型」,如智能型洗衣機等。
(5)單片機exint0擴展閱讀:
單片機的單機應用的范圍:
1、測控系統。 用單片機可以構成各種不太復雜的工業控制系統、自適應控制系統、數據採集系統等, 達到測量與控制的目的。
2、智能儀表。 用單片機改造原有的測量、控制儀表, 促進儀表向數字化、智能化、多功能化、綜合化、柔性化方向發展。
3、機電一體化產品。單片機與傳統的機械產品相結合, 使傳統機械產品結構簡化, 控制智能化。
4、智能介面。 在計算機控制系統, 特別是在較大型的工業測、控系統中, 用單片機進行介面的控制與管理, 加之單片機與主機的並行工作, 大大提高了系統的運行速度。
5、智能民用產品。 如在家用電器、玩具、游戲機、聲像設備、電子秤、收銀機、辦公設備、廚房設備等許多產品中, 單片機控制器的引入, 不僅使產品的功能大大增強, 性能得到提高, 而且獲得了良好的使用效果。
『陸』 讓串口,和按鍵,同時控制單片機一個io口輸出高電平戓低電平,
#include "reg52.h"
sbit key1 = P3^2;
sbit key2 = P3^3;
sbit out = P0^0;
void UartInit(void) //[email protected]
{
SCON = 0x50; //8位數據,可變波特率
TMOD &= 0x0F; //設定定時器1為16位自動重裝方式
TL1 = 0xE8; //設定定時初值
TH1 = 0xFF; //設定定時初值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
}
void main(void)
{
UartInit();
IT0 = 1; //set INT0 int type (1:Falling 0:Low level)
EX0 = 1; //enable INT0 interrupt
IT1 = 1; //set INT0 int type (1:Falling 0:Low level)
EX1 = 1; //enable INT0 interrupt
ES = 1;
EA = 1; //open global interrupt switch
while(1);
}
//External interrupt0 service routine
void exint0() interrupt 0 //(location at 0003H)
{
out = 1;
}
//External interrupt1 service routine
void exint1() interrupt 2 //(location at 0013H)
{
out = 0;
}
/*----------------------------
UART interrupt service routine
----------------------------*/
void Uart_Isr() interrupt 4 using 1
{
unsigned char temp;
if (RI)
{
RI = 0; //Clear receive interrupt flag
temp = SBUF;
if(temp == 0xaa)out = 1;
if(temp == 0x55)out = 0;
}
if (TI)
{
TI = 0; //Clear transmit interrupt flag
}
}
『柒』 單片機 程序中的 EA EX ET TR TH TL什麼意思
EA是總中斷允許位,EX是外部中斷允許位(EX0,EX1分別指外部中斷INT0,INT1),ET是內部定時器/計數器中斷允許位,TR定時器/計數器啟動位,它們都是高電平1有效。TH、TL分別指定時器/計數器的高8位和低8位(後面加0/1表示定時器/計數器0/1,如TH0=255表示給定時器0的高八位賦初值255)。
『捌』 單片機setb ex0是什麼意思
SETB bit;置位某位 就是把1→bit。應該是EX0吧。EX0(IE.0):外部中斷INT0的中斷允許 EX0=1打開外部中斷
『玖』 求單片機大神解釋這些語句是啥意思,並且最終實現了什麼功能,謝謝各位
#include "reg51.h"
#include "intrins.h"
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;
上面這些是 寄存器聲明,其實頭文件裡面也就是傳統51的寄存器聲明 了, 這個程序使用的增強型的51內核單片機,有P0——P7 8個IO口, 所以需要重新聲明下reg51裡面沒有聲明的部分。
void exint0() interrupt 0//INT0中斷入口
{
P10 = !P10; //將測試口取反
FLAG = INT0;//保存INT0口的狀態, INT0=0(下降沿); INT0=1(上升沿)
}
這部分是中斷服務函數,外部中斷0 進入終端 P1^0取反一次,同時把外部中斷0的電平付給FLAG
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
P7M0 = 0x00;
P7M1 = 0x00;
這里是 給單片機的IO口 選擇工作方式,一般有高阻輸入,准雙向IO口,開漏,推挽輸出,這幾種,增強型的可以給寄存器賦值來 設置工作模式的。 0x00的話一般是 准雙向IO口使用的
INT0 = 1; //外部中斷0 口 電平拉高,。
IT0 = 0;//設置INT0的中斷類型 (1:僅下降沿 0:上升沿和下降沿)
EX0 = 1; //使能INT0中斷
EA = 1;
while (1);
}
這個程序就是外部中斷0 只要發生電平變化,就會進入中斷,
『拾』 51單片機串口通信時, 外部中斷無法執行
串口通信是不是也是採用中斷方式?如果與外部中斷為同一優先經中斷的話,則當51單片機串口通信時(串口中斷時),外部中斷是無法執行的。
如果想實現外部中斷優先,需要改變它們的優先順序別,串口低優先順序PS=0,外部中斷高優先順序PX0=1,PX1=1