/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
//延时函数
#include "stm8s103f3p.h"
void delay_40us(void);
void delay_1ms(void);
void delay_ms(int);
void delay_1s(void);
void delay_s(int);
main()
{
PD_DDR=0x0f;
PD_CR1=0x0f;
PD_CR2=0x00;
PD_ODR=0x00;
while (1)
{
PD_ODR^=0x0f;
delay_s(50);
}
}
void delay_40us(void)//40us延时函数 大约是41us
{
int i=2;
while(--i);
/*
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");*/
}
void delay_1ms(void)//1ms延时函数
{
int i=108;
while(--i);
}
void delay_ms(int ms)//ms延时函数
{
int i;
while(--ms)
{
delay_1ms();
}
}
void delay_1s(void)//1s延时函数、没有误差
{
int i=5;
while(--i)
{
delay_ms(250);
}
}
void delay_s(int s)//s延时函数、没有误差
{
while(s--)
{
delay_1s();
}
}