2. 인터럽트 기술을 사용하여 발광 다이오드가 매초 300ms 동안 깜박이는 기능을 하는 두 번째 번개 회로를 설계합니다.
호스트 주파수는 12MHz, C 언어입니다.
#include
sbit OUT=P1^2; //OUT 출력 포트 정의
main()
{
TMOD= 0x01; //모드 1 사용
TH0=(65536-10000)/256; //초기값 지정
TL0= ( 65536-10000)%256;
EA=1; //전체 인터럽트가 활성화되었습니다.
ET0=1; //타이머 인터럽트가 활성화되었습니다.
TR0= 1; //타이머 스위치가 켜져 있습니다.
while(1);
}
void Timer0_isr(void) 1을 사용하여 인터럽트 1
{
static unsigned char i;
TH0=(65536-10000)/256; //12M 수정 발진기 계산 재할당, 명령 주기 1uS,
//200mS 구형파의 반주기는 타이머로 인해 100mS입니다.
//최대값은 65536으로 65.536ms이므로
TL0=(65536- 10000)%256; //직접 타이밍 프로세서가 충분하지 않습니다. 루프 처리를 사용해야 합니다.
//타이밍 10ms, 그런 다음 10번 루프하고 10x10=100ms를 출력합니다.
i++;
if(i= =30)
{
i=0;
OUT=~OUT; 구형파 출력은 오실로스코프로 볼 수 있습니다.
}
}