第二讲点阵和液晶屏_第1页
第二讲点阵和液晶屏_第2页
第二讲点阵和液晶屏_第3页
第二讲点阵和液晶屏_第4页
第二讲点阵和液晶屏_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二讲点阵和液晶屏第1页,课件共41页,创作于2023年2月8*8点阵外型和结构第2页,课件共41页,创作于2023年2月项目1:8*8点阵应用设计与单片机连接图第3页,课件共41页,创作于2023年2月一、题目要求:用8051控制8*8点阵,使其先从左到右动态点亮3次,后从右到左动态点亮3次,;再从上到下点亮3次,最后从下到上点亮3次,如此动态循环。第4页,课件共41页,创作于2023年2月原理说明8X8点阵LED工作原理说明:8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就会点亮;因此要实现一根柱形的亮法,对应的一列为一根竖柱,或者对应的一行为一根横柱,实现柱的亮的方法如下:一根竖柱:对应的列置1,而行则采用扫描的方法来实现。

一根横柱:对应的行置0,而列则采用扫描的方法来实现。第5页,课件共41页,创作于2023年2月/*程序分析*/#include<AT89S52.H>unsignedcharcodetaba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsignedcharcodetabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

voiddelay(void)

{

unsignedchari,j;

for(i=10;i>0;i--)

for(j=248;j>0;j--);

}第6页,课件共41页,创作于2023年2月voiddelay1(void)

{

unsignedchari,j,k;

for(k=10;k>0;k--)

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}voidmain(void)

{

unsignedchari,j;

while(1)

{

第7页,课件共41页,创作于2023年2月for(j=0;j<3;j++)//fromlefttoright3time

{

for(i=0;i<8;i++)

{

P3=taba[i];

P1=0xff;//列柱,列置1,行扫描

delay1();

}

}

第8页,课件共41页,创作于2023年2月for(j=0;j<3;j++)//fromrighttoleft3time

{

for(i=0;i<8;i++)

{

P3=taba[7-i];

P1=0xff;

delay1();

}

}

for(j=0;j<3;j++)//fromtoptobottom3time

{

for(i=0;i<8;i++)

{

P3=0x00;

P1=tabb[7-i];//行柱,行清0,列扫描

delay1();

}

}第9页,课件共41页,创作于2023年2月for(j=0;j<3;j++)//frombottomtotop3time

{

for(i=0;i<8;i++)

{

P3=0x00;

P1=tabb[i];

delay1();

}

}

}

}

第10页,课件共41页,创作于2023年2月一、题目要求:8X8LED点阵屏循环显示数字0~9,刷新过程由定时器中断完成。

第11页,课件共41页,创作于2023年2月/*程序分析*/#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharcodeTable_of_Digits[]={0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,//00x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00,//10x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,//20x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00,//30x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00,//4第12页,课件共41页,创作于2023年2月0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00,//50x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00,//60x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00,//70x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,//80x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00//9};uchari=0,t=0,Num_Index;第13页,课件共41页,创作于2023年2月//主程序voidmain(){P3=0x80;Num_Index=0;//从0开始显示TMOD=0x00;//T0方式0TH0=(8192-2000)/32;//2ms定时,8192=213TL0=(8192-2000)%32;IE=0x82;TR0=1;//启动T0while(1);}第14页,课件共41页,创作于2023年2月//T0中断函数voidLED_Screen_Display()interrupt1//1是T0中断服务程序代码{TH0=(8192-2000)/32;//恢复初值TL0=(8192-2000)%32;P0=0xff;//输出位码和段码P0=~Table_of_Digits[Num_Index*8+i];//段码P3=P3<<1;//位码if(++i==8)i=0;//每屏一个数字由8个字节构成if(++t==250)//每个数字刷新显示一段时间{t=0;if(++Num_Index==10)Num_Index=0;//显示下一个数字}}第15页,课件共41页,创作于2023年2月思考若图中引入按键K1,每次按下K1时,会使8X8LED点阵屏循环显示不同图形,试画出原理图、编写程序。第16页,课件共41页,创作于2023年2月参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)m引脚:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口。1602液晶显示:第17页,课件共41页,创作于2023年2月第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极第18页,课件共41页,创作于2023年2月1602LCD的RAM地址映射:液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,下图是1602的内部显示地址。第19页,课件共41页,创作于2023年2月项目二:1602液晶显示一、题目要求:1602字符液晶滚屏显示元件的选择

P0.0~7分别接LM016L的D0~D7P2.0接RS,P2.1接RW,P2.2接E第20页,课件共41页,创作于2023年2月电路连接图:第21页,课件共41页,创作于2023年2月程序分析#include<reg52.h>//包含头文件#defineuintunsignedint//预定义一下#defineucharunsignedcharsbitrs=P3^5;//1602的数据/指令选择控制线sbitrw=P3^6;//1602的读写控制线sbiten=P3^7;//1602的使能控制线/*P0口接1602的D0~D7,注意不要接错了顺序*/ucharcodetable[]=“welcometoLCD1602!”;//要显示的内容1放入数组tablelucharcodetable1[]=“nicetomeetyou!";//要显示的内容2放入数组table1第22页,课件共41页,创作于2023年2月voiddelay(uintn)//延时函数{uintx,y;for(x=n;x>0;x--)for(y=110;y>0;y--);}voidlcd_wcom(ucharcom)//1602写命令函数{rs=0;//选择指令寄存器rw=0;//选择写P0=com;//把命令字送入P0delay(5);//延时一小会儿,让1602准备接收数据en=1;//使能线电平变化,命令送入1602的8位数据en=0;}第23页,课件共41页,创作于2023年2月voidlcd_wdat(uchardat)//1602写数据函数{rs=1;//选择数据寄存器rw=0;//选择写P0=dat;//把要显示的数据送入P0delay(5);//延时一小会儿,让1602准备接收数据en=1;//使能线电平变化,数据送入1602的8位数据口en=0;}voidlcd_init()//1602初始化函数{lcd_wcom(0x38);//8位数据,双列,5*7字形lcd_wcom(0x0c);//开启显示屏,关光标,光标不闪烁lcd_wcom(0x06);//显示地址递增,即写一个数据后,显示位置右移一位lcd_wcom(0x01);//清屏}

第24页,课件共41页,创作于2023年2月voidmain()//主函数{ucharn,m=0;lcd_init();//液晶初始化lcd_wcom(0x80);//显示地址设为80H(即00H,)上排第一位

for(m=0;m<16;m++)//将table[]中的数据依次写入1602{lcd_wdat(table[m]);delay(200);}lcd_wcom(0x80+0x44);//重新设定显示地址为0xc4,即下排第5位for(n=0;n<8;n++)//将table1[]中的数据依次写入1602显示{lcd_wdat(table1[n]);delay(200);}while(1);//动态停机}第25页,课件共41页,创作于2023年2月

思考查看1602的相关资料,试编程实现LCD显示心型图案。第26页,课件共41页,创作于2023年2月LCD12864功能介绍:12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128*64全点阵液晶显示器组成。可完成图形显示,也可以显示8*4汉字第27页,课件共41页,创作于2023年2月12864管脚管脚说明:第28页,课件共41页,创作于2023年2月第29页,课件共41页,创作于2023年2月项目三液晶显示器12864一、题目要求:左右滚屏显示汉字(该12864不带字库)第30页,课件共41页,创作于2023年2月#include<AT89X51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineLCD_databusP0ucharnum;程序分析第31页,课件共41页,创作于2023年2月ucharcodezi[10][32]={/***********************临**************************/ 0x00,0xF8,0xF0,0x00,0xFF,0xFE,0x80,0x60,0x38,0x1E,0x3F,0x6A,0x68,0xC8,0x4C,0x08,0x00,0x0F,0x07,0x00,0xFF,0x7F,0x00,0xFF,0x7E,0x42,0x7E,0x7E,0x42,0xFE,0x7F,0x02,/***********************沂**************************/ 0x00,0x10,0xE1,0xC6,0x0C,0x8C,0xE0,0xFE,0xFC,0x24,0x26,0xE2,0xE3,0x23,0x32,0x20,0x00,0x04,0x78,0xF8,0x1E,0x83,0x40,0x3F,0x1F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,……..略(要显示什么汉字,自己在字模提取软件中生成)第32页,课件共41页,创作于2023年2月sbitRS=P2^2;sbitRW=P2^1;sbitEN=P2^0;sbitCS1=P2^4;sbitCS2=P2^3;//对应的端口根据硬件电路图来确定voiddelay(uintx){uchari; while(x--) for(i=0;i<120;i++);}voidRead_busy(){ P0=0X00; RS=0; RW=1; EN=1; while(P0&0x80); EN=0;}第33页,课件共41页,创作于2023年2月voidwrite_LCD_command(ucharvalue){ Read_busy(); RS=0; RW=0; LCD_databus=value; EN=1; _nop_(); _nop_(); EN=0;}voidwrite_LCD_data(ucharvalue){ Read_busy(); RS=1; RW=0; LCD_databus=value; EN=1; _nop_(); _nop_(); EN=0;}第34页,课件共41页,创作于2023年2月voidSet_page(ucharpage){ page=0xb8|page; write_LCD_command(page);}voidSet_line(ucharstartline){ startline=0xc0|startline; write_LCD_command(startline);}voidSet_colum(ucharcolum){ colum=colum&0x3f; colum=0x40|colum; write_LCD_command(colum);}第35页,课件共41页,创作于2023年2月voidSetonoff(ucharonoff){ onoff=0x3e|onoff; write_LCD_command(onoff);}voidSelectScreen(ucharscreen){ switch(screen) { case0:CS1=0;CS2=0;break; case1:CS1=0;CS2=1;break; case2:CS1=1;CS2=0;break; default:break; }}第36页,课件共41页,创作于2023年2月voidClearScreen(ucharscreen){ uchari,j; SelectScreen(screen); for(i=0;i<8;i++) { Set_page(i); Set_colum(0); for(j=0;j<64;j++) { write_LCD_data(0x00); } }}第37页,课件共41页,创作于2023年2月voidInitLCD(){ Read_busy(); SelectScreen(0); Setonoff(0); SelectScreen(0); Setonoff(1); SelectScreen(0); ClearScreen(0); Set_line(0);

}第38页,课件共41页,创作于2023年2月voidDisplay(ucharss,ucharpag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论