資源簡介
基于51單片機(jī)的DS18B20測溫、NRF24L01無線通信、1602液晶顯示的無線測溫系統(tǒng)。

代碼片段和文件信息
#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++);
}
}
//產(chǎn)生一個使能脈沖
void?lcd_e_toggle(void)
{
LCD_E?=?1;
lcd_delay_us(3);
LCD_E?=?0;
}
//循環(huán)檢測LCD忙標(biāo)志(BF),直到其值為0,方可執(zhí)行下一指令
void?lcd_wait_until_finish(void)
{
LCD_RW?=?1; //RW置1,狀態(tài)為讀
LCD_RS?=?0; //RS置0,讀狀態(tài)時RS需置低電平
LCD_E??=?1; //E?置1,讀取信息
while(LCD_BF);? //循環(huán)直至BF=0
LCD_E??=?0; //E重置為0
}
//公共函數(shù)
//向LCD寫命令字
void?lcd_command(unsigned?char?cmd)
{
LCD_RW=0; //RW置0,狀態(tài)為寫
LCD_RS=0; //RS置0,寫入命令字
LCD_DATA_PORT=cmd; ??? //將命令字cmd送入LCD的數(shù)據(jù)端口
lcd_delay_ms(5);
lcd_e_toggle(); //產(chǎn)生使能脈沖,在下降沿開始執(zhí)行,將命令字讀入
lcd_wait_until_finish(); //等待執(zhí)行完畢
}
//設(shè)置顯示位置(即寫入顯示地址),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
}
//寫字符(傳入的參數(shù)實際為所需顯示字符的地址即液晶字符產(chǎn)生器中字符的地址)
void?lcd_putc(unsigned?char?c)
{
LCD_RW=0; //RW置0,狀態(tài)為寫
LCD_RS=1; //RS置1,寫入數(shù)據(jù)
LCD_DATA_PORT=c; //將字符c(實際上是字符的地址)送入LCD數(shù)據(jù)端口
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); //上電后適當(dāng)延時
lcd_command(0x38); //設(shè)為8位接口模式,顯示2行字符
lcd_command(0x06); //寫入新數(shù)據(jù)后光標(biāo)右移
lcd_command(0x0c); //顯示功能開,不顯示光標(biāo)
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的源代碼
評論
共有 條評論