以下是我將8051課本的程式拿來測式的程試
P3^7是接一個led,配合led_bl()控制led的閃爍。
而P3^4是接壓電喇叭來測試計時中斷服務程式的執行
這是一個記時中斷的測試 ,可以燒,但不知道怎麼搞的
燒好後將IC放到電路卻一點反應也沒有
連main主程式裡的第一行led_bl()都沒有執行
不知道是不是程式上有錯誤…所以到此請教大家
懇請知道的人給我指教一下囉
謝謝大家
/* tm.c test timer mode 0 500 us pulse */
#include <reg51.h>
sbit wled = P3^7;
sbit spk = P3^4;
int value;
unsigned char hi, lo;
/*-----------------------------*/
delay(int d)
{
int i, j;
for(i=0; i<d; i++)
for(j=0; j<200; j++) ;
}
/*----------------------------*/
led_bl()
{
int i;
for(i=0; i<2; i++)
{
wled=0; delay(50);
wled=1; delay(50);
}
}
/*-----------------------------------*/
void t0isr(void) interrupt 1 /*不知道這裡有沒有錯誤*/
/* using 1 */
{
/* MODE 0 */
TH0=hi;
TL0=lo;
spk=~spk;
}
/*------------------*/
main()
{
led_bl();
value=8192-500;
TH0=hi=value/32;
TL0=lo=value%32;
TMOD=0x00;
IE=0x82;
TR0=1;
while(1) led_bl();
}