protous實(shí)驗(yàn)報(bào)告中斷系統(tǒng)的應(yīng)用(一).txt
約3頁(yè)TXT格式手機(jī)打開展開
protous實(shí)驗(yàn)報(bào)告中斷系統(tǒng)的應(yīng)用(一),中斷系統(tǒng)的應(yīng)用?一? 一、設(shè)計(jì)要求 主程序?qū)0端口進(jìn)行花樣顯示?顯示順序規(guī)律為?①8個(gè)led依次左移點(diǎn)亮?②8個(gè)led依次右移點(diǎn)亮?③led0、led2、led4、led6亮1s熄滅?led1、led3、led5、led7亮1 s熄滅?再led0、led2、led4、led6亮1s熄滅循環(huán)3次。中斷時(shí)?int0與按扭...
內(nèi)容介紹
此文檔由會(huì)員 dingpeng52 發(fā)布中斷系統(tǒng)的應(yīng)用?一? 一、設(shè)計(jì)要求 主程序?qū)0端口進(jìn)行花樣顯示?顯示順序規(guī)律為?①8個(gè)LED依次左移點(diǎn)亮?②8個(gè)LED
依次右移點(diǎn)亮?③LED0、LED2、LED4、LED6亮1s熄滅?LED1、LED3、LED5、LED7亮1 s
熄滅?再LED0、LED2、LED4、LED6亮1s熄滅……循環(huán)3次。中斷時(shí)?INT0與按扭K1連接?
使8個(gè)LED閃爍5次。
二、實(shí)驗(yàn)所需元器件? 單片機(jī)
AT89C51 瓷片電容CAP-22pf 晶振CRYSTAL
11.0592
電解電容CAP-ELEC
電阻RES 排阻RESPACK-8 發(fā)光二極管
LED-GREEN
發(fā)光二極管
LED-YELLOW
按扭BUTTON 發(fā)光二極管LED-RED 發(fā)光二極管
LED-BLUE
三、程序設(shè)計(jì)
外部中斷1的匯編程序中斷入口地址為03H?C程序中斷號(hào)為0。在編寫程序時(shí)?
首先要進(jìn)行中斷初始化的設(shè)置?并開啟中斷?然后若有中斷請(qǐng)求時(shí)?響應(yīng)中斷執(zhí)
行相應(yīng)操作?否則執(zhí)行默認(rèn)操作。中斷系統(tǒng)的應(yīng)用?一?和程序流程圖如圖所示
四、C語(yǔ)言程序?
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
const
tab[]={0xfe,0xfd,0xfb,0xf7,0x
ef,0xdf,0xbf,0x7f,
0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
0xfe,0xff,
0xaa,0x55,0xaa,0x55,0xaa,0x
55,0xff};
const
tab2[]={0xff,0x00,0xff,0x00,0
xff,0x00,0xff,0x00};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void int0() interrupt 0
{
uchar i;
for(i=0;i<10;i++)
{
P0=tab2[i];
delay(1000);
}
}
void INT0_init(void)
{
EX0=1;
IT0=1;
EA=1;
}
void main()
{
uchar num;
INT0_init();
while(1)
{
for(num=0;num<23;nu
m++)
{
P0=tab[num];
delay(1000);
}
}
}
開始
中斷設(shè)置
開中斷
是否發(fā)生中斷?
花樣顯示
結(jié)束
調(diào)用中斷子程序
中斷程序開始
中斷返回
保護(hù)現(xiàn)場(chǎng)
閃爍顯示
恢復(fù)現(xiàn)場(chǎng)
五、調(diào)試與仿真?