51单片机驱动液晶显示屏
- 格式:doc
- 大小:17.50 KB
- 文档页数:2
基于MCS-51单片机的液晶显示设计随着科技的不断发展,电子产品的智能化和小型化需求越来越迫切,因此单片机成为了不可或缺的主要元器件之一。
在众多单片机中,MCS-51单片机由于性能稳定默默无闻地成为了不少工程师的首选。
液晶显示器则是我们日常生活中不可或缺的显示元件之一。
MCS-51单片机设计时可以采用液晶显示来呈现一些基本的信息,如时间、日期、温度、湿度等。
首先需要选择一个适合的液晶模块,本设计选择了1602带背光的液晶模块,其具有亮度高、阅读方便、光学效果好的特点。
当选购好液晶模块之后,需要连接到MCS-51单片机上。
最基本的设计连接如下:- 1602的VSS接地。
- 1602的VDD接+5V电源。
- 1602的VO接一个0-5V变移电位器的中间点,并将其中一端连VSS,另一端接VDD即可。
- 1602的RS与单片机的P1.0相连。
- 1602的RW接地,表示写。
- 1602的E与单片机的P1.1相连。
- 1602的D0-D3不接。
然后就可以开始编写程序。
本设计采用Keil C编译器编写,程序如下:```#include<reg52.h>#define LCD_data P0 // 数据口定义sbit rs = P1^0; //RS接口sbit rw = P1^1; //RW接口sbit en = P1^2; //EN接口void init(); // 初始化函数void write_command(unsigned char command); // 向液晶显示屏写指令函数void write_char(unsigned char dat); // 向液晶显示屏写数据函数void delay_5us(); // 等待函数void delay_do(unsigned char i); // 延时函数/** 初始化函数 **/void init(){write_command(0x38); // 在两行八列的模式下显示。
LCD显示控制系统设计LCD显示控制系统设计LCD Display Control System目录摘要............................................... 错误!未定义书签。
ABSTRACT........................................................... I I 第一章概述 (1)§1.1系统背景 (1)§1.2 系统概述 (2)第二章方案论证 (3)§2.1字模数据的存储 (3)§2.2 通信电路 (3)第三章液晶显示模块简介 (4)§3.1 显示控制器 (5)§3.2 列驱动方式 (10)§3.3 行驱动方式 (11)第四章硬件设计 (13)§4.1硬件电路设计要求 (13)§4.2 总体电路设计构架 (13)§4.3 单片机与液晶显示模块接口 (13)§4.4 单片机与计算机的通信接口 (14)§4.5 电源电路 (15)第五章系统软件设计 (15)§5.1 内置T6963C控制器软件特性 (15)§5.2初始化子程序设计 (19)§5.3 串行通信子程序设计 (20)§5.4 显示控制子程序设计 (21)第六章系统调试 (22)§6.1 分步调试 (22)§6.2 系统统一调试 (23)结束语 (24)附录 (25)参考文献 (30)致谢............................................. 错误!未定义书签。
摘要本文研制一种基于51单片机实时控制的LCD液晶显示屏控制系统。
硬件系统由单片机最小系统和液晶显示系统组成,PC机进行显示内容的编辑和字模数据的提取;液晶显示系统由主控模块T6963C和LCD液晶显示模块接口电路组成,主控模块负责接收单片机字模数据并控制各显示模块工作,显示模块以T6963C主控制器为核心,控制LCD 液晶显示屏显示,为了方便系统扩展,各模块之间的连接采用接插式结构,单片机与PC机之间采用RS232标准接口进行数据和命令的串行通信。
51单片机驱动1602液晶显示器c程序/*程序效果:单片机控制液晶显示器1602 显示字母数字,用户自行更改io程序原创安全:51hei*/#includereg52.h //头文件#define uchar unsigned char //宏定义#define uint unsigned intuchar code table[]=“51HEI XING XING “ ; //显示的字母uchar code table1[]=“51HEI MCUXUE YUAU” ;sbit lcdrs=P1; //寄存器选择引脚sbit lcdwr=P1;//读写引脚sbit lcde=P1 ; //片选引脚void delay(uchar x) //延时子函数{uchar i,j;for(i=x;i0;i--) for(j=110;j0;j--);}void write_com(uchar com) //写指令子函数{ //根据1602 液晶显示器协议编写P2=com; lcdrs=0;lcdwr=0;delay(5);lcde=0; delay(5);lcde=1; }void write_dat(uchar dat) //写数据子函数{P2=dat; lcdrs=1;lcdwr=0;delay(5);lcde=0;delay(5);lcde=1;}void init() //初始化子函数{write_com(0x01); //清屏write_com(0x3f); //功能设置write_com(0x0d); //显示控制write_com(0x06); //输入方式设置}void main(){ uchar i; //定义局部变量init();write_com(0x80+0x02+0x10); //指针的位置for(i=0;i15;i++) //显示{ write_dat(table[i]); delay(50); //延时,用于调节速度不匹配}write_com(0x80+0x40+0x10);for(i=0;i16;i++){ write_dat(table1[i]); delay(50);}for(i=0;i16;i++){ write_com(0x18); delay(50);} while(1);}tips:感谢大家的阅读,本文由我司收集整编。
51单片机YM12864汉字图形点阵液晶显示模块­本文以AT89C51单片机控制使用比较普遍的YM12864液晶显示器为基础,介绍了一种采用分页原理实现多级中文菜单操作的方法。
给出了YM12864主要技术参数、显示特性和核心的程序。
设计的中文菜单具有一定的通用性,只需更改其中的菜单项即可将此设计应用到家电、仪器仪表等设备上,为操作者提供友好方便的中文操作界面。
51单片机YM12864汉字图形点阵液晶显示模块-_典型应用电路图。
目前小型的显示器主要有LCD和LED,LED显示器只能显示数字和有限个英文字符,不能显示汉字,显示内容不直观,操作人员只能根据约定格式了解显示内容。
而LCD则可显示各种汉字和图形,尤其能实现中文菜单显示,为操作者提供方便友好的操作界面,并且功耗低,因此LCD得到广泛应用。
而现在市面上带中文字库的LCD比比皆是,价格适中,且大部分具有与MUC统一的标准接口,为使用LCD实现中文菜单操作提供了很大的方便。
相信更多的电子产品在提升性能的同时,设计更加人性化的中文菜单交互界面,将会使产品具有更广阔的前景。
二、YM12864液晶显示模块简介YM12864汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:电源:VDD 3.3V~+5V(内置升压电路,无需负压)显示内容:128列×64行与MCU接口:8位或4位并行/3位串行多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。
其引脚功能为通用20脚LCD接口,用户指令集也为通用128*64LCD用户指令集,相关资料很容易获取。
因其内置中文字库,省去了自己造字库的工作量,而只需写入相应的汉字和字符内码即可显示所需要的汉字和字符,这在许多程序开发软件中很容易实现,如:WAVE、KEIL等。
51单片机综合学习系统之 12864点阵型液晶显示篇大家好,通过以前的学习,我们已经对51单片机综合学习系统的使用方法及学习方式有所了解与熟悉,学会了1602字符型液晶显示的基本知识,体会到了综合学习系统的易用性与易学性,这一期我们将一起学习12864点阵型液晶显示屏的基本原理与使用方法。
点阵LCD的显示原理在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。
对于显示英文操作,因为英文字母种类很少,只需要8位<一字节)即可。
而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。
而剩下的低128位则留给英文字符使用,即英文的内码。
那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示:图1 “A”字模图而中文的“你”在字模中的记载却如图2所示:图2 “你”字模图12864点阵型LCD简介12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。
可完成图形显示,也可以显示8×4个(16×16点阵>汉字。
管脚号管脚名称LEVER 管脚功能描述1 VSS 0 电源地2 VDD +5.0V 电源电压3 V0 - 液晶显示器驱动电压4 D/I(RS> H/L D/I=“H”,表示DB7∽DB0为显示数据D/I=“L”,表示DB7∽DB0为显示指令数据5 R/W H/L R/W=“H”,E=“H”数据被读到DB7∽DB0R/W=“L”,E=“H→L”数据被写到IR或DR6 E H/L R/W=“L”,E信号下降沿锁存DB7∽DB0R/W=“H”,E=“H”DDRAM数据读到DB7∽DB07 DB0 H/L 数据线8 DB1 H/L 数据线9 DB2 H/L 数据线10 DB3 H/L 数据线11 DB4 H/L 数据线12 DB5 H/L 数据线13 DB6 H/L 数据线14 DB7 H/L 数据线15 CS1 H/L H:选择芯片(右半屏>信号16 CS2 H/L H:选择芯片(左半屏>信号17 RET H/L 复位信号,低电平复位18 VOUT -10V LCD驱动负电压19 LED+ - LED背光板电源20 LED- - LED背光板电源表1:12864LCD的引脚说明在使用12864LCD前先必须了解以下功能器件才能进行编程。
proteus中51控制LM3229液晶显示屏前段时间想弄个大点的液晶来耍,找了一下,我的proteus中最大的也就是LM3229,好像是240*128的,就写以个程序来耍一下,上网找了一下资料,不好找,下了一个朋友的程序,看不懂,最后找到了它的驱动芯片T6963,终于把它搞懂了,自己也写了一个程序,主要是借那个朋友的思路,做了一些改动,添加了一些东西,现吧程序贡献上来,供大家点评,希望对要学习这块芯片的朋友有一点点的帮助上面这副图是前段时间弄的,没弄好,地址没设好,上面有一些乱码今天花了差不多一天的时间搞了一下,发现问题了,从新仿真的图如下还算可以,没有乱码,程序也改了,贴上来,大家个提提意见以前写的是51的,这个是AVR的,都差不多#include <iom16v.h>#include <macros.h>#define uchar unsigned char#define uint unsigned int#define OneLine 32 //液晶每行的宽度#define LCD_CD_H PORTD|=(1<<PD0)#define LCD_CD_L PORTD&=~(1<<PD0)#define LCD_RD_H PORTD|=(1<<PD1)#define LCD_RD_L PORTD&=~(1<<PD1)#define LCD_WR_H PORTD|=(1<<PD2)#define LCD_WR_L PORTD&=~(1<<PD2)#define LCD_CE_H PORTD|=(1<<PD3)#define LCD_CE_L PORTD&=~(1<<PD3)#define LCD_RST_H PORTD|=(1<<PD4)#define LCD_RST_L PORTD&=~(1<<PD4)#define LCD_DATA PORTCvoid Port_init(void){DDRC=0xff;PORTC=0xff;DDRD=0xff;PORTD=0xff;}/****************************************************************************** *名称: WriteData()*功能: 液晶写数据程序,dat为要写入的数据******************************************************************************/ void WriteData(uchar dat) //写数据{LCD_CD_L;LCD_WR_L;LCD_DATA = dat;LCD_WR_H;}/****************************************************************************** *名称: WriteComman()*功能: 液晶写命令程序,cmd为要写入的命令******************************************************************************/ void WriteCommand(uchar cmd) //写命令{LCD_CD_H;LCD_WR_L;LCD_DATA = cmd;LCD_WR_H;}/*******************************************************************************名称: WriteDC()*功能: 液晶写1数据1命令程序,dat为要写入的数据,cmd为要写入的命令******************************************************************************/void WriteDC(uchar dat,uchar cmd) //写一个数据和一个指令{WriteData(dat);WriteCommand(cmd);}/*******************************************************************************名称: WriteDDC()*功能: 液晶写2数据1命令程序,data为要写入的数据,cmd为要写入的命令******************************************************************************/void WriteDDC(uchar data1, uchar data2, uchar cmd) //写两个数据和一个指令{WriteData(data1);WriteData(data2);WriteCommand(cmd);}/*******************************************************************************名称: LCD_Init()*功能: 液晶初始化程序* 初始地址设置好后,在不同的地址段相同WriteData()输出不同******************************************************************************/void LCD_Init(void) //液晶初始化{uchar data1,data2,cmd;LCD_WR_H;LCD_RD_H;/*********************设置文本显示*****************************/data1 = 0x00;data2 = 0x10; //图形显示占用32*128=0xfff,故文本从0x1000开始cmd = 0x40; //设置文本显示区首地址WriteDDC(data1,data2,cmd);data1 = 0x20; //可以整屏显示data2 = 0x00;cmd = 0x41; //设置文本显示区宽度WriteDDC(data1,data2,cmd);data1 = 0x00;data2 = 0x00;cmd = 0x42; //设置图形显示区首地址WriteDDC(data1,data2,cmd);data1 = 0x20;data2 = 0x00;cmd = 0x43; //设置图形显示区宽度WriteDDC(data1,data2,cmd);cmd =0xa2; //设置光标形状WriteCommand(cmd);cmd = 0x80; //显示方式设置//启用外部字符发生器,显示方式是文本与图形与WriteCommand(cmd);cmd = 0x9e; //启用光标闪烁,光标不显示,文本显示与图形显示WriteCommand(cmd);}uchar const Photo_code[] = {/*---- 图片文件来自:【C:\Documents and Settings\Administrator\桌面\0U95aA3-4.jpg】----*/ /*---- 图片宽度:96 图片高度:93 ----*//*---- 本数据文件建立日期:202009-11-12; 建立时间:20:13:38 ----*//*---- 本数据文件由PICtoCODE【图片数据生成器】V1.0自动生成!----*/0x00, 0x00, 0x00, 0x00, 0x07, 0xf0, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x20, 0x03, 0x0D, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x60, 0x13, 0x0D, 0x0C, 0x60, 0x06, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x80, 0x33, 0x0F, 0x08, 0x6C, 0x00, 0x80, 0x00, 0x00,0x00, 0x00, 0x06, 0x00, 0x11, 0x0B, 0x08, 0x4C, 0x00, 0x40, 0x00, 0x00,0x00, 0x00, 0x0C, 0x00, 0x19, 0x09, 0x18, 0x08, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x18, 0x30, 0x78, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0E, 0x00, 0x00, 0x20, 0xC8, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x03, 0x01, 0xC0, 0x00, 0x60, 0x0A, 0x00, 0x70, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x01, 0x60, 0x03, 0x00, 0x00, 0x80, 0x21, 0xB0, 0x40, 0x00, 0x00, 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x20, 0x00, 0x00, 0x08, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0xF0, 0x10, 0x00, 0x00, 0x10, 0x30, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x08, 0x00, 0x00, 0x20, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x40, 0xC3, 0x0C, 0x00, 0x00, 0x01, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x84, 0x00, 0x00, 0x40, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0A, 0xC0, 0x00, 0x00, 0x80, 0x68, 0x20, 0x00, 0x00, 0x00, 0x00, 0x04, 0x1B, 0xC1, 0x00, 0x01, 0x00, 0x30, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01, 0x80, 0x00, 0x08, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x80, 0x02, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x80, 0x00, 0x00, 0x02, 0x07, 0x02, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x40, 0x04, 0x35, 0x80, 0x60, 0x03, 0x18, 0x70, 0x00, 0x00, 0x00, 0xE0, 0x40, 0x00, 0x38, 0x04, 0x67, 0x33, 0x98, 0x70, 0x00, 0x00, 0x00, 0xC0, 0x20, 0x00, 0x1E, 0x0C, 0x67, 0x73, 0x98, 0x3C, 0x1F, 0xFC, 0x00, 0x06, 0x00, 0x08, 0x02, 0x1C, 0x67, 0x73, 0xB8, 0x1F, 0xFF, 0xFF, 0x08, 0x02, 0x10, 0x18, 0x00, 0x0F, 0x7F, 0x3F, 0xF8, 0x0F, 0xFF, 0xFF, 0x80, 0x07, 0x10, 0x11, 0xC0, 0x0F, 0xFC, 0x1F, 0xE0, 0x00, 0x00, 0x01, 0xC0, 0x1F, 0x98, 0x11, 0xE0, 0x43, 0xF8, 0x37, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x39, 0x88, 0x00, 0x1C, 0x40, 0x60, 0xF3, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x08, 0x00, 0x08, 0x00, 0x60, 0xE1, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x61, 0xC3, 0x80, 0x0E, 0x00, 0x00, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0xE1, 0xC3, 0xC0, 0x1C, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x43, 0x30, 0x0F, 0xFF, 0xFE, 0xFE, 0x1E, 0x3F, 0xF8, 0x00, 0x01, 0x84, 0x61, 0xF1, 0x1F, 0x1F, 0xFD, 0x7E, 0x0F, 0xFF, 0xFE, 0x00, 0x0F, 0x04, 0x67, 0xC0, 0x1C, 0xE1, 0xC3, 0x80, 0x07, 0xFF, 0xBF, 0x80, 0x0C, 0x64, 0x46, 0x61, 0x00, 0xE0, 0xC3, 0xC0, 0x00, 0x00, 0x03, 0x80, 0x80, 0x00, 0x40, 0x20, 0x01, 0xFD, 0xCF, 0xFE, 0x00, 0x00, 0x01, 0xC0, 0x80, 0x02, 0x40, 0x00, 0x0F, 0xFF, 0xFE, 0xFE, 0x01, 0xFF, 0x81, 0xC0, 0x00, 0x02,0x40, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x0F, 0x07, 0xF1, 0xC0, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x1F, 0x8F, 0x71, 0xC0, 0x00, 0x02, 0x40, 0x02, 0x00, 0xFF, 0xFF, 0xE0, 0x1D, 0xDC, 0x71, 0xC0, 0x00, 0x02, 0x40, 0x02, 0x00, 0xFF, 0xFF, 0xC0, 0x1C, 0xFC, 0x71, 0xC0, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xF0, 0xF1, 0xC0, 0x00, 0x02, 0x40, 0x00, 0x07, 0xFF, 0xFF, 0xFC, 0x18, 0xF1, 0xF1, 0xC0, 0x00, 0x02, 0x40, 0x00, 0x1F, 0xFF, 0xFF, 0xFE, 0x1B, 0xFF, 0xB1, 0xC0, 0x00, 0x02, 0x40, 0x01, 0x1F, 0x81, 0xC0, 0x10, 0x1F, 0x9F, 0x31, 0xC0, 0x80, 0x00, 0x40, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x1F, 0x1E, 0x31, 0xC0, 0x00, 0x04, 0x60, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x1E, 0x3E, 0x31, 0xC0, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x1C, 0x7F, 0x71, 0xC0, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x1C, 0xF3, 0xF1, 0xC1, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x07, 0x00, 0x1D, 0xE3, 0xF1, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x07, 0x00, 0x0F, 0x81, 0xE1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0F, 0x81, 0xE1, 0xC2, 0x00, 0x08, 0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0xFF, 0xC1, 0xE0, 0x00, 0x08, 0x10, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x01, 0xFF, 0x00, 0xE0, 0x00, 0x08, 0x18, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x10, 0x08, 0x00, 0x20, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x10, 0x08, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x20, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, 0x40, 0x6C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1F, 0x06, 0x00, 0x00, 0x20, 0x8D, 0x00, 0x00, 0x20, 0x04, 0x00, 0x01, 0x97, 0xC4, 0x00, 0x00, 0x10, 0x3B, 0x00, 0x00, 0x60, 0x6E, 0x00, 0x80, 0xFF, 0x88, 0x00, 0x00, 0x08, 0x3D, 0x00, 0x80, 0x62, 0xEF, 0x01, 0x00, 0xE7, 0x10, 0x00, 0x00, 0x0C, 0x4C, 0x00, 0x00, 0x46, 0x70, 0x00, 0x00, 0x70, 0x30, 0x00, 0x00, 0x04, 0x08, 0x06, 0x06, 0x00, 0x00, 0x40, 0x00, 0x30, 0x40, 0x00,0x00, 0x01, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0xD8, 0x01, 0x00, 0x00,0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x01, 0x00, 0x00,0x00, 0x00, 0x40, 0xFE, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x04, 0x00, 0x00,0x00, 0x00, 0x30, 0x7F, 0x00, 0x18, 0x03, 0x40, 0xF8, 0x0C, 0x00, 0x00,0x00, 0x00, 0x0C, 0x0C, 0x03, 0xF6, 0x27, 0xC0, 0x78, 0x30, 0x00, 0x00,0x00, 0x00, 0x06, 0x04, 0x03, 0xFE, 0x07, 0xC0, 0xC0, 0x60, 0x00, 0x00,0x00, 0x00, 0x01, 0x87, 0x03, 0xF6, 0x53, 0xC0, 0x01, 0x80, 0x00, 0x00,0x00, 0x00, 0x00, 0xC0, 0x00, 0x3C, 0x13, 0xC0, 0x06, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x18, 0x00, 0xC4, 0x17, 0x60, 0x18, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x0E, 0x00, 0x84, 0x35, 0xE0, 0x60, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x02, 0xC0, 0x04, 0x20, 0x00, 0x80, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,/*---- 图片文件来自:【C:\Documents and Settings\Administrator\桌面\0710212117359106xhdx.jpg】----*/ /*---- 图片宽度:96 图片高度:27 ----*//*---- 本数据文件建立日期:202009-11-12; 建立时间:20:30:35 ----*//*---- 本数据文件由PICtoCODE【图片数据生成器】V1.0自动生成!----*/0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0E,0x00, 0x00, 0x00, 0x00, 0x20, 0x60, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE6,0x00, 0x00, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x07, 0xCC,0x00, 0x00, 0x00, 0x00, 0x16, 0x80, 0x00, 0x07, 0x00, 0x00, 0x21, 0x88,0x00, 0x00, 0x0C, 0x00, 0x3D, 0x00, 0x00, 0x03, 0x00, 0x00, 0x33, 0x18,0x00, 0x03, 0xFC, 0x00, 0x7B, 0x48, 0x00, 0x03, 0x00, 0x00, 0x1E, 0x30,0x00, 0x7C, 0x70, 0x00, 0x3B, 0xF8, 0x00, 0x03, 0x00, 0x00, 0x9F, 0x70,0x07, 0xE0, 0x00, 0x00, 0x11, 0xF8, 0x00, 0x03, 0x80, 0x00, 0xED, 0x00,0x07, 0xB0, 0x00, 0x00, 0x01, 0xF2, 0x00, 0x03, 0x30, 0x00, 0xC0, 0x60,0x00, 0x1C, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x03, 0x70, 0x00, 0x01, 0x60,0x00, 0x1C, 0x70, 0x00, 0x0F, 0xFC, 0x00, 0x03, 0xE0, 0x00, 0x04, 0x60,0x00, 0x0E, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x03, 0xC0, 0x00, 0x08, 0x80,0x02, 0x1F, 0xF0, 0x00, 0x7B, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x30, 0x3C,0x02, 0x1E, 0xF0, 0x00, 0xF7, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0xFC,0x03, 0x3D, 0xE0, 0x00, 0x7B, 0xF8, 0x00, 0xFF, 0x00, 0x03, 0x83, 0xFC,0x01, 0xF9, 0xC0, 0x00, 0x3B, 0x38, 0x03, 0xC7, 0x00, 0x1F, 0x8F, 0xF0,0x03, 0xBF, 0x80, 0x00, 0xE3, 0xF0, 0x1F, 0x8E, 0x00, 0x1E, 0x3F, 0xC0,0x03, 0xFF, 0x80, 0x03, 0x87, 0x80, 0x0F, 0x0E, 0x10, 0x00, 0x0F, 0x00,0x29, 0xFF, 0x00, 0x07, 0x0F, 0x00, 0x00, 0x1C, 0x18, 0x00, 0x03, 0x00,0x60, 0x60, 0x00, 0x1C, 0x03, 0x00, 0x00, 0x30, 0x1C, 0x00, 0x03, 0x00,0x60, 0x7C, 0x00, 0x78, 0x01, 0x00, 0x00, 0xE0, 0x0C, 0x00, 0x03, 0x00,0x70, 0x1C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00,0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00,0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,};#define CG_length 352uchar const CG_code[] = {0x00,0x00,0x7F,0x03,0x03,0x23,0x3F,0x33,0x33,0x33,0x36,0x38,0x30,0x3F,0x30,0x20, 0x00,0x02,0xFF,0x60,0x60,0x62,0xFF,0x66,0x66,0x7E,0x3E,0x06,0x06,0xFE,0x06,0x04,//"西", 0x04,0x06,0x0C,0x08,0x1C,0x3C,0x4C,0x0D,0x0C,0x09,0x01,0x7F,0x01,0x01,0x01,0x01, 0x40,0x68,0x6C,0x78,0x70,0xE0,0xE4,0x64,0x7E,0xBC,0x82,0xFF,0x80,0x80,0x80,0x80,//"华", 0x01,0x01,0x01,0x01,0x01,0x3F,0x01,0x01,0x03,0x03,0x06,0x06,0x0C,0x18,0x30,0x40, 0x00,0x80,0x80,0x80,0x84,0xFE,0x80,0xC0,0x40,0x60,0x20,0x30,0x18,0x0E,0x07,0x02,//"大", 0x09,0x0D,0x14,0x3F,0x70,0x20,0x07,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x03,0x00, 0x10,0x98,0xB2,0xFF,0x06,0x24,0xF0,0x60,0xC0,0xC4,0xFE,0xC0,0xC0,0xC0,0xC0,0x80,//"学", 0x08,0x06,0x12,0x1F,0x19,0x19,0x1F,0x19,0x19,0x1F,0x01,0x7F,0x01,0x01,0x01,0x01, 0x30,0x60,0xC8,0xFC,0x98,0x98,0xF8,0x98,0x98,0xF8,0x84,0xFE,0x80,0x80,0x80,0x80,//"单", 0x00,0x10,0x18,0x18,0x1F,0x18,0x18,0x18,0x1F,0x18,0x18,0x30,0x30,0x20,0x40,0x00, 0x40,0x60,0x60,0x62,0xFF,0x00,0x00,0x10,0xF8,0x30,0x30,0x30,0x30,0x30,0x30,0x30,//"片",0x10,0x19,0x19,0x19,0x7F,0x19,0x39,0x3D,0x3F,0x5B,0x59,0x19,0x19,0x1B,0x1A,0x14, 0x00,0x08,0xFC,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x1A,0x1A,0x1F,0x0E,//"机", 0x00,0x03,0x1C,0x06,0x12,0x3F,0x73,0x2F,0x03,0x07,0x07,0x0D,0x08,0x11,0x23,0x0C, 0x18,0xFC,0x90,0xD8,0xB2,0xFF,0x06,0xFC,0x08,0xFC,0x18,0xB0,0xE0,0xB8,0x1F,0x06,//"爱", 0x08,0x0C,0x0C,0x18,0x1A,0x7F,0x1B,0x1B,0x36,0x36,0x1C,0x0E,0x1B,0x33,0x22,0x40, 0x02,0xFF,0x06,0x0C,0x10,0x18,0x1A,0xFF,0x18,0x18,0x18,0x18,0x18,0x58,0x38,0x10,//"好", 0x01,0x01,0x1F,0x01,0x01,0x01,0x7F,0x03,0x0F,0x1C,0x6C,0x0F,0x0C,0x0C,0x0F,0x08, 0x80,0xA4,0xF6,0x8C,0x98,0xE2,0xFF,0x08,0xFC,0x18,0x18,0xF8,0x18,0x18,0xF8,0x10,// "者", 0x30,0x30,0x31,0x33,0x36,0x3C,0x38,0xFF,0xFF,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x70,0xF0,0xF0,0x30,0x30,0x30,0x30,0xFF,0xFF,0x30,0x30,0x30,0x30,0xF0,0xF0,0x70 //图标} ;/*******************************************************************************名称: Write_Str()*功能: 液晶写字符程序,显示ASCII字符,row为行(0~15),rol为列(0~29)* 显示ASCII字符为8*8点阵(屏为240*128点阵)******************************************************************************/void Write_Str(uchar row,uchar rol,uchar str){uint addres;uchar data1,data2;addres=row*32+rol+0x1000;data2=addres>>8;data1=addres;WriteDDC(data1,data2,0x24);WriteCommand(0xb0);WriteData(str);WriteCommand(0xb2);}/*******************************************************************************名称: Write_Photo()*功能: 液晶画图程序,row为图片开始行(0~127),rol为图片开始列(0~29),* width为图片长(单位Bit),deep 为图片宽(单位bit)******************************************************************************/void Write_Photo(uchar row,uchar rol,uchar width,uchar deep){uint address,Photolength,i;uchar j,data1,data2,cmd;Photolength=width*deep;address = row*32+rol;data1 = address; //取地址低八位data2 = address>>8; //取地址高八位cmd = 0x24;WriteDDC(data1,data2,cmd);WriteCommand(0xb0);for(i=0;i<Photolength;i++){WriteData(Photo_code[i]);j++;if(j==width){WriteCommand(0xb2); //退出自动写模式address=address+32;data1 = address; //取地址低八位data2 = address>>8; //取地址高八位cmd = 0x24;WriteDDC(data1,data2,cmd);j=0;WriteCommand(0xb0); //进入自动写模式}}WriteCommand(0xb2);}/*******************************************************************************名称: Write_Chinese()*功能: 液晶写汉字程序,row为汉字开始行,rol为汉字开始列,Chinese为汉字字符串在* CGRAM中的初地址,length为汉字字符串的长度,(一个16*16点阵的汉字长度为4)******************************************************************************/void SetCGRAM(void){uchar data1,data2,cmd;uint i;data1 = 0x03;data2 = 0x00; //设置偏移地址寄存器cmd = 0x22;WriteDDC(data1,data2,cmd);data1 = 0x00;data2 = 0x1c;cmd = 0x24; //设置地址指针WriteDDC(data1,data2,cmd);cmd = 0xb0; //进入自动写模式WriteCommand(cmd);for (i = 0;i < CG_length; ++i){WriteData(CG_code[i]);}cmd = 0xb2; //退出自动写模式WriteCommand(cmd);}/*******************************************************************************名称: Write_Chinese()*功能: 液晶写汉字程序,row为汉字开始行(0~15),rol为汉字开始列(0~29),* Chinese为汉字字符串在CGRAM中的初地址,* length为汉字字符串的长度,(一个16*16点阵的汉字长度为4)******************************************************************************/void Write_Chinese(uchar row,uchar rol,uchar Chinese,uchar length) // 0x80 0x82 0x84 86 { // 0x81 0x83 0x85 87uchar data1,data2,cmd;uchar i;uint address;/****************先写汉字上半部分*********************************/address = row * 32 + rol+0x1000;data1 = address; //取地址低八位data2 = address>>8; //取地址高八位cmd = 0x24; //设置地址指针,字符显示首位置WriteDDC(data1,data2,cmd);cmd = 0xb0; //进去自动写模式WriteCommand(cmd);for(i=0;i<length;i++){WriteData(Chinese+i);i++;}cmd = 0xb2; //退出自动写模式WriteCommand(cmd);/****************再写汉字下半部分*********************************/ address = address+32;data1 = address; //取地址低八位data2 = address>>8; //取地址高八位cmd = 0x24; //设置地址指针,字符显示首位置WriteDDC(data1,data2,cmd);cmd = 0xb0; //进去自动写模式WriteCommand(cmd);for(i=1;i<length;i++){WriteData(Chinese+i);i++;}cmd = 0xb2; //退出自动写模式WriteCommand(cmd);}/****************************************************************************** *名称: main()*功能: 主函数,画图,写汉字,写汉字前应设置CGRAM******************************************************************************/ void main(void){Port_init();LCD_Init();SetCGRAM();Write_Photo(1,2,12,120);Write_Chinese(3,19,0x80,16) ;Write_Chinese(6,17,0x90,24) ;Write_Chinese(9,22,0xa8,4) ;while(1);}。
基于MCS51单片机的LED显示屏控制器设计与实现一、概述随着科技的飞速发展,LED显示屏已广泛应用于各种公共场合,如商场、车站、广场等,成为信息传播和展示的重要工具。
要使LED 显示屏正常工作并呈现出丰富多彩的视觉效果,就需要一个高效、稳定的控制器。
基于MCS51单片机的LED显示屏控制器,以其性价比高、编程灵活、稳定性强等特点,在LED显示屏控制领域得到了广泛的应用。
MCS51单片机,作为一种经典的8位单片机,自问世以来就在工业自动化、智能仪表、消费类电子等领域发挥着重要作用。
其强大的IO处理能力、灵活的编程方式以及稳定的性能,使得它成为LED显示屏控制器的理想选择。
本文将详细介绍基于MCS51单片机的LED显示屏控制器的设计与实现过程。
我们将对LED显示屏的基本原理和工作方式进行阐述,接着分析MCS51单片机的特点和在LED显示屏控制中的应用优势。
我们将从硬件设计和软件编程两个方面,详细介绍如何构建一个稳定、高效的LED显示屏控制器。
我们将通过实例展示,验证所设计的LED显示屏控制器的实际效果和应用价值。
通过本文的阅读,读者将能够深入了解基于MCS51单片机的LED 显示屏控制器的设计与实现过程,为实际工程项目中的LED显示屏控制器的设计与开发提供有益的参考和借鉴。
1. LED显示屏的发展背景和应用领域随着科技的飞速发展,信息显示技术也取得了巨大的进步。
LED 显示屏作为一种先进的显示技术,以其高亮度、高清晰度、色彩鲜艳、寿命长、功耗低等优点,逐渐在各个领域取代了传统的显示设备。
LED 显示屏的发展背景和应用领域广泛,为现代社会的信息传播和视觉呈现提供了强有力的支持。
在LED显示屏的发展背景方面,其技术进步是扩大市场需求及应用的最大推动力。
随着半导体材料和芯片制造技术的不断突破,LED 的性能得到了极大的提升,从而推动了LED显示屏的快速发展。
同时,随着大规模集成电路和计算机技术的不断进步,LED显示屏的控制技术也得到了显著提升,使得LED显示屏在显示效果、稳定性和可靠性等方面都有了很大的提高。