基于S51单片机数据采集系统设计,串口通信,LCD显示
标签: 温湿度采集
上传时间: 2013-06-25
上传用户:GavinNeko
温度用LCD显示
上传时间: 2013-10-19
上传用户:panjialaodi
附件为:LCD12864显示汉字和数字的程序与电路 /* 自定义延时子函数 */ void delayms(uchar z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /* 判断LCD忙信号状态 */ void buys() { int dat; RW=1; RS=0; do { P0=0x00; E=1; dat=P0; E=0; dat=0x80 & dat; } while(!(dat==0x00)); } /* LCD写指令函数 */ void w_com(uchar com) { //buys(); RW=0; RS=0; E=1; P0=com; E=0; } /* LCD写数据函数 */ void w_date(uchar date) { //buys(); RW=0; RS=1; E=1; P0=date; E=0; } /* LCD选屏函数 */ void select_screen(uchar screen) { switch(screen) { case 0: //选择全屏 CS1=0; CS2=0; break; case 1: //选择左屏 CS1=0; CS2=1; break; case 2: //选择右屏 CS1=1; CS2=0; break; /* case 3: //选择右屏 CS1=1; CS2=1; break; */ } } /* LCDx向上滚屏显示 */ void lcd_rol() { int x; for(x=0;x<64;x++) { select_screen(0); w_com(0xc0+x); delayms(500); } } /* LCD清屏函数:清屏从第一页的第一列开始,总共8页,64列 */ void clear_screen(screen) { int x,y; select_screen(screen); //screen:0-选择全屏,1-选择左半屏,2-选择右半屏 for(x=0xb8;x<0xc0;x++) //从0xb8-0xbf,共8页 { w_com(x); w_com(0x40); //列的初始地址是0x40 for(y=0;y<64;y++) { w_date(0x00); } } } /* LCD显示汉字字库函数 */ void lcd_display_hanzi(uchar screen,uchar page,uchar col,uint mun) { //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-3,mun:显示第几个汉字的参数 int a; mun=mun*32; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } } /* LCD显示字符字库函数 */ void lcd_display_zifuk(uchar screen,uchar page,uchar col,uchar mun) { //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-7,mun:显示第几个汉字的参数 int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } } /* LCD显示数字字库函数 */ void lcd_display_shuzi(uchar screen,uchar page,uchar col,uchar mun) { //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-7,mun:显示第几个汉字的参数 int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } } /* LCD初始化函数 */ void lcd_init() { w_com(0x3f); //LCD开显示 w_com(0xc0); //LCD行初始地址,共64行 w_com(0xb8); //LCD页初始地址,共8页 w_com(0x40); //LCD列初始地址,共64列 } /* LCD显示主函数 */ void main() { //第一行 int x; lcd_init(); //LCD初始化 clear_screen(0); //LCD清屏幕 lcd_display_shuzi(1,0,4,5); //LCD显示数字 lcd_display_shuzi(1,0,5,1); //LCD显示数字 lcd_display_hanzi(1,0,3,0); //LCD显示汉字 lcd_display_hanzi(2,0,0,1); //LCD显示汉字 //LCD字符汉字 lcd_display_hanzi(2,0,1,2); //LCD显示汉字 //第二行 lcd_display_zifuk(1,1,2,0); //LCD显示字符 lcd_display_zifuk(1,1,3,0); //LCD显示字符 lcd_display_zifuk(1,1,4,0); //LCD显示字符 lcd_display_zifuk(1,1,5,4); //LCD显示字符 lcd_display_shuzi(1,1,6,8); //LCD显示字符 lcd_display_shuzi(1,1,7,9); //LCD显示字符 lcd_display_shuzi(2,1,0,5); //LCD显示字符 lcd_display_shuzi(2,1,1,1); //LCD显示字符 lcd_display_zifuk(2,1,2,4); lcd_display_zifuk(2,1,3,1); lcd_display_zifuk(2,1,4,2); lcd_display_zifuk(2,1,5,3); //第三行 for(x=0;x<4;x++) { lcd_display_hanzi(1,2,x,3+x); //LCD显示汉字 } for(x=0;x<4;x++) { lcd_display_hanzi(2,2,x,7+x); //LCD显示汉字 } //第四行 for(x=0;x<4;x++) { lcd_display_zifuk(1,3,x,5+x); //LCD显示汉字 } lcd_display_shuzi(1,3,4,7); lcd_display_shuzi(1,3,5,5); lcd_display_shuzi(1,3,6,5); lcd_display_zifuk(1,3,7,9); lcd_display_shuzi(2,3,0,8); lcd_display_shuzi(2,3,1,9); lcd_display_shuzi(2,3,2,9); lcd_display_shuzi(2,3,3,5); lcd_display_shuzi(2,3,4,6); lcd_display_shuzi(2,3,5,8); lcd_display_shuzi(2,3,6,9); lcd_display_shuzi(2,3,7,2); while(1); /* while(1) { // LCD向上滚屏显示 lcd_rol(); } */ }
上传时间: 2013-11-08
上传用户:aeiouetla
1.线段的显示.线段的显示.线段的显示.线段的显示点阵图形式液晶由M行×N列个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1个字节的8个位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元和显示RAM区1024个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H~00FH的16个字节的内容决定,当(000)=FFH时,则屏的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏的右下角显示一短亮线;当(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,…(00EH)=FFH,(00FH)=00H时,则在屏的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本意思。
上传时间: 2013-11-06
上传用户:acwme
PCF2119x是一款低功耗的CMOS型LCD控制器和驱动器,可以驱动一块点阵LCD显示2行每行16个5×8格式的字符,或者显示1行每行32个5×8格式的字符。PCF2119x单片(无需其他外围器件)提供显示所需的所有必要功能,包括片内产生LCD偏置电压。PCF2119x的这些特性使得其需要的外围器件极少并且能降低系统的电流损耗。PCF2119x可通过4或8位总线或者2-wire的I2C总线与大多数微控制器连接。该芯片包含一个字符发生器并且可以显示英文、数字和假名(日语)字符。
上传时间: 2013-11-06
上传用户:dalidala
空调红外遥控器是通常由两节碱性电池供电,通过38KHZ 红外载波调制与挂机或者柜机单向通讯的便携式设备。由于其成本低廉,低功耗等特点不仅在空调,还在其它家电及玩具等领域得到了广泛应用。基于便携及电池供电的要求,系统的超低功耗及可靠性设计是首要目标之一。本文针对应用中对低功耗,高集成度的要求,采用MSP430F415 超低功耗MCU,实现按键扫描,LCD 显示,红外发送等完整功能。
上传时间: 2013-11-23
上传用户:sclyutian
显示: “欢迎使用", "单片机实验系统" LCD显示汉字
标签:
上传时间: 2015-03-31
上传用户:变形金刚
介绍了TFT—LCD接口时序和S3C2410的LCD控制寄存器设置方案,结合实例阐述了基于S3C2410的LCD显示系统的设计方法。
上传时间: 2013-11-27
上传用户:维子哥哥
基于HD44780/SED1278的液晶显示源代码,用AVR单片机进行控制,搞LCD显示模块的用得上!
上传时间: 2015-11-06
上传用户:wangchong
本文研究论述了基于S3C2410 LCD控制器的Linux驱动程序设计与实现,介绍了S3C2410的LCD控制器的数据和控制管脚,并给出了LCD的控制流程和LCD的控制器设置规则,参照TFT-LCD LQ092Y3DG01的逻辑要求和时序要求设计了其驱动电路,设置了主要LCD寄存器;论述了在嵌入式Linux中基于FrameBuffer机制的LCD驱动程序的实现方法。主要研究了Linux帧缓冲设备驱动程序框架,详细分析了帧缓冲设备驱动程序层次结构、核心功能模块和数据结构,设计了FrameBuffer的处理机制以及底层驱动的接口函数针对具体的LCD面板如何在嵌入式Linux中编写帧缓冲设备的驱动程序。最后在FrameBuffer机制的基础上,基于三星公司S3C2410处理器的开发平台系统地开发了嵌入式Linux下的LCD显示驱动程序,实现了简单的嵌入式GUI图形API的设计,并在LQ092Y3DG01上显示了清晰稳定的图像和汉字。测试表明该驱动通用性好,能驱动大部分的LCD;可移植性强,经过少许修改即可应用在其他嵌入式系统中,是S3C2410驱动LCD的一套较佳的解决方案
上传时间: 2013-11-29
上传用户:zukfu