STC89C52 시스템 중단
1707 단어 STC89C52 단편기
그것의 원리도를 보면 80C51에는 모두 4개의 레지스터(TCON,SCON,IE,IP)가 있고 첨부 파일에는 그녀들의 상세한 레지스터 예시도가 있다.
[img]/upload/attachment/88246/4f31826e-53a5-30c4-80d4-9b7af2ba7910.bmp[/img]
[img]/upload/attachment/88268/b0ac5d7a-6e71-3352-880c-35914bae90dc.bmp[/img]
인터럽트 요청을 하려면 먼저 IE에 있는 EA 로고 위치를 켜야 합니다. IE 레지스터의 주소가 0xA8이기 때문에 그 위치를 조작할 수 있습니다.EA 로고 비트는 전체 인터럽트 시스템의 총 스위치이기 때문에 이 단계를 빼놓을 수 없다.이어 EX0(0번 외부 인터럽트), ET0(0번 타이머 인터럽트), EX1(1번 외부 인터럽트), ET1(1번 외부 인터럽트), ET1(1번 타이머 인터럽트), ES(직렬 인터럽트)를 포함하여 인터럽트 번호의 IE에 해당하는 위치의 고전평을 만들어야 한다.위에 있는 것은 IE 중의 일부 특수 비트입니다.다음 단계는 레벨 트리거인지 펄스 트리거인지 지정하는 것이다. 이 단계는 TCON 레지스터를 조작하는 것이다. IT0을 1로 설정하면 펄스 트리거를 표시하고 0으로 설정하면 레벨 트리거를 표시한다. 이 부분은 0호 외부에서 중단된 일부 기본 설정이고 다른 중단 설정은 원리도를 참조하면 알 수 있다. 여기서 다시 반복하지 않는다.
다음은 판자를 꺼내서 시험을 진행할 수 있습니다. 레벨 트리거이기 때문에 P32를 접지, 즉 저레벨 트리거로 바꾸면 됩니다. 인터럽트 요청이 발생합니다.다음은 나의 예시 프로그램을 첨부하는데 발생하는 효과는 다음과 같다. 버저가 끊임없이 소리를 낼 것이다. 주: 프로그램은 손으로 쓴 것이기 때문에 디버깅을 한 적이 없기 때문에 반드시 통할 수 있을 것이라고 보장할 수 없다.
#include
sbit beep=P3^2;
int i,j;
void delay(unsigned char);//
void main()
{
EA=1;//
EX0=1;// 0
IT0=0;//
while(1)
{
beep = 0;
delay(100); //
interupt();//
}
}
//
void delay(unsigned char t)
{
for(i=0;i<50000;i++)
for(j=0;j}
//
void interupt() interrupt 0// ,
//interrupt ,0 0
{
beep = 1;
}
첨부 파일은 stc80c51 원리도와 80C52 인터럽트 레지스터 그림을 업로드하여 나중에 참고하도록 합니다