久久久久久久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);
 }
 }
}

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

相關文章

主站蜘蛛池模板: 亚洲欧美在线观看 | 中文字幕综合 | 福利视频一二区 | 四虎影院新地址 | 特a毛片| 国产激情91久久精品导航 | 中文日韩字幕 | 黄色网址在线免费播放 | 精品视频一区二区三区四区 | 国产精品一区二区三区久久久 | 一级毛片视频在线观看 | 国产91 在线播放 | 午夜精品在线观看 | 狠狠草视频| 成年男女免费视频网站 | 最新中文字幕第一页视频 | 91不卡 | 亚洲中午字幕 | 欧美在线 | 国产精品亚洲片在线播放 | 97色在线视频 | 国产精品久久久久婷婷二区次 | 亚洲小视频在线观看 | 欧美a区| 国产视频1区 | 欧美 日韩 国产 成人 | 国产乱码精品1区2区3区 | 午夜在线观看视频 | 97精品国产 | 亚洲高清av| 黄色一级大片在线观看 | 精品一区二区三区不卡 | 日韩精品一区二区三区在线播放 | 性色综合| 狠狠综合久久av一区二区小说 | 91精品国产91久久久久游泳池 | 精品电影 | 久久精品亚洲精品国产欧美 | 亚洲欧美中文日韩在线v日本 | 色久伊人 | 成人精品一区亚洲午夜久久久 |