找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3956|回复: 0
打印 上一主题 下一主题
收起左侧

stm8 GPIO输出芯片流水灯控制源程序 IAR写的

[复制链接]
跳转到指定楼层
楼主
ID:300937 发表于 2018-4-2 16:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
适合stm8初学者  
流水灯控制
源程序   

单片机源程序如下:
  1. /*  添加库函数头文件 */
  2. #include "stm8s.h"


  3. #define     LED1_ON()       GPIO_WriteLow(GPIOD , GPIO_PIN_2) //LED1亮
  4. #define     LED2_ON()       GPIO_WriteLow(GPIOC , GPIO_PIN_7) //LED2亮
  5. #define     LED3_ON()       GPIO_WriteLow(GPIOC , GPIO_PIN_6) //LED3亮
  6. #define     LED4_ON()       GPIO_WriteLow(GPIOC , GPIO_PIN_3) //LED4亮

  7. #define     LED1_OFF()      GPIO_WriteHigh(GPIOD , GPIO_PIN_2) //LED1灭
  8. #define     LED2_OFF()      GPIO_WriteHigh(GPIOC , GPIO_PIN_7) //LED2灭
  9. #define     LED3_OFF()      GPIO_WriteHigh(GPIOC , GPIO_PIN_6) //LED3灭
  10. #define     LED4_OFF()      GPIO_WriteHigh(GPIOC , GPIO_PIN_3) //LED4灭


  11. /*******************************************************************************
  12. **函数名称:void delay(unsigned int ms)     Name: void delay(unsigned int ms)
  13. **功能描述:大概延时
  14. **入口参数:unsigned int ms   输入大概延时数值
  15. **输出:无
  16. *******************************************************************************/
  17. void delay(unsigned int ms)
  18. {
  19.   unsigned int x , y;
  20.   for(x = ms; x > 0; x--)           /*  通过一定周期循环进行延时*/
  21.     for(y = 3000 ; y > 0 ; y--);
  22. }

  23. /*******************************************************************************
  24. **函数名称:void InitLED()
  25. **功能描述:初始化LED函数
  26. **入口参数:无
  27. **输出:无
  28. *******************************************************************************/
  29. void InitLED()
  30. {
  31.   //设置PD2为快速推挽输出 ,LED1
  32.   GPIO_Init(GPIOD , GPIO_PIN_2 , GPIO_MODE_OUT_PP_LOW_FAST);  

  33.   //设置PC7为快速推挽输出 ,LED2
  34.   GPIO_Init(GPIOC , GPIO_PIN_7 , GPIO_MODE_OUT_PP_LOW_FAST);  
  35.   
  36.   //设置PC6为快速推挽输出 ,LED3
  37.   GPIO_Init(GPIOC , GPIO_PIN_6 , GPIO_MODE_OUT_PP_LOW_FAST);  
  38.   
  39.   //设置PC3为快速推挽输出 ,LED4
  40.   GPIO_Init(GPIOC , GPIO_PIN_3 , GPIO_MODE_OUT_PP_LOW_FAST);

  41. }

  42. /* 主函数 */
  43. int main(void)
  44. {
  45.   //内部时钟为1分频 = 16Mhz
  46.   CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
  47.   InitLED();              //调用LED初始化函数
  48.   while(1)
  49.   {
  50.      LED1_ON();     //点亮LED1
  51.      LED2_ON();     //点亮LED2
  52.      LED3_ON();     //点亮LED3
  53.      LED4_ON();     //点亮LED4
  54.      delay(1000);   //空跑大概延时
  55.      LED1_OFF();    //点灭LED1
  56.      LED2_OFF();    //点灭LED2
  57.      LED3_OFF();    //点灭LED3
  58.      LED4_OFF();    //点灭LED4
  59.      delay(1000);   //空跑大概延时
  60.   }
  61. }
复制代码

所有资料51hei提供下载:
iar工程.7z (264.06 KB, 下载次数: 30)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表