没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式系统开发与应用-交通灯系统实训
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 90 浏览量
2023-01-18
00:49:59
上传
评论 5
收藏 148KB DOCX 举报
温馨提示
试读
32页
嵌入式系统开发与应用--交通灯系统实训
资源推荐
资源详情
资源评论
《嵌入式系统开发与应用--限选》实训
题目:交通灯系统
1 系统设计
1.1 设计要求
1.1.1 设计任务
利用 Qt-Creator 编程实现各个路口红绿灯及时间显示,设计一个交通灯控
制系统。
1.1.2 性能指标要求
(1)按照题目要求使用 Qt 编程,独立设计系统所需界面。实现交通灯计时
显示、按钮控制交通灯启动和停止。
(2)在十字交叉路口,东南西北各方向都设置红、黄、绿色信号灯,红灯
亮表示禁止通行,绿灯亮表示可以通行,红灯灭之前 5 秒钟黄灯开始闪烁直到绿
灯亮起后黄灯熄灭。其中东西方向为主干道,南北方向为次干道,各个方向分别
设置两位数码管,用来显示红灯和绿灯倒计时间,东西方向时间一致,南北方向
时间一致。
(3)启动时主干道为 60 秒倒计时,次干道为 40 秒倒计时。
(4)单独设计人行道指示灯标志,当禁止行走时为红灯,当可以横穿马路
时,绿灯亮起,在禁止通行之前 10 秒钟绿灯开始闪烁(以警示行人),最终红灯
亮起绿灯熄灭。
(5)通过按键可随意设定主干道与次干道时间。
(6)真实场景仿真展示等。
1.2 设计思路及设计框图
1.2.1 设计思路
交通灯倒计时设计的系统框图。
1.2.2 总体设计框图
交通灯界面设计图。
2 各个模块程序的设计
设置初试时间:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowTitle("Traffic Light");
m_nClickCnt = 0;
//设置默认时间
ui->lineEdit_mainTime->setText("60");
ui->lineEdit_secondTime->setText("40");
//获取初始时间
m_nmainTime = ui->lineEdit_mainTime->text().toInt();
m_nsecondTime = ui->lineEdit_secondTime->text().toInt();
Init();
LightTime();
ui->car_up->setPixmap(QPixmap("://new/prefix1/tu/up.png"));//添加
资源
//ui->car_up->setPixmap(QPixmap("://new/prefix1/picture/up.png"));//
添加资源
ui->car_up->setScaledContents(true);//图片自动适应 label 大小
}
界面规则设定:
MainWindow::~MainWindow()
{
delete ui;
}
// 该函数将 label 控件变成一个圆形指示灯,需要指定颜色 color 以及直径
size
// color 0:grey 1:red 2:green 3:yellow
// size 单位是像素
void MainWindow::SetLed(QLabel* label, int color, int size,int type)
{
// 将 label 中的文字清空
label->setText("");
// 先设置矩形大小
// 如果 ui 界面设置的 label 大小比最小宽度和高度小,矩形将被设置为最
小宽度和最小高度;
// 如果 ui 界面设置的 label 大小比最小宽度和高度大,矩形将被设置为最
大宽度和最大高度;
QString min_width = QString("min-width: %1px;").arg(size);
// 最小宽度:size
QString min_height = QString("min-height: %1px;").arg(size);
// 最小高度:size
QString max_width = QString("max-width: %1px;").arg(size);
// 最小宽度:size
QString max_height = QString("max-height: %1px;").arg(size);
// 最小高度:size
// 再设置边界形状及边框
QString border_radius = QString("border-radius: %1px;").arg(size/2);
// 边框是圆角,半径为 size/2
QString border; // 边框为 1px 黑色
// 最后设置背景颜色
QString background = "background-color:";
switch (color) {
case 0:
// 灰色
if(type == 1)
border = QString("border:2px solid rgb(255,0,0);");
else if(type ==2)
border = QString("border:2px solid rgb(0,255,0);");
else if(type ==3)
border = QString("border:2px solid rgb(255,255,0);");
break;
case 1:
// 红色
background += "rgb(255,0,0)";
border = QString("border:1px solid red;");
break;
case 2:
// 绿色
background += "rgb(0,255,0)";
border = QString("border:1px solid green;");
break;
case 3:
// 黄色
background += "rgb(255,255,0)";
border = QString("border:1px solid yellow;");
break;
case 4:
// 黄色
background += "rgb(255,255,255)";
break;
剩余31页未读,继续阅读
资源评论
- qq_589670392023-05-08资源有一定的参考价值,与资源描述一致,很实用,能够借鉴的部分挺多的,值得下载。
白茶丫
- 粉丝: 4w+
- 资源: 1734
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 历届(第1-21届)希望杯数学竞赛初一试题及答案(最新整理).doc全国数学邀请赛(264页资料)
- 水滴.psd
- TokenPocket_V2.1.2_release.apk
- Apache-druid-kafka-rce.yaml
- 基于C#的ASP.NET数据库原理及应用技术课程指导平台的开发
- 基于ROS的智能车轨迹跟踪算法的仿真与设计源码运用PID跟踪算法.zip.zip
- Bug Bounty Tip - i春秋Self-XSS变废为宝的奇思妙想
- 1991-2015年全国初中化学竞赛复赛试题汇编(212页)(24年竞赛复赛真题).docx天原杯
- Apache Flink 未授权访问+远程代码执行.pdf
- hadoop-基于hive的聊天数据分析报表可视化案例数据源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功