找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM8S-LCD-按键查询-按键中断源码

[复制链接]
跳转到指定楼层
楼主
ID:268765 发表于 2018-1-3 09:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM8S-LCD-按键查询-按键中断全部资料51hei下载地址:
STM8S_查询按键.zip (272.23 KB, 下载次数: 26)
STM8S_按键中断.zip (263.23 KB, 下载次数: 24)
STM8S_LCD.zip (260.86 KB, 下载次数: 19)


单片机源程序如下:
  1. /* Includes ------------------------------------------------------------------*/
  2. #include "stm8s.h"
  3. #include "sysclock.h"


  4. /* Private defines -----------------------------------------------------------*/
  5. /* LED 端口定义 */
  6. #define LED_PORT        GPIOA       
  7. #define KEY_PORT        GPIOD
  8. #define KEY_EXTI_PORT   EXTI_PORT_GPIOD

  9. #define LED_1       GPIO_PIN_3
  10. #define LED_2       GPIO_PIN_4
  11. #define LED_3       GPIO_PIN_5
  12. #define LED_4       GPIO_PIN_6

  13. #define KEY_1       GPIO_PIN_0
  14. #define KEY_2       GPIO_PIN_5
  15. #define KEY_3       GPIO_PIN_6
  16. #define KEY_4       GPIO_PIN_7

  17. #define ON  0                /* 定义LED灯亮 -- 低电平*/
  18. #define OFF 1                /* 定义LED灯灭 -- 高电平*/
  19. /* Private function prototypes -----------------------------------------------*/
  20. /* Private functions ---------------------------------------------------------*/

  21. /*******************************************************************************
  22. * 名称: Delay
  23. * 功能: 简单的延时函数
  24. * 形参: nCount -> 延时时间数
  25. * 返回: 无
  26. * 说明: 无
  27. ******************************************************************************/
  28. void Delay(u32 nCount)
  29. {
  30.         u32 i;
  31.         for(i=0;i<nCount;i++);      
  32. }


  33. /*******************************************************************************
  34. * 名称: LED_Init
  35. * 功能: LED外设GPIO引脚初始化操作
  36. * 形参: 无
  37. * 返回: 无
  38. * 说明: 无
  39. ******************************************************************************/
  40. void LED_Init(void)
  41. {      
  42.         //定义LED的管脚为输出模式
  43.         GPIO_Init(LED_PORT, LED_1, GPIO_MODE_OUT_PP_HIGH_FAST );
  44.         GPIO_Init(LED_PORT, LED_2, GPIO_MODE_OUT_PP_HIGH_FAST );
  45.         GPIO_Init(LED_PORT, LED_3, GPIO_MODE_OUT_PP_HIGH_FAST );       
  46.         GPIO_Init(LED_PORT, LED_4, GPIO_MODE_OUT_PP_HIGH_FAST );       
  47. }

  48. /*******************************************************************************
  49. * 名称: LED_Operation
  50. * 功能: LED 灯亮灭设置操作
  51. * 形参: led -> 要操作的led灯
  52. *                  state -> 亮还是灭
  53. * 返回: 无
  54. * 说明: 无
  55. ******************************************************************************/
  56. void LED_Config(GPIO_Pin_TypeDef led, u8 state)
  57. {
  58.     if(ON == state)
  59.     {
  60.         GPIO_WriteLow(LED_PORT, led);
  61.     }
  62.     else
  63.     {
  64.         GPIO_WriteHigh(LED_PORT, led);
  65.     }
  66. }


  67. /*******************************************************************************
  68. * 名称: LED_Show
  69. * 功能: 现流水灯
  70. * 形参: 无
  71. * 返回: 无
  72. * 说明: 无
  73. ******************************************************************************/
  74. void LED_Show(void)
  75. {
  76.     LED_Config(LED_1, ON);
  77.     LED_Config(LED_2, OFF);
  78.     LED_Config(LED_3, OFF);
  79.     LED_Config(LED_4, OFF);
  80.     Delay(0x1ffff);
  81.     LED_Config(LED_1, OFF);
  82.     LED_Config(LED_2, ON);
  83.     LED_Config(LED_3, OFF);
  84.     LED_Config(LED_4, OFF);
  85.     Delay(0x1ffff);
  86.     LED_Config(LED_1, OFF);
  87.     LED_Config(LED_2, OFF);
  88.     LED_Config(LED_3, ON);
  89.     LED_Config(LED_4, OFF);
  90.     Delay(0x1ffff);
  91.     LED_Config(LED_1, OFF);
  92.     LED_Config(LED_2, OFF);
  93.     LED_Config(LED_3, OFF);
  94.     LED_Config(LED_4, ON);
  95.     Delay(0x1ffff);
  96.    
  97. }


  98. /*******************************************************************************
  99. * 名称: Key_Exti_Init
  100. * 功能: 按键外设引脚初始化操作
  101. * 形参: 无
  102. * 返回: 无
  103. * 说明: 无
  104. ******************************************************************************/
  105. void Key_Exti_Init(void)
  106. {
  107.           /* 与按键相连的引脚设置为输入模式 */
  108.     GPIO_Init(KEY_PORT, KEY_1, GPIO_MODE_IN_PU_IT);
  109.        
  110.         /* 将KEY_PORT端口设置为下降沿触发中断--因为按键按下时产生一个低电平 */
  111.     EXTI_SetExtIntSensitivity(KEY_EXTI_PORT, EXTI_SENSITIVITY_FALL_ONLY);
  112.    


  113. }

  114. int main(void)
  115. {
  116.   
  117.   /* 系统时钟初始化 */
  118.   SystemClock_Init();
  119.   
  120.   Key_Exti_Init();        /* 外部中断初始化 */
  121.   
  122.   enableInterrupts();         /* 开启总中断 */
  123.   LED_Init();
  124.   while (1)
  125.   {
  126.     /*放置你的代码*/
  127. //   LED_Show();
  128.   }
  129.   
  130. }

  131. #ifdef USE_FULL_ASSERT

  132. /**
  133.   * @brief  Reports the name of the source file and the source line number
  134.   *   where the assert_param error has occurred.
  135.   * @param file: pointer to the source file name
  136.   * @param line: assert_param error line source number
  137.   * @retval : None
  138.   */
  139. void assert_failed(u8* file, u32 line)
  140. {
  141.   /* User can add his own implementation to report the file name and line number,
  142.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  143.   /* Infinite loop */
  144.   while (1)
  145.   {
  146.   }
  147. }
  148. #endif


复制代码


评分

参与人数 1黑币 +90 收起 理由
admin + 90

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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