欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
十字路口路燈模擬stm32源碼
[打印本頁]
作者:
發神經的
時間:
2018-4-24 18:59
標題:
十字路口路燈模擬stm32源碼
十字路口路燈模擬
stm32單片機源程序如下:
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
GPIO_InitTypeDef GPIO_InitStructure;
#define KEY_0 GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0)
#define KEY_1 GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)
#define KEY_2 GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_2)
#define LED_EW_R_ON GPIO_SetBits(GPIOA, GPIO_Pin_3);
#define LED_EW_R_OFF GPIO_ResetBits(GPIOA, GPIO_Pin_3);
#define LED_EW_G_ON GPIO_SetBits(GPIOA, GPIO_Pin_4);
#define LED_EW_G_OFF GPIO_ResetBits(GPIOA, GPIO_Pin_4);
#define LED_EW_Y_ON GPIO_SetBits(GPIOA, GPIO_Pin_5);
#define LED_EW_Y_OFF GPIO_ResetBits(GPIOA, GPIO_Pin_5);
#define LED_NS_R_ON GPIO_SetBits(GPIOC, GPIO_Pin_6);
#define LED_NS_R_OFF GPIO_ResetBits(GPIOC, GPIO_Pin_6);
#define LED_NS_G_ON GPIO_SetBits(GPIOC, GPIO_Pin_7);
#define LED_NS_G_OFF GPIO_ResetBits(GPIOC, GPIO_Pin_7);
#define LED_NS_Y_ON GPIO_SetBits(GPIOC, GPIO_Pin_8);
#define LED_NS_Y_OFF GPIO_ResetBits(GPIOC, GPIO_Pin_8);
char number=0,type=1; //閃爍次數,操作類型變量
void RCC_Configuration(void);
void LED_Config(void);
void Delay(int x);
void Traffic(void);
void fShowLight1(void);
void fShowLight2(void);
void fShowLight3(void);
void offLights(void);
/****************************************************************************
* 名 稱:void LED_Config(void)
* 功 能:LED 控制初始化函數
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
void LED_Config(void){
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_0|GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
/****************************************************************************
* 名 稱:int main(void)
* 功 能:主函數
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
int main(void)
{
RCC_Configuration(); //系統時鐘配置
LED_Config(); //LED控制配置
while (1)
{
if(KEY_0&&!KEY_1&&!KEY_2){
Traffic();
}
else if(KEY_1&&!KEY_0&&!KEY_2){
fShowLight1();
}
else if(KEY_2&&!KEY_0&&!KEY_1){
fShowLight3();
}
else{
offLights();
}
}
}
/****************************************************************************
* 名 稱:void RCC_Configuration(void)
* 功 能:系統時鐘配置為72MHZ
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
void RCC_Configuration(void)
{
SystemInit();
}
/****************************************************************************
* 名 稱:void Delay(int x)
* 功 能:延時函數
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
void Delay(int x)
{
char i;
while(x--) for(i=0;i<120;i++);
}
/****************************************************************************
* 名 稱:void Traffic(void)
* 功 能:交通燈切換函數
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
void Traffic(void)
{
switch(type)
{
case 1: //東西向綠燈與南北向紅燈亮
LED_EW_R_OFF;LED_EW_Y_OFF;LED_EW_G_ON;
LED_NS_R_ON;LED_NS_Y_OFF;LED_NS_G_OFF;
Delay(200);
type=2;
break;
case 2: //東西向黃燈閃爍,綠燈關閉
LED_EW_Y_ON;LED_EW_G_OFF;
Delay(10);
LED_EW_Y_OFF;LED_EW_G_OFF;
Delay(10);
if(++number!=3) return; //閃爍3次
number=0;
type=3;
break;
case 3: //東西向紅燈,南北向綠燈亮
LED_EW_R_ON;LED_EW_Y_OFF;LED_EW_G_OFF;
LED_NS_R_OFF;LED_NS_Y_OFF;LED_NS_G_ON;
Delay(200);
type=4;
break;
case 4: //南北向黃燈閃爍3次
LED_NS_Y_ON;LED_NS_G_OFF;
Delay(10);
LED_NS_Y_OFF;LED_NS_G_OFF;
Delay(10);
if(++number!=3) return;
number=0;
type=1;
}
}
/****************************************************************************
* 名 稱:void fShowLight1(void)
* 功 能:六燈走馬效果
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
void fShowLight1(void)
{
LED_EW_R_ON;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_ON;
Delay(200);
LED_EW_R_ON;LED_EW_G_ON;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_ON;LED_EW_Y_ON;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_ON;
LED_NS_R_ON;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_ON;LED_NS_G_ON;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_ON;LED_NS_Y_ON;
Delay(200);
}
/****************************************************************************
* 名 稱:void fShowLight2(void)
* 功 能:六燈閃爍效果
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
void fShowLight2(void)
{
LED_EW_R_ON;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_ON;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_ON;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_ON;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_ON;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_ON;
Delay(200);
}
/****************************************************************************
* 名 稱:void fShowLight3(void)
* 功 能:六燈反復流水效果
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
void fShowLight3(void)
{
LED_EW_R_ON;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_ON;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_ON;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_ON;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_ON;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_ON;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_ON;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_ON;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_ON;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
LED_EW_R_OFF;LED_EW_G_ON;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_OFF;
Delay(200);
}
/****************************************************************************
* 名 稱:void offLights(void)
* 功 能:關燈
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
void offLights(void){
LED_EW_R_OFF;LED_EW_G_OFF;LED_EW_Y_OFF;
LED_NS_R_OFF;LED_NS_G_OFF;LED_NS_Y_OFF;
}
/******************* (C) COPYRIGHT 2011 奮斗STM32 *****END OF FILE****/
復制代碼
所有資料51hei提供下載:
GPIO2.rar
(278.27 KB, 下載次數: 8)
2018-4-25 02:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1