资源简介
基于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的源代码
相关资源
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- NRF24L01实现51与STM32双向通讯
- stm32 ds18b20 温度传感器 测试通过
- [免费]msp430f149控制PS2键盘并用1602显示
- 51单片机读取温度数据存储到SD卡中并
- vhdl与lcd1602实现的多控制电子钟
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- DS18B20分布式多点测温的Proteus仿真
- ADC0809数字电压表 LCD1602显示 汇编程序
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- nRF24L01无线模块在单片机与FPGA上的应
- STM32F103C8T6+NRF24l01无线通信
- EESkill NRF24L01 无线模块用户手册
- 基于nRF24L01的射频收发电路原理图
- nRF24L01无线模块原理图和与5V单片机的
- 基于AVR的NRF24L01跳频通信程序
- STM32+1602液晶proteus仿真.zip
- ASUS华硕P9X79主板BIOS v1602官方版
- ds18b20温度传感是什么传感器
- LCD1602显示程序
- 循迹小车51程序(超声波 颜色识别 舵
- 1602液晶显示51串口接受的数据
- 第四章 畅学多功能实验箱液晶资源详
- STM32+DHT11+OLED+RTC+MQ2+NRF24L01+串口12
- proteus仿真、keil4、DHT11、LCD1602
- DS18B20_Serial_println.ino
- 1602lcd液晶屏参数详细介绍
评论
共有 条评论