?? interrupt.c
字號:
//*************************************//
// //
// 在該頁添加所需要的中斷任務 //
// //
//*************************************//
#include "define.h"
/*********************************中斷服務函數************************************/
/*外部中斷0*/
void Input_Zero(void) interrupt 0 using 1
{
// TODO: 在此添加程序代碼
Int_flag = 1;
}
/*TO定時中斷器函數*/
void TIMER_Zero(void) interrupt 1 using 1
{
static uchar aa = 0;
uchar test;
TH0 = 0x4C;
TL0 = 0x00;
/*error*/
//TH0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) / 256; //給定時器賦初值
//TL0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) % 256;
/*error end*/
// TODO: 在此添加程序代碼
aa++;
if(aa == 20)
{
aa = 0;
Time_flag = 1;
}
}
/*外部中斷1*/
void Input_One(void) interrupt 2 using 1
{
// TODO: 在此添加程序代碼
}
/*T1定時中斷器函數*/
void TIMER_One(void) interrupt 3 using 1
{
/*error*/
//TH1 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) / 256; //給定時器賦初值
//TL1 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) % 256;
/*error end*/
// TODO: 在此添加程序代碼
}
/*串口中斷函數*/
void UART_Service(void) interrupt 4 using 1
{
unsigned char R_Data;
if(RI)
{
RI=0;
R_Data=SBUF;
Restart(R_Data);/*實時監測自定義下載命令*/
/*下面為實際的串口接收中斷處理*/
// TODO: 在此添加程序代碼
}
else
{
//TI=0;
/*下面為實際的串口發送中斷處理*/
// TODO: 在此添加程序代碼
}
}
void Restart(unsigned char R_Data)
{
static unsigned char di = 0;
if(R_Data == download[di])
{
di++;
if(download[di] == '\0')
{
EX0 = OFF; //關閉外部中斷0
ET0 = OFF; //關閉T0定時器中斷
TR0 = OFF; //關閉T0定時器
EX1 = OFF; //關閉外部中斷1
ET1 = OFF; //關閉T1定時器中斷
TR1 = OFF; //關閉T1定時器
ES = OFF; //關閉串口中斷
TR1 = OFF; //關閉T1定時器
EA = OFF; //關閉總中斷
/*error*/
//TH0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) / 256; //給定時器賦初值
//TL0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) % 256;
/*error end*/
/*此處延時1ms左右再重啟系統,姑且就用11.0592MHz的晶振作為系統時鐘來計算*/
TH0 = (65536 - SYSTEMRESTART) / 256;
TL0 = (65536 - SYSTEMRESTART) % 256;
TR0 = ON; //啟動T0定時器
//WDT_CONTR = 0x3f; //最長看門狗定時,時間至少為1.25秒
//while(!TF0); //等待定時器溢出
//IAP_CONTR = 0x60; /*定時時間到軟復位到ISP程序區*/
}
}
else
di=0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -