① 單片機單個外部中斷實驗,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();
}
}
② 求單片機(c51)外部中斷實驗的c語言代碼或者思路,要求在補充
#include<reg51.h>
#defineucharunsignedchar
voiddelay(void)
{
uchari,j;
for(i=0;i<200;i++)
for(j=0;j<120;j++);
}
voidext0()interrupt0
{
uchari;
for(i=0;i<8;i++)
{
P2=0x00;
delay();
P2=0xff;
delay();
}
}
main()
{
uchari;
EX0=1;
IT0=1;
EA=1;
while(1)
{
P2=~(1<<i);
delay();
i++;
i%=8;
}
}
③ 如何用匯編語言編寫單片機試驗中的定時中斷實驗
第一、設置定時器工作模式;第二、給TLX、THX賦初值;第三、開中斷;第四、啟動定時器。當然你要編好中斷服務程序了。下面給一個簡單的示範常式:程序運行後將在P1.0上產生1K的方波信號輸出。
ORG 0000H
LJMP START
ORG 000BH
LJMP TM0
ORG 0100H
START:
CLR EA
MOV SP,#60H
MOV TMOD,#01H
MOV TCON,#01H
MOV TH0,#0FEH
MOV TL0,#0BH
SETB TR0
SETB EA
SJMP $
TM0:
CLR TR0
MOV TH0,#0FEH
MOV TL0,#0BH
SETB TR0
CPL P1.0
RETI
END
④ 單片機實驗「定時/計數器及中斷」的一些問題
1.1)主程序各行作用如下:
第一行:設置定時器模式
第二行:設置定時器高位寄存器初值
第三行:設置定時器低位寄存器初值
第四行:T0定時器中斷使能
第五行:總中斷使能
第六行:打開T0定時器
第七行:死循環(主程序停留在此行)
主程序整體實現的功能:初始化定時器T0
1.2)void Timer0_Int(void)是定時器0中斷函數,每行作用如下:
第一行:重新設定定時器高位寄存器初值
第二行:重新設置定時器低位寄存器初值
第三行:如果P1_0 IO口是高電平則改為低電平,如是低電平改為高電平
整體實現的功能:P1_0 IO口高低電平1秒切換一次
媽呀,這么多問題,網上找找,應該有的
⑤ 單片機定時中斷實驗
跟你理清一下思路,你的問題就解決了。首先,你的程序很簡單,就是讓發光二極體1秒亮1秒滅。因此,你前提是要定時1秒,但51單片機無法定時1秒,因此,你的程序就要定時50毫秒,每到了50毫秒,你就讓num自加1,當num加到20時,換句話說,已經定時50毫秒20次了,那就是1秒咯,所以此有led1=~led1;
//讓發光管狀態取反,達到程序目的。另外,定時50毫秒你要給th0和tl0賦給初值,因此
th0=(65536-45872)/256;
//重新裝載初值tl0=(65536-45872)%256;才會有這兩句,但定時50毫秒後,你的初值也會隨之消失,因此才會在void
t0_time()這個函數中重新賦初值。的確像你所說的初值是裝滿了開始執行中斷,其實從你tmod=0x01;
//設置定時器0位工作模式1(m1,m0位0,1)這句已經開始定時了,而賦初值是為了准確的定時50毫秒罷了。明白了沒有?
(其實你可以這樣理解,定時計數器就好比一個空的瓶子,當你給tmod=0x01時,水就開始一滴一滴的往瓶子你滴,當瓶子滿了的時候,中斷就發生了。假如從一個空的瓶子滴到滿的瓶子定時是80毫秒的話,可你只需要定時50毫秒就夠了,所以就要一開始往瓶子里倒水,使滴水的起點不是空瓶子,這就是賦初值的作用。當瓶子滿了後,瓶子就會自動清空,重新從零開始。而第二次你再想定時50毫秒,你就必須從新再往瓶子里倒水,這就是第二次賦初值的作用)
⑥ 單片機用中斷和定時器控制時時鍾系統的工作原理是什麼實驗報告
數字時鍾實驗報告。根據查詢數字時鍾實驗報告得知,實驗1是通過開關向單片機提出中斷請求,單片機響應中斷進行計數,並通過LED數碼管指示出計數值,從而觀察中斷的請求、響應的過程。實驗2是通過單片機的定時器產生延時,控制LED閃爍的方法。通過本實驗學生可以掌握單片機中斷和定時器的工作原理及使用方法以及中斷和定時器的初始化程序、應用程序的編寫和調試,所以單片機用中斷和定時器控制時時鍾系統的工作原理出是數字適中實驗報告。工作原理就是工作的基本規律,多指事物運行的原由或者規律。