资源简介
实现DS18B20的测温实现,基于linux内核版本的,有QT界面,代码简洁已读,鲁棒性还行。PS:该程序为应用程序,非驱动程序!
代码片段和文件信息
#include “lcd.h“
#include
#include
#include
#include
#include
#include
#include
#include
#include
MyMainWindow::MyMainWindow()
{
setGeometry(00320240);
label1 = new QLabel(this);
label1 -> setGeometry(101030050);
label1 -> setText(“DS18B20 TEST“);
label1 -> setFont(QFont(“times“18QFont::Bold));
label1 -> setAlignment(Qt::AlignCenter);
label2 = new QLabel(this);
label2 -> setText(“Temperature is“);
label2 -> setFixedSize(16080);
label2 -> setFont(QFont(“Courier“10QFont::Light));
label2 -> setAlignment(Qt::AlignCenter|Qt::AlignLeft);
label3 = new QLabel(this);
label3 -> setText(“‘C“);
label3 -> setFont(QFont(“Courier“10QFont::Light));
label3 -> setAlignment(Qt::AlignCenter|Qt::AlignRight);
start = new QPushButton(“start“this);
start -> setMinimumSize(5040);
start -> setFont(QFont(“times“15QFont::Bold));
stop = new QPushButton(“stop“this);
stop -> setMinimumSize(5040);
stop -> setFont(QFont(“times“15QFont::Bold));
lcdnum = new QLCDNumber(this);
lcdnum -> setFixedSize(10080);//固定大小
lcdnum -> setSmallDecimalPoint(true);//显示一位小数
lcdnum -> setNumDigits(4);
lcdnum -> setSegmentstyle(QLCDNumber::Filled);
QPalette lcdp = lcdnum -> palette();
lcdp.setColor(QPalette::NormalQPalette::WindowTextQt::black);//前景色为黑色
lcdnum -> setPalette(lcdp);
QVBoxLayout *vbox = new QVBoxLayout(this);
QHBoxLayout *hbox1 = new QHBoxLayout();
QHBoxLayout *hbox2 = new QHBoxLayout();
QHBoxLayout *hbox3 = new QHBoxLayout();
vbox -> addLayout(hbox1);
vbox -> addLayout(hbox2);
vbox -> addLayout(hbox3);
hbox1 -> addWidget(label1);
hbox2 -> addWidget(label2);
hbox2 -> addWidget(lcdnum);
hbox2 -> addWidget(label3);
hbox3 -> addWidget(start);
hbox3 -> addWidget(stop);
timer = new QTimer(this);
connect(startSIGNAL(clicked())thisSLOT(start_time()));
connect(timerSIGNAL(timeout())thisSLOT(get_tmp()));
connect(stopSIGNAL(clicked())thisSLOT(stop_tmp()));
}
void MyMainWindow::start_time()
{
timer -> start(1000);
}
void MyMainWindow::get_tmp()
{
stop -> setEnabled(true);
start -> setEnabled(false);
fd = open(“/dev/TX2440-ds18b20“ 0);
if (fd < 0)
{
perror(“open device ds18b20“);
exit(1);
}
ret = read(fd&data4);
if(ret<0)
printf(“read ds18b20 error\n“);
printf(“read ds18b20\n“);
temp = data * 0.0625;
temp1= (int)(temp * 10 + 0.5);
z_s = temp1/10;
x_s = (float)(temp1%10);
wen_du = z_s + x_s/10;
printf(“Temperature is [%d.%d ‘C]\n“ temp1/10 temp1%10);
lcdnum -> display(wen_du);
::close(fd);
}
void MyMainWindow::stop_tmp()
{
stop -> setEnabled(false);
start -
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 35632 2010-05-06 15:37 ds18b20_time\ds18b20_time
文件 313 2010-05-06 15:37 ds18b20_time\ds18b20_time.pro
文件 3211 2010-05-06 15:36 ds18b20_time\lcd.cpp
文件 683 2010-05-06 14:33 ds18b20_time\lcd.h
文件 13948 2010-05-06 15:37 ds18b20_time\lcd.o
文件 9319 2010-05-06 15:37 ds18b20_time\Makefile
文件 2227 2010-05-06 14:47 ds18b20_time\moc_lcd.cpp
文件 7536 2010-05-06 14:47 ds18b20_time\moc_lcd.o
文件 21314 2011-10-27 13:39 ds18b20_time\ds18b20_time.pro.user
目录 0 2010-05-06 15:41 ds18b20_time
----------- --------- ---------- ----- ----
94183 10
相关资源
- 基于QT4的列车时刻表查询系统
- 1602+DS1302时钟+DS18B20
- QT编写的串口设备调试工具终极版
- Qt编写守护进程
- qt写的一个动感界面
- qt5串口程序
- QT获取天气程序
- myElectronicDictionary.rar
- Delaunay三角剖分
- vicsek模型的Qt实现
- QT4实现的给予QFTP类的FTP客户端程序
- QT进制间的转换,可供新手学习
- 简单、规范的Linux下的ds18b20驱动基于
- Qt实现的连连看游戏源码
- arm板上实现usb摄像头采集及显示(q
- 飞思卡尔DG128单片机ds18b20程序
- QT闹钟alarm
- qt gps 定位系统源代码
- QT 基于mainwindow添加一个文件菜单
- 简单环形条格进度条
- s3c2440裸机DS18B20程序
- qtjambi-eclipse-integration-4.5.2_01
- 基于TCP的网络聊天程序
- linux qt4.7 v4l2 YUV(YUYV) mmap 显示视频
- 基于QT的局域网聊天系统215855
- qt入门程序——读取txt文件
- 一个简单的 QT5编写的 串口工具代码
- 一个简单QT5编写的录音机代码
- Qt绘图实现
- 嵌入式Linux系统设计QT计算器
评论
共有 条评论