首页 [教学]基于C8051F410单片机的12864带字库点阵LCD显示器设计

[教学]基于C8051F410单片机的12864带字库点阵LCD显示器设计

举报
开通vip

[教学]基于C8051F410单片机的12864带字库点阵LCD显示器设计[教学]基于C8051F410单片机的12864带字库点阵LCD显示器设计 题 目:基于C8051F410的128*64带字库点阵LCD 显示器设计 班 级: 姓 名: 学 号: 基于C8051F410的128*64带字库点阵LCD显示器设计 (温州大学物理与电子信息工程学院) 摘要:128*64带字库点阵LCD显示器可以显示8×4行16×16点阵的汉字。显示数据RAM(DDRAM)模块内部显示数据RAM提供64×2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM...

[教学]基于C8051F410单片机的12864带字库点阵LCD显示器设计
[教学]基于C8051F410单片机的12864带字库点阵LCD显示器 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 题 目:基于C8051F410的128*64带字库点阵LCD 显示器设计 班 级: 姓 名: 学 号: 基于C8051F410的128*64带字库点阵LCD显示器设计 (温州大学物理与电子信息工程学院) 摘要:128*64带字库点阵LCD显示器可以显示8×4行16×16点阵的汉字。显示数据RAM(DDRAM)模块内部显示数据RAM提供64×2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型 。 字符显示RAM在液晶模块中的地址80H,9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系。 带中文字库的128X64-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。 关键词:LCD液晶屏,并行接口,控制器接口信号,基本指令,扩充指令,字符显示,图形显示 1 12864点阵LCD液晶屏带中文字库详细介绍 *64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、带中文字库的128 二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 2 基本特性 (1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点 (3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符 (5)、2MHZ时钟频率 (6)、 显示方式:STN、半透、正显 (7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点 (9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选 (11)、内置DC-DC转换电路,无需外加负压 (12)、无需片选信号,简化软件设计(13)、工作温度: 0? - +55? ,存储温度: -20? - +60? 3 模块接口说明 并行接口 管脚号 管脚名称 电平 管脚功能描述 1 VSS 0V 电源地 2 VCC 3.0+5V 电源正 3 V0 - 对比度(亮度)调整 4 RS=“H”, 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示DB7——DB0为显示数据 RS(CS) H/L RS=“L”,表示DB7——DB0为显示指令数据 5 R/W=“H”,E=“H”,数据被读到DB7——DB0 R/W(SID) H/L R/W=“L”,E=“H?L”, DB7——DB0的数据被写到IR或DR 6 E(SCLK) H/L 使能信号 7 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 PSB H/L H:8位或4位并口方式,L:串口方式(见注释1) 16 NC - 空脚 17 /RESET H/L 复位端,低电平有效(见注释2) 18 VOUT - LCD驱动电压输出端 19 A VDD 背光源正端(+5V)(见注释3) 20 K VSS 背光源负端(见注释3) *注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。 *注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。 *注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。 4 模块主要硬件构成说明 控制器接口信号说明: 4.1RS,R/W的配合选择决定控制界面的4种模式: RS R/W 功能说明 L L MPU写指令到指令暂存器(IR) L H 读出忙标志(BF)及地址记数器(AC)的状态 H L MPU写入数据到数据暂存器(DR) H H MPU从数据暂存器(DR)中读出数据 4.2E信号 E状态 执行动作 结果 高——>低 I/O缓冲——>DR 配合/W进行写数据或指令 高 DR——>I/O缓冲 配合R进行读数据或指令 低/低——>高 无动作 ? 忙标志:BF BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.利用STATUS RD 指令,可以将BF读到DB7总线,从而检验模块之工作状态. ? 字型产生ROM(CGROM) 字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY ON),DDRAM 的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。DFF 的状态是指令DISPLAY ON/OFF和RST信号控制的。 ? 显示数据RAM(DDRAM)模块内部显示数据RAM提供64×2个位元组的空间,最多可控制4 行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H—0006H的编码中(其代码分别是0000、0002、0004、0006共4个)将选择CGRAM的自定义字型,02H—7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140—D75F),GB(A1A0-F7FFH)。 ? 字型产生RAM(CGRAM) 字型产生RAM提供图象定义(造字)功能, 可以提供四组16×16点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。 ? 地址计数器AC地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6——DB0中。 光标/闪烁控制电路 此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。 5 指令说明 模块控制芯片提供两套控制命令,基本指令和扩充指令如下: 指令表1:(RE=0:基本指令) 指 指 令 码 功 能 令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 清除 将DDRAM填满"20H",并且设定0 0 0 0 0 0 0 0 0 1 显示 DDRAM的地址计数器(AC)到"00H" 设定DDRAM的地址计数器(AC)到地址 0 0 0 0 0 0 0 0 1 X "00H",并且将游标移到开头原点位置;归位 这个指令不改变DDRAM 的内容 D=1: 整体显示 ON 显示状0 0 0 0 0 0 1 D C B C=1: 游标ON 态开/关 B=1:游标位置反白允许 进入点 指定在数据的读取与写入时,设定游标0 0 0 0 0 0 0 1 I/D S 设定 的移动方向及指定显示的移位 游标或设定游标的移动与显示的移位控制位;显示移0 0 0 0 0 1 S/C R/L X X 这个指令不改变DDRAM 的内容 位控制 DL=0/1:4/8位数据 功能 0 0 0 0 1 DL X RE X X RE=1: 扩充指令操作 设定 RE=0: 基本指令操作 设定 CGRAM 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 设定CGRAM 地址 地址 设定设定DDRAM 地址(显示位址) DDRAM 0 0 1 0 AC5 AC4 AC3 AC2 AC1 AC0 第一行:80H,87H 地址 第二行:90H,97H 读取忙读取忙标志(BF)可以确认内部动作是标志和0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 否完成,同时可以读出地址计数器(AC)地址 的值 写数据1 0 数据 将数据D7——D0写入到内部的RAM 到RAM (DDRAM/CGRAM/IRAM/GRAM) 读出1 1 数据 从内部RAM读取数据D7——D0 RAM的(DDRAM/CGRAM/IRAM/GRAM) 值 指令表2:(RE=1:扩充指令) 指 指 令 码 功 能 令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 待进入待命模式,执行其他指令都棵终止 命 0 0 0 0 0 0 0 0 0 1 待命模式 模式 卷动0 0 0 0 0 0 0 0 1 SR SR=1:允许输入垂直卷动地址 地址SR=0:允许输入IRAM和CGRAM地址 开关 开启 反选择2行中的任一行作反白显示,并可白 决定反白与否。初始值R1R0,00,第一0 0 0 0 0 0 0 1 R1 R0 选次设定为反白显示,再次设定变回正常 择 睡SL=0:进入睡眠模式 眠 SL=1:脱离睡眠模式 0 0 0 0 0 0 1 SL X X 模 式 扩CL=0/1:4/8位数据 充 RE=1: 扩充指令操作 功RE=0: 基本指令操作 0 0 0 0 1 CL X RE G 0 能 G=1/0:绘图开关 设 定 设定设定绘图RAM 绘图0 0 0 AC3 AC2 AC1 AC0 先设定垂直(列)地址AC6AC5„AC0 0 0 1 RAM AC6 AC5 AC4 AC3 AC2 AC1 AC0 再设定水平(行)地址AC3AC2AC1AC0 地址 将以上16位地址连续写入即可 备注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。 6 应用举例 6.1使用前的准备:先给模块加上工作电压,再按照下图的连接方法调节LCD的对比度,使其显示出黑色的底影。此过程亦可以初步 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 LCD有无缺段现象。 6.2字符显示:带中文字库的128X64-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X64-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同, 可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:0000,0006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H,7FH显示半宽ASCII码字符,A1A0H,F7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H,9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。 80H 81H 82H 83H 84H 85H 86H 87H 90H 91H 92H 93H 94H 95H 96H 97H 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 98H 99H 9AH 9BH 9CH 9DH 9EH 9FH 字符显示举例 以下为内部电压VDD和文字显示代码 #include #include #define uchar unsigned char #define uint unsigned int uchar flag=0; unsigned char sendata[]={'V','D','D',' ',':','0','0','0','0', 'm','V'}; unsigned char fang[]={"方成杰"}; unsigned int i; sbit RS=P1^3; sbit RW=P1^4; sbit EN=P1^5; sbit PSB=P1^6; sbit RET=P0^7; sfr16 TMR2RL = 0xca; // 定时器2重载值 P210 这里采用的是定时器2的16位自动重载 sfr16 TMR2 = 0xcc; // 定时器2计数值 sfr16 ADC0 = 0xbd; // P35 ADC0的采样值 #define SYSCLK 24500000 // 内部晶振频率为24.5MHz #define BAUDRATE 115200 // 串口通讯波特率为115200 void SYSCLK_Init (void) { OSCICN = 0x83; // 内部振荡器不分频为24.5MHz P138 RSTSRC = 0x04; // 复位源寄存器 时钟丢失检测器标志置1, P110 CLKSEL = 0x00; } void PCA_Init() { PCA0MD &= ~0x40; PCA0MD = 0x00; } void PORT_Init (void) { // P0.0 - Unassigned, Open-Drain, Digital // P0.1 - Unassigned, Open-Drain, Digital // P0.2 - Unassigned, Open-Drain, Digital // P0.3 - Unassigned, Open-Drain, Digital // P0.4 - TX0 (UART0), Push-Pull, Digital // P0.5 - RX0 (UART0), Push-Pull, Digital // P0.6 - Unassigned, Open-Drain, Digital // P0.7 - Unassigned, Open-Drain, Digital // P1.0 - Unassigned, Open-Drain, Digital // P1.1 - Skipped, Open-Drain, Analog // P1.2 - Unassigned, Open-Drain, Digital // P1.3 - Skipped, Push-Pull, Digital // P1.4 - Skipped, Push-Pull, Digital // P1.5 - Skipped, Push-Pull, Digital // P1.6 - Skipped, Push-Pull, Digital // P1.7 - Unassigned, Open-Drain, Digital // P2.0 - Skipped, Push-Pull, Digital // P2.1 - Skipped, Push-Pull, Digital // P2.2 - Skipped, Push-Pull, Digital // P2.3 - Skipped, Push-Pull, Digital // P2.4 - Skipped, Push-Pull, Digital // P2.5 - Skipped, Push-Pull, Digital // P2.6 - Skipped, Push-Pull, Digital // P2.7 - Skipped, Push-Pull, Digital P1MDIN = 0xFD; P0MDOUT = 0x30; P1MDOUT = 0x78; P2MDOUT = 0xFF; P1SKIP = 0x7A; P2SKIP = 0xFF; XBR0 = 0x01; XBR1 = 0x40; } void delay_50us(uint t) { uchar i=2; while(t--) while(i--); } void delay_50ms(uint t) { uint i,j,k; for (i=t;i>0;i--) for (j=57;j>0;j--) for(k=100;k>0;k--); } void write12864com(uchar com) { RS=0; RW=0; delay_50us(1); P2=com; EN=1; delay_50us(1); EN=0; delay_50us(1); } void write12864dat(uchar dat) { RS=1; RW=0; delay_50us(1); P2=dat; EN=1; delay_50us(1); EN=0; delay_50us(1); } void initinal12864(void) { PSB=1; RET=1; delay_50ms(2); write12864com(0x30); delay_50us(2); write12864com(0x30); delay_50us(2); write12864com(0x0c); delay_50us(1); write12864com(0x01); delay_50us(20); write12864com(0x06); delay_50us(2); } void write12864place(uchar x,uchar y) { uchar tempaaa=0x80; switch(x) { case 1: tempaaa=0x7f; break; case 2: tempaaa=0x8f; break; case 3: tempaaa=0x87; break; case 4: tempaaa=0x97; break; } tempaaa=tempaaa+y; write12864com(tempaaa); delay_50us(4); } void Timer2_Init (void) { TMR2CN = 0x00; // 定时器2控制寄存器 P213 停止定时器2,清空TF2标志位,以系统时钟为基准,16位自动重装载 CKCON = 0x30; // 时钟控制寄存器 P208 1:允许定时器2低字节中断。 1:使能定时器2捕捉方式。1-0 00 24.5/12 TMR2RL = - (SYSCLK / 10000); // 重载值为100uS TMR2 = 0xffff; // 设置计数值 TR2 = 1; // 启动定时器2 } void ADC0_Init (void) { ADC0CN = 0x03; // ADC0控制寄存器 P46 11:定时器2溢出启动ADC0转换。 REF0CN = 0x13; // 电压基准控制寄存器 P61 内部电压基准设置为2.2V。并输出至VREF脚 ADC0MX = 0x19; // ADC0通道选择寄存器 P43 选择P1.1作为ADC0输入通道 ADC0CF = ((SYSCLK/3000000)-1)<<3; // set SAR clock to 3MHz ADC0配置寄存器 P44 ADC0CF |= 0x00; // right-justify results /* 位7-3: AD0SC4-0:ADC0 SAR转换时钟周期控制位 位2:-1AD0RPT:ADC0重复次数 控制ADC0转换结束(AD0INT)和ADC0窗口比较中断(AD0WINT)之间的转换和累加次数。 在突发模式未被使能时,每次转换都需要一次转换启动。在突发模式,一次转换启动能触发多个自定时的转换。 在这两种模式下,转换结果都被累加到ADC0H:ADC0L寄存器。 当AD0RPT1-0的设置值不为‘00’时,ADC0CN寄存器中的AD0LJST位必须被清0(右对齐)。 00:执行1次转换。 01:执行4次转换转换和累加。 10:执行8次转换转换和累加。 11:执行16次转换转换和累加。 位0: 保留。读 = 0b,必须写0b。*/ EIE1 |= 0x08; // 扩展中断允许1 P95 扩展中断允许1 允许AD0INT标志的中断请求。 AD0EN = 1; // ADC0控制寄存器中的使能位 位7 /*位7: AD0EN:ADC0使能位 0:ADC0禁止。ADC0处于低耗断点状态。 1:ADC0使能。ADC0处于活动状态,可以进行转换数据。 */ } void UART0_Init (void) { SCON0 = 0x10; //设置UART0为8位通信方式 P184 允许接收 TH1 = 0x96; // CKCON |= 0x08; //系统时钟12分频 TL1 = TH1; // 自动装载 TMOD &= ~0xf0; // p207 设置为定时器1方式 TMOD |= 0x20; // 设置8位自动重载定时器 TR1 = 1; //开启定时器1 TI0 = 1; //发送完一字节数据后串行口中断置1 } //----------------------------------------------------------------------------- void ADC0_ISR (void) interrupt 10 { static unsigned long accumulator = 0; // 用于平均值的累加和 static unsigned int measurements = 2048; // 用于平均值的采样次数 unsigned long result=0; // 存放计算后的采样平均值 unsigned long mV; // 用于存储最后的电压值 unsigned int i; AD0INT = 0; // ADC0控制寄存器 P46 位5 /* 位5: AD0INT:ADC0转换结束中断标志 0:从最后一次AD0INT清0后,ADC0还没有完成一次数据转换。 1:ADC0完成了一次数据转换。*/ accumulator += ADC0; //采样值累加 measurements--; //次数减一 if(measurements == 0) //判断是否达到采样平均次数 { measurements = 2048; //重新赋值采样次数 result = accumulator / 2048; //计算2048次采样的平均值,形成滤波 accumulator=0; //累加和清零 // 平均值的采样次数取决于你的是否决定滤波和波形的频率大小,一般用于平稳波形的测量 // // Vref (mV) // measurement (mV) = --------------- * result (bits) // (2^12)-1 (bits) mV = result * 2200 / 4095; sendata[5]=mV/1000; sendata[6]=(mV-sendata[5]*1000)/100; sendata[7]=(mV-sendata[5]*1000-sendata[6]*100)/10; sendata[8]=mV-sendata[5]*1000-sendata[6]*100-sendata[7]*10; sendata[5]=sendata[5]+0x30; sendata[6]=sendata[6]+0x30; sendata[7]=sendata[7]+0x30; sendata[8]=sendata[8]+0x30; flag=1; //printf("P1.1 V : %ld mV\n",mV); for(i=0;i<=12;i++) { TI0 = 0; SBUF0=sendata[i]; while(TI0 != 1); TI0 = 0; } } } void main (void) { PCA0MD &= ~0x40; // WDTE = 0 PCA方式寄存器 P230 位6 1:PCA模块5被用作看门 狗定时器。 //在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造 成程序的跑飞,而陷入死循环, //程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态, 发生不可预料的后果, //所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状 态的芯片,俗称"看门狗"(watchdog) SYSCLK_Init (); PCA_Init(); PORT_Init (); Timer2_Init(); UART0_Init(); ADC0_Init(); initinal12864();//初始化12864 write12864place(1,1); delay_50us(3); for(i=0;i<12;i++){ write12864dat(sendata[i]); } write12864com(0x9D); for(i=0;i<6;i++){ write12864dat(fang[i]); } delay_50us(4); EA = 1; // 开总中断 while (1) { if(flag==1){ write12864place(1,4); delay_50us(3); write12864dat(sendata[5]); write12864dat(sendata[6]); write12864dat(sendata[7]); write12864dat(sendata[8]); flag=0; } } // 循环等待中断 } 6.3图形显示 先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址) 垂直地址范围 AC5...AC0 水平地址范围 AC3„AC0 绘图RAM 的地址计数器(AC)只会对水平地址(X 轴)自动加一,当水平地址=0FH 时会重新设为00H 但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需重新设定。GDRAM的坐标地址与资料排列顺序如下图: 6.4应用说明 用带中文字库的128X64显示模块时应注意以下几点: ?欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。 ?显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。 ?当字符编码为2字节时,应先写入高位字节,再写入低位字节。 ?模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。?“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。 参考文献: [1] 邵发森.单片机原理与应用及其实验指导 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf . 北京:北京大学出版社,2012 [2] 鲍可进. SOC单片机原理与应用. 北京:清华大学出版社,2011.1 [3] 唐颖. 单片机技术及C51程序设计. 北京:电子工业出版社,2012 [4] 郑锋. 51单片机典型应用开发范例大全. 北京:中国铁道出版社,2011 [5] 吴强. 单片机应用与开发. 上海:复旦大学出版社,2010 [6] 谢维成,杨加国. 单片机原理与应用及C51程序设计. 北京:清华大学出版社,2006 [7] 赵晓安.MCS-51单片机原理及应用. 天津:天津大学出版社,2001.3 [8] 《单片机原理及应用》 冯文旭 出版日期:2008-08-01 出 版 社:机械工业出版社 [9] 《单片机原理及应用技术》苏家健、曹柏荣、汪志锋出版日期:2004-11出 版 社:高等教育出版社 [10] 何立民. 单片机高级教程( 第1版(北京:北京航空航天大学出版社,2001
本文档为【[教学]基于C8051F410单片机的12864带字库点阵LCD显示器设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_219945
暂无简介~
格式:doc
大小:58KB
软件:Word
页数:0
分类:
上传时间:2017-11-11
浏览量:14