找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3412|回复: 2
收起左侧

STM32设计交通灯控制系统 实现东西南北方向同时倒计时 且按键可分别控制东西、南北...

[复制链接]
ID:628074 发表于 2019-10-22 10:07 | 显示全部楼层 |阅读模式
STM32设计交通灯控制系统
实现东西南北方向同时倒计时
且按键可分别控制东西、南北方向通行时间
主要实验程序
#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "tftlcd.h"
#include "time.h"
#include "key.h"
void color_n_change(unsigned int clo)
        {
                LCD_Fill(110,130,130,150,clo);//1_deng_color
                LCD_Fill(110,210,130,230,clo);//2
        }
        void color_e_change(unsigned int clo)
        {
                LCD_Fill(70,170,90,190,clo);//3
                LCD_Fill(150,170,170,190,clo);//4               
        }
 int main()
{       
        u8 key;
        u8 north;
        u8 northg;
        u8 norths;
        u8 mmm;
        u8 eath;
        u8 eaths;
        u8 eathg;
        u8 i=0;
  u8 buf[20];
        u8 flag=1;
        u8 time;
        u8 timen;
        u8 timee;
        u8 timen1;
        u8 timen2;
        u8 timee1;
        u8 timee2;
        SysTick_Init(168);
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);   
        LED_Init();
        KEY_Init();
        TIM4_Init(10000-1,8400-1);  
        TIM3_Init(10000-1,8400-1);          
  USART1_Init(9600);
        TFTLCD_Init();                         
        FRONT_COLOR=BLACK;
        LCD_DrawLine(90,60 , 90, 150);//1_hua xian
        LCD_DrawLine(150,60 , 150, 150);//2
        LCD_DrawLine(30,150 , 90, 150);//3
        LCD_DrawLine(150,150 , 210, 150);//4
        LCD_DrawLine(30,210 , 90, 210);//5
        LCD_DrawLine(150,210 , 210, 210);//6
        LCD_DrawLine(90,210 , 90, 300);//7
        LCD_DrawLine(150,210 , 150, 300);//8
        LCD_DrawRectangle(110,130,130,150);//1_hua_deng
  LCD_DrawRectangle(110,210,130,230);//2
        LCD_DrawRectangle(70,170,90,190);//3
        LCD_DrawRectangle(150,170,170,190);//4
        while(1)
        {
                if(flag==1)//xiu gai
                {
                north=(TIM4_IRQHandler());//daojishi_zhihou
                northg=north%10;
                norths=north/10;
                sprintf((char *)buf,"%d",norths);
          LCD_ShowString(115,110,tftlcd_data.width,tftlcd_data.height,16,buf);//1
          LCD_ShowString(115,235,tftlcd_data.width,tftlcd_data.height,16,buf);//2
                sprintf((char *)buf,"%d",northg);
          LCD_ShowString(123,110,tftlcd_data.width,tftlcd_data.height,16,buf);//1
          LCD_ShowString(123,235,tftlcd_data.width,tftlcd_data.height,16,buf);//2
                eath=(TIM3_IRQHandler());
                eathg=eath%10;
                eaths=eath/10;
          sprintf((char *)buf,"%d",eaths);
          LCD_ShowString(50,175,tftlcd_data.width,tftlcd_data.height,16,buf);//3
         LCD_ShowString(175,175,tftlcd_data.width,tftlcd_data.height,16,buf);//4                   sprintf((char *)buf,"%d",eathg);
          LCD_ShowString(58,175,tftlcd_data.width,tftlcd_data.height,16,buf);//3
          LCD_ShowString(183,175,tftlcd_data.width,tftlcd_data.height,16,buf);//4
                if(TIM4_IRQHandler()==1)//north_xunhuan_1ci
                {
                        mmm++;               
                }
                if(mmm%2==1)//ji
                {
                        if(eath>5)
                                color_e_change(GREEN);
                        else
                                color_e_change(YELLOW);
                        if(north>5)
                                color_n_change(RED);
                        else
                                color_n_change(RED);
                }
                if(mmm%2==0)//ou
                {
                        if(eath>5)
                                color_e_change(RED);
                        else
                                color_e_change(RED);
                        if(north>5)
                                color_n_change(GREEN);
                        else
                                color_n_change(YELLOW);
                }
                key=KEY_Scan(0);
                if(key==KEY_UP)//nanbei
                {
                        flag=2;
                }
                if(key==KEY_DOWN)//dongxi
                {
                        flag=3;
                }
                }//flag1
                if(flag==2)//up_nanbei
                {
                        key=KEY_Scan(2);
                        timen=tiiiiimt(key,1);//nanbei
                        timen1=timen/10;//shi_wei
                        timen2=timen%10;//ge_wei
                        if(key==KEY_DOWN)//que ding
                        {
                                flag=1;//gai
                        }       
        LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,12,"time_setn:");
                        sprintf((char *)buf,"%d",timen1);
                        LCD_ShowString(100,10,tftlcd_data.width,tftlcd_data.height,16,buf);//1
                        sprintf((char *)buf,"%d",timen2);
                        LCD_ShowString(110,10,tftlcd_data.width,tftlcd_data.height,16,buf);//1
                }
                if(flag==3)//down_dongxi
                {
                        key=KEY_Scan(0);
                        timee=tiiiiimt(key,2);//dongxi
                        timee1=timee/10;//shi_wei
                        timee2=timee%10;//ge_wei
                        if(key==KEY_DOWN)//queding
                        {
                                flag=1;//gai_xianshi
                        }       
        LCD_ShowString(10,30,tftlcd_data.width,tftlcd_data.height,12,"time_sete:");
                        sprintf((char *)buf,"%d",timee1);
                        LCD_ShowString(100,30,tftlcd_data.width,tftlcd_data.height,16,buf);//1
                        sprintf((char *)buf,"%d",timee2);
                        LCD_ShowString(110,30,tftlcd_data.width,tftlcd_data.height,16,buf);//1
                }
        } }

回复

使用道具 举报

ID:770645 发表于 2021-1-12 17:02 | 显示全部楼层
有没有图
回复

使用道具 举报

ID:818477 发表于 2022-1-6 21:11 | 显示全部楼层
有所有程序吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表