|
温度传感器DS18B20在LCD12864上显示。
程序分为main.c+temp.c+temp.h+lcd12864.c+lcd12864.h
不知道为什么程序中的注释全变成了?,要怎么弄?
单片机源程序如下:
- #include<reg52.h>
- #include<temp.h>
- #include<lcd12864.h>
- typedef unsigned char u8;
- typedef unsigned int u16;
- void TIMER_Configuration(); //初始化定时器
- unsigned char DisplayData[8];
- unsigned char code CharCode1[]="温度:.℃";
- // void delay(u16 i)
- // {
- // while(i--);
- // }
- void delay10us(void) //误差 0us
- {
- unsigned char a,b;
- for(b=13;b>0;b--)
- for(a=3;a>0;a--);
- }
- void datapros(int temp)
- {
- float tp;
- if(temp<0)
- {
- DisplayData[0]=0x40;
- temp=temp-1;
- temp=~temp;
- tp=temp;
- temp=tp*0.0625*100+0.5;
- }
- else
- {
- DisplayData[0]=0x00;
- tp=temp;
- temp=tp*0.0625*100+0.5;
- }
-
- DisplayData[0] = (temp%10000/1000)+0x30;
- DisplayData[1] = (temp%1000/100)+0x30;
- DisplayData[2] = (temp%100/10)+0x30;
- DisplayData[3] = (temp%10)+0x30;
- }
- void Digdispaly()
- {
- LCD12864_SetWindow(1,0);
- LCD12864_WriteData(CharCode1[0]);
- LCD12864_WriteData(CharCode1[1]);
- LCD12864_WriteData(CharCode1[2]);
- LCD12864_WriteData(CharCode1[3]);
- LCD12864_WriteData(CharCode1[4]);
- //LCD12864_WriteData(CharCode1[5]);
- LCD12864_WriteData(DisplayData[0]);
- LCD12864_WriteData(DisplayData[1]);
- LCD12864_WriteData('.');
- LCD12864_WriteData(DisplayData[2]);
- LCD12864_WriteData(DisplayData[3]);
- LCD12864_WriteData(CharCode1[6]);
- LCD12864_WriteData(CharCode1[7]);
- //LCD12864_WriteData(CharCode1[8]);
- }
- void main()
- {
- LCD12864_Init();
- while(1)
- {
- datapros(Ds18b20ReadTemp());
- Digdispaly();
- }
- }
复制代码
所有资料51hei提供下载:
温度呀.zip
(66.98 KB, 下载次数: 98)
|
|