2012/12/04作業 2012/12/04作業

2012/12/04

 

 

//班級:電通四A 學號:9879512 姓名:吳清祥

#include <reg51.h>

sbit P1_4 = P1^4; // INPUT

sbit P3_5 = P3^5; // BUZZER

sbit P3_3 = P3^3; // PB_SW

int t = 64820; // So=698Hz, 65536-716=64820

void delay(int);

main()

{

unsigned char i;

int j;

IE = 0x84;

TMOD = 0x01;

TCON = 0x00;

P2 = 0xff;

while(1)

{

i = 0x00;

if(P1_4 == 0)

{

for (j = 1; j <= 10; j++)

{

P2 = ~i;

delay(40); // 20ms *40 = 800ms = 0.8s

i = ~i;

}

P2 = 0xff;

}

}

}

void delay(int count) // delay 20ms

{

int m, n;

for(m = 1; m <= count; m++)

{

for(n = 1; n <= 2000; n++)

{

;

}

}

}

void EX1_int(void) interrupt 2

{

int j;

for(j = 1; j <= 250; j++)

{

P3_5 = 1;

TH0 = t /256;

TL0 = t % 256;

TR0 = 1;

while(TF0 == 0)

{

;

}

TF0 = 0;

P3_5 = 0;

TH0 = t /256;

TL0 = t % 256;

TR0 = 1;

while(TF0 == 0)

{

;

}

TF0 = 0;

}

}