单片机练习 - 使用1602LCD显示DS18B20的温度值
2007-03-19 01:15
561 查看
关于DS18B20电子温度器件可查看单片机练习 - DS18B20温度转换与显示 .
本文主要讲述如何使用LCD. 具体过程解释可查看代码注释.
程序代码:
效果图1:
效果图2:
本文主要讲述如何使用LCD. 具体过程解释可查看代码注释.
程序代码:
//1602液晶显示程序, TX-1B实验板上的1602LCD的R/W读写端接地, 即始终只写, 不读数据 2//使用1602LCD显示DS18B20转换的温度值 3#include <reg52.H> 4#include <intrins.H> 5#include <math.H> 6 7#define uchar unsigned char 8#define uint unsigned int 9sbit dula = P2^6; 10sbit wela = P2^7; 11 12sbit RS = P3^5; //数据/命令选择端(H/L) 13sbit LCDEN = P3^4; //使能端 14 15void delayUs() 16 20void delayMs(uint a) 21 27//第一行开始地址为0x80, 第二行开始地址为0xc0; 28//写命令:RS=0, RW=0; 29void writeComm(uchar comm) 30 39//写数据:RS=1, RW=0; 40void writeData(uchar dat) 41 50//初始化 51//显示模式, 固定指令为00111000=0x38, 16*2显示, 5*7点阵,8位数据接口 52//显示开/关及光标设置 53//指令1: 00001DCB : D:开显示/关显示(H/L); C:显示光标/不显示(H/L), B:光标闪烁/不闪烁(H/L) 54//指令2: 000001NS : 55//N=1, 当读/写一个字符后地址指针加1, 且光标也加1; N=0则相反 56//S=1, 当写一个字符, 整屏显示左移(N=1)或右移(N=0), 但光标不移动; S=0, 整屏不移动 57void init() 58 67void writeString(uchar * str, uchar length) 68 76sbit ds = P2^2; 78//初始化DS18B20 79//让DS18B20一段相对长时间低电平, 然后一段相对非常短时间高电平, 即可启动 80void dsInit() 81 92void dsWait() 93 //向DS18B20读取一位数据 //读一位, 让DS18B20一小周期低电平, 然后两小周期高电平, //之后DS18B20则会输出持续一段时间的一位数据 bit readBit() //读取一字节数据, 通过调用readBit()来实现 unsigned char readByte() //向DS18B20写入一字节数据 void writeByte(unsigned char dat) //向DS18B20发送温度转换命令 void sendChangeCmd() //向DS18B20发送读取数据命令 void sendReadCmd() //获取当前温度值 int getTmpValue() void display(int v) void main() { uchar table[] = "Now Temperature:"; sendChangeCmd(); init(); writeComm(0x80); writeString(table, 16); while(1) { delayMs(1000); //温度转换时间需要750ms以上 writeComm(0xc0); display(getTmpValue()); sendChangeCmd(); } }
效果图1:
效果图2:
相关文章推荐
- 单片机练习 - DS18B20温度转换与显示
- 单片机练习 - 带中文字库12864LCD显示程序
- ATMEGA16读取DS18B20温度,1602显示,并用proteus仿真,成功。
- DS18B20温度传感器利用LCD显示室内温度
- DS18B20 LCD显示当前温度
- 1602液晶显示DS18B20温度
- STM32单片机学习(11) DS18B20温度传感器实验
- 模拟实时测温,1602显示,一个I/O口上挂两个温感DS18B20,实现于仿真上PROTEUS
- 单片机DS18b20 温度检测液晶显示
- 基于S3C2440的嵌入式Linux驱动——DS18B20温度传感器(添加使用platform总线机制)
- LCD1602显示+ds18b20温度测试+ds1302时钟显示
- 基于FPGA的LCD+CMOS视频采集显示使用小结
- STC单片机之1602显示时钟
- Picoblaze使用范例-LCD显示,基于spartan3e start kit
- Dht11与Ds18b20温度传感器使用
- 树莓派使用DS18B20模块测量温度
- STC12C5A32S2单片机之1602渐入显示
- 51单片机复习程序例举004--HD44780控制的1602LCD
- Android复习练习十一(ListView列表显示使用BaseAdapter以及ListView动态刷新)
- STM32使用SPI DMA加双缓冲区的方式加速LCD显示BMP图片时刷屏速度