📄 em78p372n_wdt.c
字号:
//**************************************************************************************
//以下程序动作情形为P50输出高约1秒;之后P50输出低约500ms,然后依前述情形循环。本程序利
//用看门狗定时器计时,使P50输出高约1秒,MCU即发生重置,此时P50输出低,而P50输出高的
//时间(即为WDT计时的时间)。
//**************************************************************************************
//MCU:EM78P372N
//Oscillator:IRC 4MHz
//Clock:2
//WDT: Enable
//编译软件:eUIDE version 1.02.09.07
#include "EM78P372N.H" //EM78P372N的头文件
#define DISI() _asm{disi}
#define WDTC() _asm{wdtc}
#define NOP() _asm{nop}
#define ENI() _asm{eni}
#define SLEP() _asm{slep}
#define uchar unsigned char
void DELAY();
extern int IntVecIdx; //occupied 0x10:rpage 0
void main()
{
WDTC();
DISI();
SCR=0X7F; //选择4MHz
WDTCR=0X0D; //禁止WDT,WDT分频比设为1:64
PORT5=0X00;
P5CR=0X0; //PORT5设为输出
DELAY();
WDTCR|=0X80; //使能WDT
P50=1;
while(1);
}
void DELAY()
{
unsigned int COUNTER0; //定义计数器,用来作延时
unsigned int COUNTER1;
unsigned int COUNTER2;
for(COUNTER2=0;COUNTER2<5;COUNTER2++)
{
for(COUNTER1=0;COUNTER1<100;COUNTER1++)
{
for(COUNTER0=0;COUNTER0<185;COUNTER0++)
{
NOP();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -