基于stm32单片机智能交通灯设计Proteus仿真

  • Post author:
  • Post category:其他



资料编号:179    下面是仿真功能视频演示:

179-基于stm32单片机智能交通灯设计Proteus仿真

功能讲解:

采用stm32单片机作为控制CPU,4个双位数码管作为东西南北倒计时显示器,红黄绿灯代表路灯,东西向10s绿灯,南北向10s红灯 全部黄灯5s 东西向10s红灯,南北向10s绿灯 ,系统进行循环运行,模拟出智能交通灯的效果,全套仿真资料齐全:

下面是相关程序展示:

void Key_GPIO_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

/*开启按键GPIO口的时钟*/

KEY1_GPIO_CLK_ENABLE();

KEY2_GPIO_CLK_ENABLE();

KEY3_GPIO_CLK_ENABLE();

/*选择按键的引脚*/

GPIO_InitStructure.Pin = KEY1_PIN;

/*设置引脚为输入模式*/

GPIO_InitStructure.Mode = GPIO_MODE_INPUT;


/*设置引脚不上拉也不下拉*/

GPIO_InitStructure.Pull = GPIO_NOPULL;

/*使用上面的结构体初始化按键*/

HAL_GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure);

/*选择按键的引脚*/

GPIO_InitStructure.Pin = KEY2_PIN|KEY3_PIN;


/*使用上面的结构体初始化按键*/

HAL_GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStructure);


}

/**

* @brief   检测是否有按键按下

* @param   具体的端口和端口位

*        @arg GPIOx: x可以是(A…G)

*        @arg GPIO_PIN 可以是GPIO_PIN_x(x可以是1…16)

* @retval  按键的状态

*        @arg KEY_ON:按键按下

*        @arg KEY_OFF:按键没按下

*/

uint8_t Key_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)

{

/*检测是否有按键按下 */

if(HAL_GPIO_ReadPin(GPIOx,GPIO_Pin) == KEY_ON )

{

/*等待按键释放 */

while(HAL_GPIO_ReadPin(GPIOx,GPIO_Pin) == KEY_ON);

return     KEY_ON;

}

else

return KEY_OFF;

}

下面是该资料的分享下载链接:


https://pan.baidu.com/s/10EzgmZmLutJWxFe_otot2g?pwd=jhp6



版权声明:本文为m0_74295839原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。