A. 單片機外部中斷
定時百器中斷是設定定時時間,到了該時間,就進行處理一次。
可以處理按度鍵掃描,動態顯示,時鍾累加等問。
外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。
如果你的單片機沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。定時百器中斷是設定定時時間,到了該時間,就進行處理一次。
可以處理按度鍵掃描,動態顯示,時鍾累加等問。
外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。
如果你的單片機沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。定時百器中斷是設定定時時間,到了該時間,就進行處理一次。
可以處理按度鍵掃描,動態顯示,時鍾累加等問。
外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。
如果你的單片機沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。
B. 單片機外部中斷實驗
想付vvv的風格
C. 單片機外部中斷做流水燈
單片機控制led燈亮和滅,led燈初始狀態從左到右兩個燈間隔一個燈循環亮滅,然後從右到左循環亮滅,,當按下按鍵,led燈全亮,然後全滅。然後再恢復循環。
二、實驗過程
(一)實驗項目的方案分析
1.設計原理
STC12C5A60S2單片機內部包括微處理器、存儲器(存放程序指令或數據的ROM、RAM等)、輸入/輸出口(I/O口)及其他功能部件如定時/計數器、中斷系統等。它們通過地址匯流排、數據匯流排和控制匯流排連接起來。
本實驗充分利用了8051晶元的I/O引腳。系統已採用STC12C5A60S2系列單片機為中心器件來設計數碼管顯示系統,實現數碼管循環顯示。
2.器件配置清單
表1器件配置表
名稱
型號
數值
數量
麵包板
MB-102
165*55*
(二)實驗項目的硬體電路設計
通過Proteus模擬電路軟體搭建電路
(三)實驗項目的程序設計
1、C51程序編寫
2、keil軟體調試截圖
通過Keil軟體進行C51控製程序的編寫,通過不斷調試修改,最終的調試好的Keil
調試無措的Keil程序
(四)實驗項目的虛擬模擬
打開Keil C軟體將上面程序輸入,調試無誤後編譯輸出".hex"文件,打開Proteus軟體,將之前編譯好的".hex"文件加入到晶元中,開始運行模擬。
(五)實驗項目的實際驗證電路及驗證結果
將單片機C51程序編譯無誤後,生成HEX文件,通過STC-ISP下載到單片機中,下載的軟體界面搭建的實際
D. 單片機實驗外部中斷計數實驗中按鍵觸發時可能導致多次中斷發生 如何避免這種
兩種方法:
硬體消抖。
軟體延時。
別忘了採納。
E. 關於MCS-51系列單片機中斷系統實驗的幾個問題
在執行主城序期間,如果有中斷響應,單片機則響應中斷,然後跳至相應的中斷向量地址處執行中斷程序。中斷向量的地址根據中斷源的不同而不同,比如INT0的中斷入口地址為0x0003,INT1中斷響應地址為0x0013等。一般中斷向量的入口地址處也是一條長跳轉指令機器碼為:02 uu uu
uu uu 即為中斷響應程序在ROM區中的起始位置,單片機進入中斷入口地址後,保護進中斷前的程序指針(斷點保護,數據入棧,存入當前工作組寄存器R0-R7中),處理中斷響應(如標志位清零,相關的功能處理等),然後(自當前工作組寄存器R0-R7中)彈出保護的數據和中斷的入口地址,最後執行一個0x32指令(中斷返回);程序指針回到響應中斷函數處的程序地址(斷點保護),繼續執行程序。
INT0和INT1中斷入口地址不同,中斷允許配置寄存器IE中的位不同、中斷優先順序配置寄存器IP中的位不同、以及TCON寄存器中的中斷標志位不同。
F. 單片機外部中斷實驗程序如何編寫
用匯編語言,簡單一些。
G. 單片機單個外部中斷實驗,P1接8個LED發光二級管
取反指令要放在主程序中,而移位指令則可放在中斷服務程序中
中斷沒有初始化
下面程序我已試過,可實現按鈕按下時,流水燈,松開時,閃爍。
#include<reg51.h>
#include<intrins.h>
void delay()
{
unsigned char i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
void init_tx()
{
EA=1;
EX0=1;
IT0=1;
IP=0x00;
}
void main()
{
init_tx();
P1=0xfe;
while(1)
{
// P1=_crol_(P1,1);
P1=~P1;
delay();
}
}
void tx0() interrupt 0
{
unsigned char i;
/// P1=0x00;
delay();
for(i=0;i<15;i++)
{
// P1=~P1;
P1=_crol_(P1,1);
delay();
}
}
H. 單片機外部中斷實驗程序
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP EXT0
ORG 0030H
MAIN:
MOV SP,#5FH
SETB IT0
SETB EX0
SETB EA
MOV A,#0F0H
MOV P2,A
SJMP $
EXT0:
CPL A
MOV P2,A
RETI
END
I. 單片機 外部中斷實驗 使用AT89C51
可能你說的LED等應該在P0口上,因為按鍵在P1口上,所以編程按這個來。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar time=20,cnt=0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=time)
{
cnt=0;
P0=_crol_(P0,1);
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
P0=0xfe;
while(1)
{
if(key1==0)
{
while(key1==0);
time=20;
}
if(key2==0)
{
while(key2==0);
time=40;
}
if(key3==0)
{
while(key3==0);
time=60;
}
if(key4==0)
{
while(key4==0);
time=80;
}
}
}
J. 單片機外部中斷實驗
include<reg51.h>include<intrins.h>define uchar unsigned charuchar cnt,times;void delay(){uchar i;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;for(i=0;i<times;i++){while(TF0==0);TH0=(65536-50000)/256;TL0=(65536-50000)%256;TF0=0;}TR0=0;}void ext0() interrupt 0{uchar i,j;P1=0xfe;times=8;for(i=0;i<5;i++){for(j=0;j<8;j++){P1=_crol_(P1,1);delay();}}}void ext1() interrupt 2{uchar i,j;P1=0x7f;times=12;for(i=0;i<3;i++){for(j=0;j<8;j++){P1=_cror_(P1,1);delay();}}}main(){EX0=1;EX1=1;IT0=0;IT1=1;PX0=0;PX1=1;while(1);}