嵌入式系统开发与应用--交通灯系统

  任务

利用Qt-Creator编程实现各个路口红绿灯及时间显示,设计一个交通灯控制系统,交通灯参考

示意图如图1所示。

嵌入式系统开发与应用--交通灯系统_第1张图片

图1 交通灯示意图

  要求

1、基本要求

(1)按照题目要求使用Qt编程,独立设计系统所需界面。实现交通灯计时显示、按钮控制交

通灯启动和停止。

(2)在十字交叉路口,东南西北各方向都设置红、黄、绿色信号灯,红灯亮表示禁止通行,

绿灯亮表示可以通行,红灯灭之前5秒钟黄灯开始闪烁直到绿灯亮起后黄灯熄灭。其中东西方向为主干道,南北方向为次干道,各个方向分别设置两位数码管,用来显示红灯和绿灯倒计时间,东西方向时间一致,南北方向时间一致。

(3)启动时主干道为60秒倒计时,次干道为40秒倒计时。

(4)单独设计人行道指示灯标志,当禁止行走时为红灯,当可以横穿马路时,绿灯亮起,在

禁止通行之前10秒钟绿灯开始闪烁(以警示行人),最终红灯亮起绿灯熄灭。

2、扩展部分

(1)设定紧急状况行车,如遇火警、医护急救等。

(2)通过按键可随意设定主干道与次干道时间。

(3)真实场景仿真展示等。

  题目原理

       倒计时设计的系统框图如图2所示。

嵌入式系统开发与应用--交通灯系统_第2张图片

图2 交通灯系统框图

说明:可以改变方案,只要满足要求即可。

部分程序:

mainwindow.h:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

#include

#include

#include

#define STOP 1

#define RUN 2

namespace Ui {

    class MainWindow;

}

class MainWindow : public QMainWindow

{

    Q_OBJECT

public:

    explicit MainWindow(QWidget *parent = 0);

    ~MainWindow();

private:

    Ui::MainWindow *ui;

protected:

    void paintEvent(QPaintEvent *event);

public:

    QTimer *myTimer;

    int m_nMainIndex; //用来计数

    int m_nSecondIndex;

    //两组红绿灯时间参数(1:南北 2:东西)

    int count_red1;

    int count_green1;

    int count_yellow1;

    int count_red2;

    int count_green2;

    int count_yellow2;

    int carup_state;//向北行驶小车状态

    int carleft_state;//向西行驶小车状态

    int m_nClickCnt;

    bool m_bclick;

    int m_nmainTime; //主干道时间

    int m_nsecondTime; //次干道时间

public:

    void SetLed(QLabel* label, int color, int size,int type =0);

    void Init();

    void LightTime();//红绿灯时间交替

private slots:

    void on_btn_car_start_clicked();

    void on_btn_change_clicked();

    void on_btn_stop_clicked();

    void on_btn_start_clicked();

    void doProcessTimeOut1();//南北

    void doProcessTimeOut2();//东西

    void sleep(unsigned int msec);//延时函数,控制小车速度

    void carup_run();//小车正常向北行驶

    void carup_stop();//小车向北停止

    void up_through();//遇到红绿灯情况

};

#endif // MAINWINDOW_H

实现界面:

嵌入式系统开发与应用--交通灯系统_第3张图片

  需要全部资料可从资源里下载。

资料内容:

嵌入式系统开发与应用--交通灯系统_第4张图片

 也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

你可能感兴趣的:(嵌入式设计,qt,开发语言,1024程序员节)