51微控制器,電路圖如下,要求8個LED同時亮,或者同時滅,每中斷一次變反一次,編寫程式
你這個圖也不對呀,建議你自己捉摸一下。另樓上給的程式和這個圖也對不上呀,不能用的。
下列程式,經過除錯,完全符合題目要求。
ORG 0000H
LJMP START
XRL P1, #255
RETI
START:
SETB IT0
SETB EX0
SETB EA
SJMP $
END
#include
#define uchar unsigned char
uchar a
void main()
{
a=0;
EA=1; //開總中斷
EX0=1; //開外部中斷0
IT0=1; //跳變沿觸發
P1=0; //全亮
while(1); //程式在此迴圈等待中斷
}
void rupt()interrupt 0
{
a=~a;//每來一次中斷,取反
P1=a;
}
//對51不是很熟悉了,抄來的,自己修改了下。模擬了,沒有問題
#include
#include
void timer0_ISR(void) interrupt 1 using 3
{
P1 = ~P1;
TL0 = 0XFF;
TH0 = 0XFF;
TF0 = 0;
}
void timer_init(void)
{
IE=0x82; //寮€鎬諱腑鏂璄A錛屽厑璁稿畾鏃跺櫒0涓柇ET0
TCON=0x00; //鍋滄瀹氭椂鍣紝娓呴櫎鏍囧織
TMOD=0x02; //宸ヤ綔鍦ㄥ畾鏃跺櫒0鐨勬ā寮?涓?
TH0=0x38; //璁劇疆閱嶈澆鍊?
TL0=0x38; //璁劇疆瀹氭椂鍣ㄥ垵鍊?
TR0=1; //鍚姩瀹氭椂鍣?
}
void main(void)
{ //P1 = 0XFF;
timer_init();
while (1)
;
}
圖是對的·不會就不要瞎說·同求高手解答