立即注册 找回密码

微雪课堂

搜索
微雪课堂 首页 STM8 STM8单片机笑傲江湖 查看内容

STM8 时钟修改

2015-7-15 17:03| 发布者: waveshare-admin| 查看: 2747| 评论: 0

摘要: 系统功能  对STM8的时钟修改,并用LED进行显示,观察LED的闪烁速度是否有变化。   硬件设计LED控制电路原理图软件设计/*********************************************************************微 雪 电 子 Wave ...
系统功能

  对STM8的时钟修改,并用LED进行显示,观察LED的闪烁速度是否有变化。   

硬件设计


LED控制电路原理图

软件设计

/*********************************************************************
微 雪 电 子 WaveShare http://www.waveShare.net
目标系统: 基于STM8单片机 
应用软件: Cosmic CxSTM8 
说 明: 若用于商业用途,请保留此段文字或注明代码来源
深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权 
*********************************************************************/

#include <STM8S207S8.h>
#define LED_PORT PB_ODR

void Init_GPIO(void)
{
       PB_DDR = 0x0d;
       PB_CR1 = 0x0d; 
       PB_CR2 = 0x00;
}

void delay_ms(unsigned int ms)
{
       unsigned char i;
       while(ms!=0)
       {
              for(i=0;i<250;i++)
              {}
              for(i=0;i<75;i++)
              {}
              ms--;
       }
}
void main(void)
{
       unsigned char i;
       Init_GPIO();

       while (1)
       {
       //启用内部高速晶振且无分频16MHz
       CLK_SWCR|=0x02; //开启切换
       CLK_SWR=0xe1;
       while((CLK_SWCR & 0x01)==0x01);
       CLK_CKDIVR=0x00;
       CLK_SWCR&=(~0x02); //关闭切换
       for(i=0;i<10;i++)
       {
               LED_PORT=0xff;
              delay_ms(500);
              LED_PORT=(~0xff);
              delay_ms(500);
       }
       //启用内部高速晶振且8分频(内部始终分频)2MHz
       CLK_CKDIVR=0x18;
       for(i=0;i<5;i++)
       {
                LED_PORT=0xff;
              delay_ms(500);
              LED_PORT=(~0xff);
              delay_ms(500);
       }
       //启用外部高速晶振且16分频500KHz
       CLK_SWCR|=0x02; //开启切换
       CLK_SWR=0xb4;
       while((CLK_SWCR & 0x01)==0x01);
       CLK_CKDIVR=0x04;
       CLK_SWCR&=(~0x02); //关闭切换
       for(i=0;i<5;i++)
       {
              LED_PORT=0xff;
              delay_ms(500);
              LED_PORT=(~0xff);
              delay_ms(500);
       }
       //启用内部低速晶振且无分频
       CLK_SWCR|=0x02; //开启切换
       CLK_ICKR|=0x08; //使能内部低速晶振
       CLK_SWR=0xd2;
       while((CLK_SWCR & 0x01)==0x01);
       CLK_CKDIVR=0x00;
       CLK_SWCR&=(~0x02); //关闭切换
       for(i=0;i<5;i++)
       {
              LED_PORT=0xff;
              delay_ms(500);
              LED_PORT=(~0xff);
              delay_ms(500);
       }
       }
}


系统调试

观察观察LED的闪烁速度是否有明显的变化。

以上资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!


227

顶一下

刚表态过的朋友 (227 人)

上一篇:STM8 EEPROM下一篇:STM8 AD转换

最新评论

所有教程
STM8

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2019-10-22 08:44 , Processed in 0.016521 second(s), 18 queries .

Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc & Style Design

返回顶部