◀ Previous Next ▶ Up ▲


witpoko.com


ครั้งแรกกับ C51 ผมยังคุม Interrupt ยังไม่ได้

เพิ่งขยับขึ้นมาเขียน ภาษา c ต้องการให้ p1.0 กระพริบเร็วP1.1 กระพริบช้า จากการInterrupt ของ Timer ผมผิดตรงไหนครับช่วยแนะนำหน่อยครับ code ที่ผมเขียนแบบนี้ครับ
#pragma SMALL
#include<reg51.h>
void delay (int count);
void timer_interrupt(void);
sbit Lamp1 =P1^0;
sbit Lamp2 =P1^1;
sbit Lamp3 =P1^2;
sbit sensor3 =P0^2;
char clk50m;
bit qflash,sflash;
void main(void)
{
clk50m=0;
P0 = 0xFF;
P1 = 0x00;
P2 = 0xF0;
delay(100);
sflash =0;
TMOD =0x01;
TH0 = 0x38;
TL0 = 0x00;
TR0 = 1;
ET0=1;
EA=1;

while(1)
{
if(clk50m<=10)
{
qflash=1;
}
else if (clk50m>11)
{
qflash=0;
}
if(clk50m>=20)
{
sflash=~sflash;
clk50m=0;
}
Lamp1 = qflash;
Lamp2 = sflash;
Lamp3 = sensor3;


}
}

void delay(int count)
{
int l,m;
for (l=0;l<count;l++)
for (m=0;m<500;m++);

}
void timer_interrupt(void) interrupt 1
{
TR0 = 0;
TH0 = 0x38;
TL0 = 0x00;
TF0 = 0;
clk50m++;
TR0 = 1;
}


จากคุณ : ปาณัสม์ -[ 28 ก.ค. 50 - 18:24:12 A:61.19.65.139 X: ]





กระทู้ยอดนิยม