【51单片机】1602 CGRAM、CGROM及DDRAM的作用



CGRAM 允许用户自建字模区的空间从CGROM表上可以看到,在表的最左边是一列可以允许用户自定义的CGRAM,从上往下看着是16个,实际只有8个字节可用。它的字符码是00000000-00000111这8个地址,表的下面还有8个字节,但因为这个CGRAM的字符码规定0-2位为地址,3位无效,4-7全为零(表上的高位)。因此CGRAM的字符码只有最后三位能用也就是8个字节了。等效为0000X111,X为无效位,最后三位为000-111共8个。


CGROM  :   字模存储用空间。你要显示某个ASCII字符时,要显示字符的字模就存在这里。


DDRAM   :  显示用RAM直接和屏幕上的点相对应。屏幕上的一个点和DDRAM中的一个位对应。


1602液晶屏一行显示16个,对应于00-0F/40-4F,而DDRAM可以储存80个,如果需要显示10-27/50-67的内容就需要用到左移右移来实现。


总结DDRAM是用来使液晶屏显示的,CGROM是液晶屏可以显示的内容(在CGROM 表中查看),CGRAM是用来扩展液晶屏可以显示的内容。


  • 25
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一、 Delay延时函数 1、 DelayUs2x------------------------ uS延时函数 2、 DelayMs-------------------------- mS延时函数 二、 Timer定时器初始化函数 1、 Init_Timer0---------------定时器初始化子程序 三、 8位共阴数码管显示函数 1、Display-----------显示函数,用于动态扫描数码管 2、Remove_Zero---------------消隐显示数字前边的零 四、 矩阵按键扫描函数 1、KeyScan-------键盘扫描函数,使用行列反转扫描法 2、KeyPro--------------按键值处理函数,返回扫键值 五、 独立按键检测函数 1、KeyCheck---------------------独立按键扫描函数 六、 I2C总线 24C02函数 1、Start_I2c----------------------------启动总线 2、Stop_I2c-----------------------------结束总线 3、SendByte---------------------字节数据传送函数 4、RcvByte----------------------字节数据接收函数 5、Ack_I2c----------------------------应答子函数 6、NoAck_I2c------------------------非应答子函数 7、ISendByte--------向无子地址器件发送字节数据函数 8、ISendStr-------向有子地址器件发送多字节数据函数 9、IRcvByte----------向无子地址器件读字节数据函数 10、IRcvStr-------向有子地址器件读取多字节数据函数 七、 双色点阵8X8 LED 驱动函数 1、Send1Byte-------------------------发送字节程序 2、Send2Byte------------------------发送双字节程序 3、Send1_Byte-----------发送字节程序, 带有方向参数 4、Send2_Byte---------发送双字节程序, 带有方向参数 5、Out595-----------------------------595锁存程序 6、SendSeg-----------------------发送位码字节程序 八、 LCD1602函数 1、LCD_Check_Busy -------------------LCD读忙信号 2、LCD_Write_Com ---------------------写命令指令 3、LCD_Write_Data --------------------写数据指令 4、LCD_Clear ---------------------------清屏函数 5、LCD_Write_String ----------------写一个字符串 6、LCD_Write_Char --------------------写一个字符 7、LCD_Init --------------------------lcd初始化 8、Lcd_User_Chr ------------------用户自定义字符 9、LCD_set_xy -------设置显示地址:X为横轴(0-15),Y为纵轴(0-1) 10、LCD_write_int ---------------写无字符型整形数 九、 18B20温度传感器函数 1、Init_DS18B20 ---------------------18b20初始化 2、ReadOneChar----------------------读取一个字节 3、WriteOneChar --------------------写入一个字节 4、ReadTemperature ---------------------读取温度 十、DS1302 实时时钟驱动函数 1、Ds1302_Write_Byte ----向DS1302写入一字节数据 2、Ds1302_Read_Byte -----从DS1302读出一字节数据 3、Ds1302_Write_Time ------向DS1302写入时钟数据 4、Ds1302_Read_Time -------从DS1302读出时钟数据 5、Ds1302_Init ------------------- DS1302初始化 十一、串口通讯uart函数 1、UART_Init ------------------------串口初始化 2、UartSendByte--- ----------------发送一个字节 3、UartSendStr -------------------发送一个字符串 十二、标准PS2驱动函数 1、PS2_Init --------------------------PS2初始化 2、GetChar--- -----------读取键盘数据 并解码信息 十三、红外解码函数 1、EX0init --------------------外部中断0初始化 2、Ir_work--- -------------------------键值处理 3、Ircordpro -----------------------红外码值处理 十四、IIC协议 PCF8591 AD/DA转换函数 1、ReadADC ------------------------读AD转值程序 2、WriteDAC--- ------------------写入DA转换数值 十五、字库ST7920 12864液晶驱动函数 1、Check_Busy --------------------------检测忙位 2、Write_Cmd -----------------------------写命令 3、Write_Data ----------------------------写数据 4、Init_ST7920 ---------------------液晶屏初始化 5、CGRAM--------------------------用户自定义字符 6、DisplayCGRAM --------------显示用户自定义字符 7、LCD_PutString ---------------------显示字符串 8、ClrScreen -------------------------------清屏 9、LCD_PutGraphic ----------------------显示图片 10、DisplayUpdata ------------------调用显示更新 十六、2.4寸TFT彩屏驱动函数 1、ILI9325_Initial ------------------液晶初始化 2、Write_Cmd_Data -------------------写命令数据 3、Write_Cmd-----------------------------写命令 4、Write_Data --------------------写数据 双8位 5、Write_Data_U16-------------------写16位数据 6、LCD_SetPos -------------------------定位坐标 7、ClearScreen -------------------------清屏函数 8、LCD_PutChar8x16 ------------显示8*16英文字符 9、LCD_PutChar ---------------------显示英文字符 10、PutGB1616 --------------------显示16*16汉字 11、LCD_PutString --------------------显示字符串 12、Show_RGB -----------------------显示RGB颜色 13、show_photo--------------------------显示图片 14、delayms ----------------------------延时函数 15、Put_pixel-------------------------------画点 16、Line----------------------------在屏幕上画线 17、Rectangle-------------------------绘制矩形框 18、Bar-----------------------------绘制平面矩形 19、LCDShow_uCharNumber-------向LCD发送一个0--255的数值 十七、SD卡驱动函数 1、SdWrite ------写一字节到SD卡,模拟SPI总线方式 2、SdRead -------从SD卡读一字节,模拟SPI总线方式 3、SdResponse--------------------检测SD卡的响应 4、SdCommand ----------------------发命令到SD卡 5、SdInit----------------------------初始化SD卡 6、SdWriteBlock ------------往SD卡指定地址写数据 7、SdReadBlock ----------从SD卡指定地址读取数据节
单片机原理与应用 综合实验报告 LCD1602字符液晶滚动演示程序 专业班级: 姓  名: 学 号: 时 间: 指导教师: 2012年 05月 23日 LCD1602字符液晶滚动演示程序 摘要:本设计以单片机作为LCD液晶显示系统控制器为主线,基于单片机89C51,采用的 液晶显示器是LCD1602,主要用来显示字母、数字、符号,滚屏、左右移动以及实时控制 功能。同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明 ,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程。本设计 还介绍了显示原理、硬件电路和软件部分的设计原理。 关键词:1602液晶显示器 89C51单片机 并行通信 1 引言: 液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的 优点。近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。液晶显 示器分为字符型LCD显示模块和点阵型LCD显示模块。字符型LCD是一种用5×7点阵图形来 显示字符的液晶显示器。点阵型液晶可显示用户自定义的任意符号和图形,并可卷动显 示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显 示的仪器仪表中。支持汉字显示的点阵型液晶在现代单片机应用系统中是一种十分常用 的显示设备,汉字BP机、手机上的显示屏就是点阵型LCD。点阵型LCD是现代单片机应用 系统中最常用的人机交互界面之 利用单片机控制液晶显示系统的原理,完成单片机液晶显示系统的设计,我希望能够 触类旁通,灵活应用其他型号的液晶显示控制器。将来如果有机会从事这方面的工作, 要运用的液晶显示控制器不一定是KS0108,但这次毕业设计中学到的东西为此打下了良 好的基础,相信自己能做好这方面的工作。 2 总体设计方案 2.1 设计思路 2.1.1 本设计主要是通过控制89C51单片同的引脚来控制LCD1602显示给定的符号、字母、数字 ,以及控制显示内容的垂直移动和水平移动。由于LCD1602的字符有相应的字符代码,不 用编写字库,因此在设计时对方案的选择就只考虑单片机与显示器的数据传送类型,即 串行通信和并行通信。 (1)方案确立: 方案一:串行通信 串行通信是反映一个数据的所有位按一定的顺序和方式,一位一位地通过串行输入/ 输出口进行传送。由于串行通信是数据的逐位顺序传送,在进行通信时,只需一根传输 线,其传送的数据位多且通信距离长。串行通信方式如图1所示。 方案二:并行通信 采用并行传送方式在微机与外部设备之间进行数据传送的接口叫并行接口。主要特点 :一是同时并行传送的二进位数就是数据宽度;二是在计算机与外设间采用应答式的联 络信号来协调双方的数据操作。传送的数据位1- 128位,一般为8位。单片机与外部设备之间也通常采用8位并行I/O接口进行短距离的通 信其传输距离近,传送方式单一,每次传送一个字或一个字节。并行通信方式如图2所示 。 图1 串行通信方式 图2 并行通信方式 由于本设计的传输距离不远,所用I/O口不多,所以方案二既可满足课程设计的基本 要求又能充分发挥其优势,电路简单,易控制,所以采用该方案。 2.2 设计方框图 图3 系统总体方框图 3 设计原理分析 本设计主要是通过控制89C51单片同的引脚来控制LCD1602显示给定的符号、字母、数 字,以及控制显示内容的垂直移动和水平移动。在控制LCD1602过程中主要是通过LCD16 02显示模指令和单片机的中断嵌套来实现的。由于在编程时最主要的就是使用LCD1602显 示模指令来实现写指令和写数据功能,所以下面我给出其显示模指令集、写操作时序及 RAM地址映射。 LCD1602显示模指令集: (1)清屏 功能:清DDROM值和AC值 (2)归位 功能:光标复位,光标返回到地址00H (3)输入方式设置 功能:设置光标,画面移动方式。 其中:I/D=1:数据读写操作后,AC 自加一; I/D=0:数据读写操作后,AC 自减一; S=1:数据读写操作,画面平移; S=0:数据读写操作,画面不动; (4)显示开关控制 功能:设置显示、光标和闪烁开关。 其中:D 表示显示开关,D=1 为开,D=0 为关; C 表示光标开关,C=1 为开,C=0 为关; B 表示闪烁开关,B=1 为开,B=0 为关。 (5)光标、画面位移 功能:光标、画面移动。 其中:S/C=1 画面移动一个字符位; S/C=0 光标移动一个字符位; R/L=1:右移;R/L=0 左移。 (6)功能设置 功能:工作方式设置(初始化指令)。 其中:DL=1,8 位数据接口; DL=0,4 位数据接口; N=1,两行显示;N=0,一行显示; F=1,5*10 点阵显示;F=0,5*7 点阵显示。 (7)CGRAM 地址

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值