资源简介
基于51单片机的DS18B20测温、NRF24L01无线通信、1602液晶显示的无线测温系统。
代码片段和文件信息
#include
void lcd_delay_us(unsigned char us)//延时微秒@12Mus最大值255
{
while(--us);
}
void lcd_delay_ms(unsigned char ms)//延时毫秒@12Mms最大值255
{
unsigned char i;
while(ms--)
{
for(i=0;i<124;i++);
}
}
//产生一个使能脉冲
void lcd_e_toggle(void)
{
LCD_E = 1;
lcd_delay_us(3);
LCD_E = 0;
}
//循环检测LCD忙标志(BF),直到其值为0,方可执行下一指令
void lcd_wait_until_finish(void)
{
LCD_RW = 1; //RW置1,状态为读
LCD_RS = 0; //RS置0,读状态时RS需置低电平
LCD_E = 1; //E 置1,读取信息
while(LCD_BF); //循环直至BF=0
LCD_E = 0; //E重置为0
}
//公共函数
//向LCD写命令字
void lcd_command(unsigned char cmd)
{
LCD_RW=0; //RW置0,状态为写
LCD_RS=0; //RS置0,写入命令字
LCD_DATA_PORT=cmd; //将命令字cmd送入LCD的数据端口
lcd_delay_ms(5);
lcd_e_toggle(); //产生使能脉冲,在下降沿开始执行,将命令字读入
lcd_wait_until_finish(); //等待执行完毕
}
//设置显示位置(即写入显示地址),xy均从0开始
void lcd_goto_xy(unsigned char xunsigned char y)
{
unsigned char p; //p为字符显示位置即DDRAM中的地址
if(y==0)
{
p=0x00+x; //(00)显示位置为0x00
}
else
{
p=0x40+x; //(01)显示位置为0x40
}
lcd_command(p+0x80); //写入显示地址时DB7须为高电平加0x80
}
//写字符(传入的参数实际为所需显示字符的地址即液晶字符产生器中字符的地址)
void lcd_putc(unsigned char c)
{
LCD_RW=0; //RW置0,状态为写
LCD_RS=1; //RS置1,写入数据
LCD_DATA_PORT=c; //将字符c(实际上是字符的地址)送入LCD数据端口
lcd_delay_ms(5);
lcd_e_toggle(); //使能脉冲
lcd_wait_until_finish(); //等待完成
}
//指定位置写字符
void lcd_xy_putc(unsigned char xunsigned char yunsigned char c)
{
lcd_goto_xy(xy);
lcd_putc(c);
}
//写字符串
void lcd_puts(unsigned char *s)
{
while(*s)
{
lcd_putc(*s);
s++;
}
}
//指定位置写字符串
void lcd_xy_puts(unsigned char xunsigned char yunsigned char *s)
{
lcd_goto_xy(xy);
lcd_puts(s);
}
//LCD初始化
void lcd_init(void)
{
lcd_delay_ms(12); //上电后适当延时
lcd_command(0x38); //设为8位接口模式,显示2行字符
lcd_command(0x06); //写入新数据后光标右移
lcd_command(0x0c); //显示功能开,不显示光标
lcd_command(0x01); //清屏
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 27230 2013-06-15 10:27 无线测温程序\RX\123
文件 4679 2013-06-15 10:27 无线测温程序\RX\123.hex
文件 48 2013-06-15 10:27 无线测温程序\RX\123.lnp
文件 27720 2013-06-15 10:27 无线测温程序\RX\123.M51
文件 538 2013-06-15 10:27 无线测温程序\RX\123.plg
文件 77502 2013-06-15 10:27 无线测温程序\RX\123.uvgui.程淼
文件 77460 2013-06-15 10:01 无线测温程序\RX\123.uvgui_程淼.bak
文件 8498 2013-06-15 10:27 无线测温程序\RX\123.uvopt
文件 13601 2013-06-15 10:01 无线测温程序\RX\123.uvproj
文件 8488 2013-06-15 10:01 无线测温程序\RX\123_uvopt.bak
文件 13571 2013-06-14 14:45 无线测温程序\RX\123_uvproj.bak
文件 5586 2013-06-15 10:27 无线测温程序\RX\lcd.lst
文件 6529 2013-06-15 10:27 无线测温程序\RX\lcd.obj
文件 10249 2013-06-15 10:27 无线测温程序\RX\main.lst
文件 13072 2013-06-15 10:27 无线测温程序\RX\main.obj
文件 13895 2013-06-15 10:27 无线测温程序\RX\spi.lst
文件 11746 2013-06-15 10:27 无线测温程序\RX\spi.obj
文件 2222 2013-06-12 17:05 无线测温程序\RX\程序\lcd.c
文件 921 2013-06-12 16:43 无线测温程序\RX\程序\lcd.h
文件 3282 2013-06-15 10:27 无线测温程序\RX\程序\main.c
文件 8842 2013-06-13 21:09 无线测温程序\RX\程序\spi.c
文件 3031 2013-06-15 09:58 无线测温程序\RX\程序\spi.h
文件 18254 2013-06-15 10:04 无线测温程序\TX\123
文件 2136 2013-06-15 10:04 无线测温程序\TX\123.hex
文件 52 2013-06-15 10:04 无线测温程序\TX\123.lnp
文件 14982 2013-06-15 10:04 无线测温程序\TX\123.M51
文件 989 2013-06-15 10:04 无线测温程序\TX\123.plg
文件 141554 2013-06-15 10:04 无线测温程序\TX\123.uvgui.程淼
文件 140812 2013-06-14 13:15 无线测温程序\TX\123.uvgui_程淼.bak
文件 8847 2013-06-15 10:04 无线测温程序\TX\123.uvopt
............此处省略22个文件信息
- 上一篇:xc7k325的FPGA板cadence原理图文件
- 下一篇:一个DPCM的源代码
相关资源
- 单片机温湿度检测源代码 dht11 lcd160
- msp430 温湿度sht10 和 DS18B20显示
- DS18B20温度传感器源码
- STM32+SHT30(DS18B20)+0.96寸OLED(IIC)的
- 51单片机Protues仿真舵机,可以通过按
- LCD12864串行显示DS18B20温度和超声波测
- 单片机C51-电子钟1 LCD1602显示 上电正常
- DHT11温湿度 1602显示 89C52单片机
- 51单片机ADC0832_1602 proteus仿真源程序加
- 51单片机ADC0832电压测量液晶1602显示的
- nrf24L01双向通信程序51单片机
- 51单片机1602+ADIIC+按键
- 基于51单片机和lcd1602的adc0804测电压电
- msp430f5438a操作nrf24l01
- 基于DS18B20的水温控制系统 仿真+程序
- MSP430控制LCD1602显示
- 电子钟DS1302+LCD1602+89C52+proteus仿真图
- STM32F103 NRF24L01无线通讯模块驱动例程
- arduino1602屏幕滚动显示
- 1602液晶可靠的4位数据线方式驱动_基
- LCD1602+DHT11显示温湿度
- DS18B20中文手册.pdf
- STM32F103C8T6核心板之配套程序源码 -
- 1602液晶点阵取模工具
- 基于PIC16F877与DS18B20的测温显示
- PIC16f877解码6221红外遥控C 程序 1602显示
- adc0808简单的实验用lcd1602显示电压有仿
- 基于STC89c52 的环境数据采集 DHT11+BH
- DS18B20使用手册
- LCD 1602 显示屏 数据手册 PDF 英文
评论
共有 条评论