[STM8] stm8 开发例程 一些基础外设-------LED

[复制链接]
678|7
 楼主| chenqiang10 发表于 2019-2-27 14:47 | 显示全部楼层 |阅读模式
本帖最后由 chenqiang10 于 2019-2-27 14:52 编辑


void LED_conf(void)
{
  PD_DDR|=0x0f;   /* 设置数据方向寄存器 1为输出,0为输入--查看STM8寄存器.pdf P87 */
  PD_CR1|=0x0f;   /* 设置推挽输出--查看STM8寄存器.pdf P88 */
  PD_CR2|=0x0f;   /* 设置输出频率 1为10M,0为2M--查看STM8寄存器.pdf P89 */

}


 楼主| chenqiang10 发表于 2019-2-27 14:48 | 显示全部楼层
/**************************************************************************
* 函数名:Set_Led_On
* 描述  :LED灯全亮
* 输入  :无
*
* 输出  :无
* 返回  :无
* 调用  :外部调用
*************************************************************************/
void Set_Led_On(void)
{
  PD_ODR&=0xf0;   /* 对数据寄存器写入值 写0亮,写1灭--查看STM8寄存器.pdf P85 */
}

 楼主| chenqiang10 发表于 2019-2-27 14:48 | 显示全部楼层
/**************************************************************************
* 函数名:Set_Led_Off
* 描述  :LED灯全灭
* 输入  :无
*
* 输出  :无
* 返回  :无
* 调用  :外部调用
*************************************************************************/
void Set_Led_Off(void)
{
  PD_ODR|=0x0f;   /* 对数据寄存器写入值 写0亮,写1灭--查看STM8寄存器.pdf P85 */
}

 楼主| chenqiang10 发表于 2019-2-27 14:50 | 显示全部楼层
/**************************************************************************
* 函数名:LED_Display
* 描述  :LED流水灯
* 输入  :无
*
* 输出  :无
* 返回  :无
* 调用  :外部调用
*************************************************************************/
void LED_Display(void)
{
  u8 PortVal;
  for(PortVal=0;PortVal<4;PortVal++)
  {
      PD_ODR =(u8)(~(1<<PortVal));    /* 移位再取反  */   
      Delay(0x1fff);    /* 延时一小段时间,否则看不出LED的亮灭效果 */
  }
}

 楼主| chenqiang10 发表于 2019-2-27 14:50 | 显示全部楼层
/**************************************************************************
* 函数名:LED_Display_Bit
* 描述  :用51编程风格实现LED0的亮灭
* 输入  :无
*
* 输出  :无
* 返回  :无
* 调用  :外部调用
*************************************************************************/
void LED_Display_Bit()
{
  PD0_out = 0;    /* PD0引脚输出0 */
  Delay(0x1fff);  
  PD0_out = 1;    /* PD0引脚输出1 */
  Delay(0x1fff);  
}

 楼主| chenqiang10 发表于 2019-2-27 14:51 | 显示全部楼层
/**************************************************************************
* 函数名:Delay
* 描述  :延时函数
* 输入  :nCount--要延时的计数值
*
* 输出  :无
* 返回  :无
* 调用  :内部调用
*************************************************************************/
static void Delay(u32 nCount)
{
  /* Decrement nCount value */
  while (nCount != 0)
  {
    nCount--;
  }

}

 楼主| chenqiang10 发表于 2019-2-27 14:52 | 显示全部楼层
压缩包如下:

2-LED.zip

587.06 KB, 下载次数: 6

木木guainv 发表于 2019-3-8 12:56 | 显示全部楼层
非常的清晰明了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

940

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部