|
上一周做的課程設(shè)計(jì)
mcu90615傳感器 lcd1602顯示數(shù)據(jù)
單片機(jī)源程序如下:
- #include <reg52.h>
- #include "usart.h"
- #include "iic.h"
- #include "1602.h"
- /*
- Keil:uVision2
- MCU:STC90C516RD+
- 硬件接法:
- GY-MCU90615---STM32
- 1、GY-MCU90615_RX---STM32_TX,STM32復(fù)位將發(fā)送A5 45 EA給模塊
- 2、STM32_TX---FT232,STM32將數(shù)據(jù)上傳給上位機(jī)
- 3、GY-MCU90615_TX---STM32_RX,接收模塊溫度數(shù)據(jù)
- 軟件說(shuō)明:
- 該程序采用串口方式獲取模塊角度數(shù)據(jù),波特率9600
- 所以得用上位機(jī)先將模塊串口設(shè)置成9600,然后再進(jìn)行以上操作:
- 指令:A5 AE 53,模塊需復(fù)位生效
- 注:中斷函數(shù)位于stc_it.c
- */
- void send_com(u8 datas)
- {
- u8 bytes[3]={0};
- bytes[0]=0xa5;
- bytes[1]=datas;//功能字節(jié)
- USART_Send(bytes,3);//發(fā)送幀頭、功能字節(jié)、校驗(yàn)和
- }
- int main(void)
- {
- float TO=0,TA=0,tem=0;
- u8 sum=0,i=0;
- int datas[2]={0};
- Usart_Int(9600);
- send_com(0x45);//發(fā)送讀方位角指令
- Init_LCD1602();
- LCD1602_write_com(0x80);
- LCD1602_write_word("Temperature:");
- while(1)
- {
- if(Receive_ok)//串口接收完畢
- {
- for(sum=0,i=0;i<(TEMP_data[3]+4);i++)//TEMP_data[3]=4
- sum+=TEMP_data[i];
- if(sum==TEMP_data[i])//校驗(yàn)和判斷
- {
- TO=(float)((TEMP_data[4]<<8)|TEMP_data[5])/100;//得到真實(shí)溫度
- // datas[0]=(TEMP_data[4]<<8)|TEMP_data[5];//放大100倍的物體溫度
- TA=(float)((TEMP_data[6]<<8)|TEMP_data[7])/100;//得到真實(shí)溫度
- // datas[1]=(TEMP_data[6]<<8)|TEMP_data[7];//放大100倍的環(huán)境溫度
- // send_out(datas,2,0x45);//上傳給上位機(jī)
- tem=(float)TO+2.0;
- tem=(float)tem*100;
- LCD1602_write_com(0x80+0x41);
- LCD1602_write_data((int)tem%100000/10000 + 0x30);
- LCD1602_write_data((int)tem%10000/1000 + 0x30);
- LCD1602_write_data((int)tem%1000/100 + 0x30);
- LCD1602_write_word(".");
- LCD1602_write_data((int)tem%100/10 + 0x30);
- LCD1602_write_data((int)tem%10 + 0x30);
- LCD1602_write_word("`C");
- }
- Receive_ok=0;//處理數(shù)據(jù)完畢標(biāo)志
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
紅外溫度計(jì)程序.zip
(193 KB, 下載次數(shù): 65)
2017-12-10 22:34 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|