/**********************************************************
*文件名: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;
}
}
} |