标题:
STM8S-LCD-按键查询-按键中断源码
[打印本页]
作者:
liuxin549521
时间:
2018-1-3 09:28
标题:
STM8S-LCD-按键查询-按键中断源码
STM8S-LCD-按键查询-按键中断全部资料51hei下载地址:
STM8S_查询按键.zip
(272.23 KB, 下载次数: 26)
2018-1-3 09:28 上传
点击文件名下载附件
下载积分: 黑币 -5
STM8S_按键中断.zip
(263.23 KB, 下载次数: 24)
2018-1-3 09:28 上传
点击文件名下载附件
下载积分: 黑币 -5
STM8S_LCD.zip
(260.86 KB, 下载次数: 19)
2018-1-3 09:28 上传
点击文件名下载附件
下载积分: 黑币 -5
单片机源程序如下:
/* Includes ------------------------------------------------------------------*/
#include "stm8s.h"
#include "sysclock.h"
/* Private defines -----------------------------------------------------------*/
/* LED 端口定义 */
#define LED_PORT GPIOA
#define KEY_PORT GPIOD
#define KEY_EXTI_PORT EXTI_PORT_GPIOD
#define LED_1 GPIO_PIN_3
#define LED_2 GPIO_PIN_4
#define LED_3 GPIO_PIN_5
#define LED_4 GPIO_PIN_6
#define KEY_1 GPIO_PIN_0
#define KEY_2 GPIO_PIN_5
#define KEY_3 GPIO_PIN_6
#define KEY_4 GPIO_PIN_7
#define ON 0 /* 定义LED灯亮 -- 低电平*/
#define OFF 1 /* 定义LED灯灭 -- 高电平*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/*******************************************************************************
* 名称: Delay
* 功能: 简单的延时函数
* 形参: nCount -> 延时时间数
* 返回: 无
* 说明: 无
******************************************************************************/
void Delay(u32 nCount)
{
u32 i;
for(i=0;i<nCount;i++);
}
/*******************************************************************************
* 名称: LED_Init
* 功能: LED外设GPIO引脚初始化操作
* 形参: 无
* 返回: 无
* 说明: 无
******************************************************************************/
void LED_Init(void)
{
//定义LED的管脚为输出模式
GPIO_Init(LED_PORT, LED_1, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init(LED_PORT, LED_2, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init(LED_PORT, LED_3, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init(LED_PORT, LED_4, GPIO_MODE_OUT_PP_HIGH_FAST );
}
/*******************************************************************************
* 名称: LED_Operation
* 功能: LED 灯亮灭设置操作
* 形参: led -> 要操作的led灯
* state -> 亮还是灭
* 返回: 无
* 说明: 无
******************************************************************************/
void LED_Config(GPIO_Pin_TypeDef led, u8 state)
{
if(ON == state)
{
GPIO_WriteLow(LED_PORT, led);
}
else
{
GPIO_WriteHigh(LED_PORT, led);
}
}
/*******************************************************************************
* 名称: LED_Show
* 功能: 现流水灯
* 形参: 无
* 返回: 无
* 说明: 无
******************************************************************************/
void LED_Show(void)
{
LED_Config(LED_1, ON);
LED_Config(LED_2, OFF);
LED_Config(LED_3, OFF);
LED_Config(LED_4, OFF);
Delay(0x1ffff);
LED_Config(LED_1, OFF);
LED_Config(LED_2, ON);
LED_Config(LED_3, OFF);
LED_Config(LED_4, OFF);
Delay(0x1ffff);
LED_Config(LED_1, OFF);
LED_Config(LED_2, OFF);
LED_Config(LED_3, ON);
LED_Config(LED_4, OFF);
Delay(0x1ffff);
LED_Config(LED_1, OFF);
LED_Config(LED_2, OFF);
LED_Config(LED_3, OFF);
LED_Config(LED_4, ON);
Delay(0x1ffff);
}
/*******************************************************************************
* 名称: Key_Exti_Init
* 功能: 按键外设引脚初始化操作
* 形参: 无
* 返回: 无
* 说明: 无
******************************************************************************/
void Key_Exti_Init(void)
{
/* 与按键相连的引脚设置为输入模式 */
GPIO_Init(KEY_PORT, KEY_1, GPIO_MODE_IN_PU_IT);
/* 将KEY_PORT端口设置为下降沿触发中断--因为按键按下时产生一个低电平 */
EXTI_SetExtIntSensitivity(KEY_EXTI_PORT, EXTI_SENSITIVITY_FALL_ONLY);
}
int main(void)
{
/* 系统时钟初始化 */
SystemClock_Init();
Key_Exti_Init(); /* 外部中断初始化 */
enableInterrupts(); /* 开启总中断 */
LED_Init();
while (1)
{
/*放置你的代码*/
// LED_Show();
}
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval : None
*/
void assert_failed(u8* file, u32 line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{
}
}
#endif
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1