基于51單片機的電子溫度計Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.jpg (51.55 KB, 下載次數: 59)
下載附件
2018-1-10 00:57 上傳
0.jpg (109.4 KB, 下載次數: 55)
下載附件
2018-1-10 00:58 上傳
0.jpg (11.42 KB, 下載次數: 54)
下載附件
2018-1-10 00:58 上傳
單片機源程序如下:
- #include <reg51.h>
- #include "LCD1602.h"
- #include "temp.h"
- unsigned char datas[9]; //定義數組
- unsigned char *TempDisplay(int);
- void Delay100ms(unsigned int t);
- void Delay100ms(unsigned int t) //@12.000MHz
- {
- unsigned char i, j;
- i = 195;
- j = 138;
- do
- do
- {
- while (--j);
- } while (--i);
- while(--t);
- }
- /*******************************************************************************
- * 函數名 : main
- * 函數功能 : 主函數
- * 輸入 : 無
- * 輸出 : 無
- *******************************************************************************/
- void main()
- {
- bit k;
- LcdInit(); //初始化LCD1602
- LCD_disp_string(2,0,"thermometer");
- while(1)
- {
- Delay100ms(8);//1s鐘刷一次
- k = ~k;
- if(k) LCD_disp_char(2,0,'T');
- else LCD_disp_char(2,0,'t');
- TempDisplay(Ds18b20ReadTemp());
- LCD_disp_string(4,1,datas);
- }
- }
- /*******************************************************************************
- * 函數名 : LcdDisplay()
- * 函數功能 : LCD顯示讀取到的溫度
- * 輸入 : v
- * 輸出 : 無
- *******************************************************************************/
- unsigned char *TempDisplay(int temp) //lcd顯示
- {
- unsigned char dat[5],i=0;
- bit fu;
- float tp;
- if(temp< 0) //當溫度值為負數
- {
- fu = 1;
- //因為讀取的溫度是實際溫度的補碼,所以減1,再取反求出原碼
- temp=temp-1;
- temp=~temp;
- }
- else
- {
- fu = 0;
- }
- tp=temp;
- temp=tp*0.0625*100+0.5;
- //留兩個小數點就*100,+0.5是四舍五入,因為C語言浮點數轉換為整型的時候把小數點
- //后面的數自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進1了,小于0.5的就
- //算由?.5,還是在小數點后面。
-
- dat[0] = temp / 10000;
- dat[1] = temp % 10000 / 1000;
- dat[2] = temp % 1000 / 100;
- dat[3] = temp % 100 / 10;
- dat[4] = temp % 10;
-
- if(fu) datas[i++] = '-';
- if(dat[0]) datas[i++] = dat[0] + '0';
- if(dat[1] || (i-(unsigned char)fu)) datas[i++] = dat[1] + '0';
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
電子溫度計.rar
(628.67 KB, 下載次數: 69)
2018-1-9 18:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|