历史上的今天
今天是:2024年10月28日(星期一)
2019年10月28日 | 单片机DS18B20温度检测LCD1602显示程序+电路PCB设计
2019-10-28 来源:51hei
制作出来的实物图如下:



Altium Designer画的原理图和PCB图如下:
单片机源程序如下:
/***********************************************
该程序为温度测量
用到DS18B20、LCD1602
备注:程序的许多地方也是理解了他人的程序才写出来的如果有理解错误、书写错误的地方望大家留言指导
***********************************************/
#include bit flag = 0; unsigned int Temp = 0; unsigned char str[6]; //用来存字符串 unsigned char high; //定时器的高低8位 unsigned char low; unsigned char L; //温度的小数部分 unsigned char H; //整数部分 extern bit Get_temperature(unsigned int *temp); extern void TemptoNum(); extern void LCD_Start(); extern void LCD_Sta(unsigned char x, unsigned char y, unsigned char *p); unsigned char NumberToString(unsigned char *str, unsigned int dat); void configtime0(unsigned char ms); /**************************************** 主函数 ****************************************/ void main() { unsigned char len; bit flag_ack = 0; EA = 1; //开启总中断 LCD_Start(); //LCD初始化 configtime0(1); //配置定时器 LCD_Sta(0,0,"Temp:"); //显示"Temp:"字符 TemptoNum(); //温度转换 while(1) { if(flag) //1秒到了 标识位为1 { flag = 0; //标识位置0 flag_ack = Get_temperature(&Temp); //获取温度值 if(flag_ack) { flag_ack = 0; H = Temp >> 4; //分离出整数部分 L = Temp & 0x0F; //分离出小数部分 L = L * 10 / 16; //将小数部分转换成10进制数取出(这个地方我也想了好久才想明白,一开始自己写是写了%10,但是这样就存在不准确的问题,这么写我也是书上看来,先放大10倍,然后最大就是150,/16刚好为9,140/16为8,以此类推) len = NumberToString(str, L); //将小数部分转换成字符 LCD_Sta(16-len,0,str); //显示在LCD的第一行的最后一位
史海拾趣
|
Linux是单体内核,即将图形、驱动及文件系统等功能全在操作系统内核中实现,运行在内核状态和同一地址空间,其优点是减少了进程间通信和状态切换的系统开销,获得较高的运行效率;缺点是内核比较庞大! WinCE是微内核,即在内核中实现基本功能, ...… 查看全部问答> |
|
void vSetMotorTimer(unsigned short uiTime)// uiTime us { RCAP2LH = uiTime; } //重新载入定时数据 void vUpdateMotorTimer(void) { T2LH=RCAP2L ...… 查看全部问答> |
|
有没有人研究过mini2440的BSP,其BSP是如何识别128M/256M等flash的? 因为我使用的是QQ2440,但是我发现最新的mini2440的BSP更新了很多驱动,我想移进去QQ2440使用,但是可惜烧写进去后不能启动。 我觉得想搞好这个bsp必须先知道如何使用其他flash时需要修改的代码,哪位高手知道的,麻烦指导下。… 查看全部问答> |
|
我是初学,最近被此问题困扰了好多天, 打开inputPanel后,改变输入法,inputPanel的高度会改变,此时如何捕获该事件。 我使用C#,开发环境vs 2005,.net CF 2.0。 希望解释能详细些,我是初学。 还有我的 ...… 查看全部问答> |
|
研究了N就,PG128128A资料到底怎么驱动,谁有能提供详细资料 12864及以下的我会,就是不会PG128128A的 邮箱 zoujun224@qq.com… 查看全部问答> |
|
请教大家有没有用过 5V和3.3V接口电压转换芯片,我需要DSP2812外接DS18B20和其他几个5V峰值的转速信号,需要做电平转换,但是不知道使用什么样的接口电压转换芯片,需要方向控制的就不要介绍了,比如:SN74LVC164245。我需要的是自动双向转换电平的 ...… 查看全部问答> |




