/**********************************************************
*文件名:MS80F_IO_OUTPUT_TEST.C
*功能:MS80Fxx01的IO输出功能演示
*器件型号:MS80F0801
*振荡器:内部RC 4MHz
*引脚定义:
* ----------------
* VDD-----------|1(VDD) (GND)16|------------GND
* NC------------|2(RA2) (RA4)15|---------OUTPUT
* NC------------|3(RA1) (RA5)14|-------------NC
* NC------------|4(RA3) (RA0)13|-------------NC
* ----------------
* MS80F0801 SOP8
*说明:设置RA4为输出脚,每秒电平翻转一次
**********************************************************/
#include "syscfg.h";
#include "MS80Fxx01.h";
/*====================================================
*函数名:interrupt ISR
*功能:中断服务函数
*输入参数:无
*返回参数:无
====================================================*/
void interrupt ISR(void)
{
}
/*====================================================
*函数名:DEVICE_INIT
*功能:上电器件初始化
*输入参数:无
*返回参数:无
====================================================*/
void DEVICE_INIT(void)
{
OSCCON = 0B01010001; //Bit7:WDT振荡器频率=32KHz
//Bit6:4:内部RC频率=4MHz
MSCKCON = 0B00010000; //Bit6:禁止稳压输出
//Bit5:Timer2时钟源为系统时钟
//Bit4:使能LVR(注意:此位与配置位配合使用)
INTCON = 0B00000000; //暂禁止所有中断
OPTION = 0B00001000; //Bit4=1 WDT MODE,PS=000=1:1 WDT RATE
PORTA = 0B00000000;
TRISA = 0B00101111; //PA输入输出 0-输出 1-输入
WPUA = 0B00000000; //PA端口上拉控制 1-开上拉 0-关上拉
}
/*====================================================
*函数名称:DELAY_1MS
*功能:短延时函数(4MHz4T)
*输入参数:Time延时时间长度,延时时长Time1Ms
*返回参数:无
====================================================*/
void DELAY_10MS(void)
{
unsigned char a;
for(a=0;a<125;a++)
{
CLRWDT();
}
}
/*====================================================
*函数名称:DELAY_MS
*功能:短延时函数
*输入参数:Time延时时间长度,延时时长Time ms
*返回参数:无
====================================================*/
void DELAY_MS(unsigned char Time)
{
unsigned char a;
for(a=0;a<Time;a++)
{
DELAY_1MS();
}
}
/*====================================================
*函数名:main
*功能:主函数
*输入参数:无
*返回参数:无
====================================================*/
void main(void)
{
DEVICE_INIT(); //器件初始化
while(1)
{
CLRWDT();
if(RA1==1)
{
RA4 = 1;
DELAY_1MS(250);
DELAY_1MS(250);
}
if(RA0==1)
{
RA4 =1;
}
else
{
RA4 = 0;
}
}
} |