久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

STM32簡易交通燈設計(定時可調)

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年10月21日   【字體:

//按鍵key1 設置紅燈時間
  按鍵key2 設置綠燈時間
  按鍵key3 設置黃燈時間

 
#include <stm32f10x_lib.h>
#include "sys.h"

 
#include "delay.h"
#include "usart.h"
#include "stdlib.h"

 
static int G=0,R=0,Y=0;   //設置綠,紅,黃燈時間變量

 
#include "lcd.h"
#include "key.h"
#include "time.h"

 
//-----------  按鍵函數----------
void scan_key1()
{
static u8 i,j;
if(key1==0)
{
if(i==0)
{
 j++;
 if(j>3)
 {
  i=1;j=0;
  R++;
  if(R>20)R=0;
printf("key1 is inputed \r\n");
 }
}
}
else
{
i=j=0;
}
}

 
void scan_key2()
{
  static u8 i,j;
if(key2==0)
{
if(i==0)
{
 j++;
 if(j>3)
 {
  i=1;j=0;
  G++;
  if(G>20)G=0;
   printf("key2 is inputed. \r\n");
 }
}
}
else
{
i=j=0;
}
}

 
void scan_key3()
{
  static u8 i,j;
if(key3==1)
{
if(i==0)
{
 j++;
 if(j>3)
 {
  i=1;j=0;
  Y++;
  if(Y>20)Y=0;
   printf("key3 is inputed. \r\n");
 }
}
}
else
{
i=j=0;
}
}

 

 
//各指示燈顯示秒數函數
void LED_RED(u8 k)
{
 LCD_ShowNum(120,55,k,2,16);
}
void LED_YELLOW(u8 k)
{
 LCD_ShowNum(120,145,k,2,16);
}
void LED_GREEN(u8 k)
{
 LCD_ShowNum(120,235,k,2,16);
}

 
//-----定時設置函數-------
void LED_SET_GREEN(u8 k)
{
  LCD_ShowNum(160,235,k,2,16);

 
}
void LED_SET_YELLOW(u8 k)
{
 LCD_ShowNum(160,145,k,2,16);
}
void LED_SET_RED(u8 k)
{
 LCD_ShowNum(160,55,k,2,16);
}

 
//-----定時器中斷函數---掃描按鍵和顯示設定值用----
void TIM3_IRQHandler(void)
{
 if(TIM3->SR&0x0001)
 {

 
  scan_key1();
  scan_key2();
  scan_key3();
   LED_SET_RED(R);
 LED_SET_GREEN(G);
 LED_SET_YELLOW(Y);
 }
 TIM3->SR=~(1<<0);
}

 
//------主函數-----------
int main(void)
 u16 code;   //TFT驅動芯片代號
 int i;
 Stm32_Clock_Init(9);
 delay_init(72);
 uart_init(72,9600);
 printf("uart is ok. \r\n");
 Timer_init(300,7199);   //定時器初始化 設定溢出時間是 30ms 
 printf("time_init is ok. \r\n");
 LCD_Init(); //TFT-LCD初始化
 printf("lcd_init is ok.\r\n");
 key_init();     //按鍵I/O口設置初始化
 printf("key_init is ok.\r\n");
 JTAG_Set(JTAG_SWD_DISABLE); //關閉JTAG調試器
 code=LCD_ReadReg(0x0000);
 delay_ms(500);
 printf("deiver code is %ld",code); //讀取驅動芯片型號是發送到串口
 LCD_Fill(30,200,100,270,BLACK);
 LCD_Fill(30,110,100,180,BLACK);
 LCD_Fill(30,20,100,90,BLACK);
 LCD_ShowString(110,15,"Show");
 LCD_ShowString(110,30,"Time");
 LCD_ShowString(160,15,"Set ");
 LCD_ShowString(160,30,"Time");
 LED_GREEN(0);  
 LED_YELLOW(0);
 LED_RED(0);
  while(1)
 {
 for(i=G;i>=0;i--)  //綠燈控制
 {
  LED_GREEN(i);   
  LCD_Fill(30,200,100,270,GREEN);
 delay_ms(1000);
 LCD_Fill(30,200,100,270,BLACK);
 delay_ms(1000);
 }
 for(i=Y;i>=0;i--) //黃燈控制
 {
  LED_YELLOW(i);
  LCD_Fill(30,110,100,180,YELLOW);
  delay_ms(1000);
  LCD_Fill(30,110,100,180,BLACK);
  delay_ms(1000);
 }
 for(i=R;i>=0;i--) //紅燈控制
 {
  LED_RED(i);
  LCD_Fill(30,20,100,90,RED);
  delay_ms(1000);
  LCD_Fill(30,20,100,90,BLACK);
  delay_ms(1000);
 }
 }
}

//-------各類庫函數省略---------
關閉窗口

相關文章

主站蜘蛛池模板: av国产精品| 国产区久久 | 免费看黄色国产 | 欧美成人精品 | 在线观看国产www | 在线观看国产视频 | 欧美精品一区三区 | 国产亚洲成av人片在线观看桃 | 亚洲三区视频 | 亚洲精品视频免费观看 | 国产精品永久免费视频 | 色综合久久久久 | 国产精品18久久久久久白浆动漫 | 亚洲高清一区二区三区 | 免费看黄色小视频 | 欧美极品在线观看 | 亚洲成人av| 成人免费在线视频 | 亚洲精品久久久一区二区三区 | 精品视频一区二区三区四区 | 天天玩天天操天天干 | 国产精品久久久久久久久动漫 | 国产精品99久久久久久宅男 | 欧美亚洲激情 | 伊人中文字幕 | 国产欧美日韩二区 | 2019中文字幕视频 | 久久久青草婷婷精品综合日韩 | 国产精品久久久久久久久大全 | 91精品国产一区二区在线观看 | 免费污视频| 一区二区三区视频在线 | 精品欧美色视频网站在线观看 | 亚洲韩国精品 | 欧美激情在线播放 | 99精品欧美一区二区蜜桃免费 | 国产精品欧美一区二区三区不卡 | 亚洲视频一区在线观看 | 青青久久 | 国产综合在线视频 | 激情久久av一区av二区av三区 |