久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機LCD1602顯示+串口接收溫度 注釋十分詳細
[打印本頁]
作者:
1691109738
時間:
2017-5-24 18:28
標題:
51單片機LCD1602顯示+串口接收溫度 注釋十分詳細
隨便發的 初級的 希望有用
單片機源程序如下:
/*******************************************************************************
* 實驗名 :溫度顯示實驗
* 使用的IO :
* 實驗效果 :1602顯示溫度
* 注意 :
*******************************************************************************/
#include<reg51.h>
#include"lcd.h"
#include"temp.h"
uchar CNCHAR[6] = "攝氏度";
void LcdDisplay(int);
void UsartConfiguration();
/*******************************************************************************
* 函數名 : main
* 函數功能 : 主函數
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void main()
{
UsartConfiguration();
LcdInit(); //初始化LCD1602
LcdWriteCom(0x88); //寫地址 80表示初始地址
LcdWriteData('C');
while(1)
{
LcdDisplay(Ds18b20ReadTemp());
// Delay1ms(1000);//1s鐘刷一次
}
}
/*******************************************************************************
* 函數名 : LcdDisplay()
* 函數功能 : LCD顯示讀取到的溫度
* 輸入 : v
* 輸出 : 無
*******************************************************************************/
void LcdDisplay(int temp) //lcd顯示
{
unsigned char i, datas[] = {0, 0, 0, 0, 0}; //定義數組
float tp;
if(temp< 0) //當溫度值為負數
{
LcdWriteCom(0x80); //寫地址 80表示初始地址
SBUF='-';//將接收到的數據放入到發送寄存器
while(!TI); //等待發送數據完成
TI=0; //清除發送完成標志位
LcdWriteData('-'); //顯示負
//因為讀取的溫度是實際溫度的補碼,所以減1,再取反求出原碼
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
//留兩個小數點就*100,+0.5是四舍五入,因為C語言浮點數轉換為整型的時候把小數點
//后面的數自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進1了,小于0.5的就
//算由?.5,還是在小數點后面。
}
else
{
LcdWriteCom(0x80); //寫地址 80表示初始地址
LcdWriteData('+'); //顯示正
SBUF='+';//將接收到的數據放入到發送寄存器
while(!TI); //等待發送數據完成
TI=0; //清除發送完成標志位
tp=temp;//因為數據處理有小數點所以將溫度賦給一個浮點型變量
//如果溫度是正的那么,那么正數的原碼就是補碼它本身
temp=tp*0.0625*100+0.5;
//留兩個小數點就*100,+0.5是四舍五入,因為C語言浮點數轉換為整型的時候把小數點
//后面的數自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進1了,小于0.5的就
//算加上0.5,還是在小數點后面。
}
datas[0] = temp / 10000;
datas[1] = temp % 10000 / 1000;
datas[2] = temp % 1000 / 100;
datas[3] = temp % 100 / 10;
datas[4] = temp % 10;
LcdWriteCom(0x82); //寫地址 80表示初始地址
LcdWriteData('0'+datas[0]); //百位
SBUF = '0'+datas[0];//將接收到的數據放入到發送寄存器
while (!TI); //等待發送數據完成
TI = 0;
LcdWriteCom(0x83); //寫地址 80表示初始地址
LcdWriteData('0'+datas[1]); //十位
SBUF = '0'+datas[1];//將接收到的數據放入到發送寄存器
while (!TI); //等待發送數據完成
TI = 0;
LcdWriteCom(0x84); //寫地址 80表示初始地址
LcdWriteData('0'+datas[2]); //個位
SBUF = '0'+datas[2];//將接收到的數據放入到發送寄存器
while (!TI); //等待發送數據完成
TI = 0;
LcdWriteCom(0x85); //寫地址 80表示初始地址
LcdWriteData('.'); //顯示 ‘.’
SBUF = '.';//將接收到的數據放入到發送寄存器
while (!TI); //等待發送數據完成
TI = 0;
LcdWriteCom(0x86); //寫地址 80表示初始地址
LcdWriteData('0'+datas[3]); //顯示小數點
SBUF = '0'+datas[3];//將接收到的數據放入到發送寄存器
while (!TI); //等待發送數據完成
TI = 0;
LcdWriteCom(0x87); //寫地址 80表示初始地址
LcdWriteData('0'+datas[4]); //顯示小數點
SBUF = '0'+datas[4];//將接收到的數據放入到發送寄存器
while (!TI); //等待發送數據完成
TI = 0;
for(i=0; i<6; i++)
{
SBUF = CNCHAR[i];//將接收到的數據放入到發送寄存器
while (!TI); //等待發送數據完成
TI = 0;
}
}
/*******************************************************************************
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
LCD顯示 串口接收溫度.zip
(42.67 KB, 下載次數: 106)
2017-5-24 18:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
hyg1997
時間:
2018-7-25 20:29
用了之后還是沒顯示,我是新手,怎么辦?
作者:
aa98982879726
時間:
2018-7-25 23:16
謝樓主分享
作者:
bloodvioelt
時間:
2018-9-4 16:44
好文章,謝謝
作者:
有夢即遠方
時間:
2019-7-22 11:37
樓主,我的lcd為啥沒顯示,我用的51開發板
作者:
yue-yuexin
時間:
2022-11-24 01:03
好文章
作者:
1261867136qq
時間:
2022-11-25 08:28
hyg1997 發表于 2018-7-25 20:29
用了之后還是沒顯示,我是新手,怎么辦?
再多看幾篇類似的程序,結合電路畢竟涉及串口波特率
作者:
明月清風abc
時間:
2024-1-1 10:18
LcdWriteData('0'+datas[0]); //百位
SBUF = '0'+datas[0];//將接收到的數據放入到發送寄存器
為什么前面要‘0’,作用是干啥的
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美亚洲国产日韩
|
av黄色在线
|
亚洲欧洲日韩精品 中文字幕
|
97超碰免费
|
亚洲在线免费观看
|
av天天操
|
日韩久久久一区二区
|
最近最新中文字幕
|
高清视频一区二区三区
|
情侣酒店偷拍一区二区在线播放
|
日韩成人
|
日韩精品成人免费观看视频
|
在线免费看91
|
成人欧美一区二区三区色青冈
|
欧美精品欧美精品系列
|
国产欧美日韩一区二区三区在线观看
|
精品视频免费
|
国产乱码精品一品二品
|
97av在线
|
玖玖在线精品
|
欧美国产一区二区
|
美女三区
|
91婷婷韩国欧美一区二区
|
亚洲欧美一区二区三区1000
|
在线91
|
99久热
|
一区二区三区视频免费观看
|
91在线观看网址
|
精品欧美乱码久久久久久
|
亚洲a毛片
|
国产男女视频网站
|
久久69精品久久久久久久电影好
|
国产精品99久久久久久久vr
|
亚洲91av
|
成人性视频免费网站
|
欧美影院
|
国产精品久久99
|
成人在线视频免费观看
|
丝袜天堂
|
国产成人啪免费观看软件
|
日日天天
|