本帖最后由 紫气东升 于 2016-8-26 09:35 编辑
/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
#include <stm8l052c6.h>
void delay(unsigned int time);
void main(void)
{
unsigned char i=0;
PD_DDR=0x02; //设置PD1为输出模式
PD_CR1=0x02; //设置PD1为推挽输出
PD_CR2=0x02; //设置PD1输出速率为16mhz
PB_DDR=0x1e; //设置PB1~PB4为输出模式
PB_CR1=0x1e; //设置PB1~PB4为推挽输出
PB_CR2=0x1e; //设置PB1~PB4输出速率为16mhz
CLK_CKDIVR=0x07; //对HSI进行128分频,16MHZ/128=125KHZ
while(1)
{
PD_ODR=0xfd; //PD1(红)灭
switch(i)
{
case 0: PD_ODR=0xff;break; //PD1(红)亮
case 1: PB_ODR=0x02;break; //PB1继电器启动
case 2: PB_ODR=0x04;break; //PB2继电器启动
case 3: PB_ODR=0x08;break; //PB3继电器启动
case 4: PB_ODR=0x10;break; //PB4继电器启动
}
delay(12500);
i++;
if(i==5)
{
i=0;
}
}
}
void delay(unsigned int time)
{
while(time--);
}
继电器可以换成LED灯
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
中断服务程序里面也建议不要使用.尤其时间大于10毫秒的,小于10毫秒的延时,勉强可以.
一周热门 更多>