zigbee学习笔记l

zigbee学习笔记l

ID:29645654

大小:282.50 KB

页数:8页

时间:2018-12-21

zigbee学习笔记l_第1页
zigbee学习笔记l_第2页
zigbee学习笔记l_第3页
zigbee学习笔记l_第4页
zigbee学习笔记l_第5页
资源描述:

《zigbee学习笔记l》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、05_ZigBeeLED学习笔记----(转载请注明出处774910349@qq.com)Everhuai写于2011-12-5今天来学习一下LCD,虽然我也认同在实际的项目中,LCD用得不多,但我肯定自己是必然要与LCD打交道的,所以我想了解一下别人对LCD是如何处理的。到时候自己要用就可以借鉴借鉴。我所使用的无线龙开发板使用了一个74HC595D对IO口进行扩展,电路如下:这样就必须对74HC595有所了解。这是一款具有锁存功能的串入并出芯片,真值表如下:这里我们只是用到了3根信号线:SI、SCK、RCK,其余接固定电平。当然不同文档名称可能会有不同。今天直接进入

2、LCD初始化函数。intmain(void)à//InitialzeHALdriversHalDriverInit();à/*LCD*/#if(definedHAL_LCD)&&(HAL_LCD==TRUE)HalLcdInit();#endifàvoidHalLcdInit(void){delay_us(10000);P1DIR

3、=0xFC;P2DIR

4、=0x01;P0DIR

5、=0x02;P1_2=0;delay_us(100);WriteLCD(COMMAND,0xE2);//复位…SetContrast(iIntRegValuea,ContrastValue);

6、ClearScreen();//HalLcdWriteString("IEEE:",1);//HalLcdWriteString("Initlcd",2);//HalLcdWriteString("Initlcd",3);//PrintCh8(30,30,'O',1);}那么我们今天的重点就是Hal_lcd.c文件。在初始化函数的开头设置IO口为输出,大家都看得懂。延时函数从函数名上看就知道是微妙级延时,我们今天就不管它了。下面我们要看的是WriteLCD(COMMAND,0xE2)函数,这是一个数据命令复用的函数,由第一个参数来选择是数据还是命令。voidWrite

7、LCD(uint8fs,uint8da){delay1(2);LCD_CS1=0;//片选LCD_RW=0;//写操作//delay1(0);if(fs){LCD_RS=1;}else{LCD_RS=0;}//delay1(0);Write595(da);LCD_E=1;//=1;//给时钟沿,写入数据delay1(2);LCD_E=0;//=0;//delay1(0);LCD_CS1=1;}其实这个if判断完全不必,直接写如下语句即可:LCD_RS=fs;由于我们使用的595进行IO口扩展,所以我们会看到这样一个函数Write595(da):voidWrite595

8、(uint8dat){uint8ii;for(ii=0;ii<8;ii++){if(dat&0x80)LCD_595_DAT=1;elseLCD_595_DAT=0;dat<<=1;LCD_595_CK=1;LCD_595_CK=0;}LCD_595_LD=1;LCD_595_LD=0;}该函数用来把一字节数据送到LCD并行数据口。如对该函数还不理解的可以对照595的真值表与时序图进行分析。剩下的操作就完全与595无关了。在初始化函数中对函数WriteLCD()调用了很多次,这是用来初始化LCD的。用过LCD12864的都知道在初始化LCD时,需要写入一串命令对LCD

9、进行初始化。具体这些命令都代表什么意思最好去查对应的数据手册,不同的LCD会有所不同。函数SetContrast(iIntRegValuea,ContrastValue)同样是向LCD写入了几条命令,虽然不知道这些命令具体的意思,但从函数名与其参数的注释中我们可以猜到这是通过调整内部电阻来调整对比度的。最后一个ClearScreen()函数当然也能猜到是清屏的:voidClearScreen(void){uint8x,y;for(x=0;x<8;x++){SetRamAddr(x,0);for(y=0;y<128;y++){WriteLCD(DATA,0x00);}}

10、}这里出现了一个新的函数,一看就知道是用来设置写入的位置的。从这里也可以知道该LCD为8*8*128。我们还是先来看下系统提供的LCD接口函数吧。打开Hal_lcd.h文件:…/**InitializeLCDService*/externvoidHalLcdInit(void);/**WriteastringtotheLCD*/externvoidHalLcdWriteString(char*str,uint8option);/**WriteavaluetotheLCD*/externvoidHalLcdWriteValue(uint32value,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。