版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/159人机交互接口本章学习目标掌握键盘接口技术掌握数码、液晶显示技术了解数码管显示驱动和键盘扫描控制专用芯片2/159人机交互接口是指人与计算机之间建立联系、交换信息的输入/输出设备的接口,这些设备包括键盘、显示器、打印机、鼠标器等。本章主要介绍键盘输入接口设计、显示原理及接口技术。3/159非编码键盘和编码键盘非编码键盘:直接利用口线连接按键开关或开关型传感器来实现,通过程序判断口线的电平就能够确定输入的键值。优缺点:设计简单,使用方便,且因为具有共用端,容易直接同开关电路或开关型传感器连接。但是这种方式的口线利用率较低,受单片机口线数量的限制,其键盘规模无法做大。§10.1键盘接口技术4/159编码键盘:将口线与按键开关连接成矩阵电路,通过软件扫描、识别I/O口上的编码,按编码规则识别输入键值。优点:口线利用率高,键盘规模可以做得较大。具体采用哪一种形式的键盘可以根据控制系统的规模及用途决定。5/159一、简易键盘接口的实现简易键盘接口采用非编码形式,典型应用电路如图所示。图10-1简易键盘接口电路6/159键盘在使用中考虑到人员操作或机械特性在接触时产生的抖动问题,即按键开关在接通或断开瞬间并非完全可靠接触,而是存在一个抖动期,在此期间的电平变化波形如图所示。图10-2按键闭合时的电平变化波形7/159抖动期一般不超过10ms。在口线电平抖动期间,单片机无法准确检测出口线电平的正确值,必须采取一定的措施进行鉴别。常用的方法是延时消抖法,例如遇到由高向低的电平转换后先不急于读取口线键值,而是在中断服务程序的开始执行一段10~20ms的延时程序。若延时程序后再次判断口线仍为低电平则进入口线的键值读取程序,否则放弃键值读取操作。8/159示例代码如下:
ORG 0000H LJMP MAIN ORG 0003H LJMP
KRD ORG 0100HMAIN:
MOV SP,#70H… ;其他初始化代码MAINLOOP: ;主循环
…LJMP MAINLOOP9/159KRD:LCALL
DEL20
;调20ms延时子程序
MOVA,P2;读P2口键值
JNB ACC.0,KPR0 ;判断P2.0~P2.7是否有键按下
JNB ACC.1,KPR1JNB ACC.2,KPR2JNB ACC.3,KPR3JNBACC.4,KPR4JNB ACC.5,KPR5JNB ACC.6,KPR6JNB ACC.7,KPR7RETI10/159KPR0:
;P2.0口线按键处理程序
MOV A,P2 ;读P2口键值
JNB ACC.0,KPR0;判断P2.0口线电平是否变高KP01:CALL DELAY20 ;调20ms延时子程序
MOV A,P2 ;读P2口键值
JNB ACC.0,KP01;证实P2.0口线一直保持低电平
… ;按键处理程序。由低电平变为高电平认为按键按下RETIKPR1:… ;P2.1口线按键处理程序
RETIKPR7:… ;P2.7口线按键处理程序
RETIDEL20:… ;20ms延时子程序
RETEND11/159二、矩阵键盘接口的实现简易键盘电路中每一个按键占用一根I/O口线,口线利用率较低。如果将口线按照行、列排成矩阵形式,则可在相同口线数量的条件下增大键盘的规模。12/159例如,可以将P2口的8根I/O线排列成4 × 4矩阵形式,连接16只按键。如图所示。图10-34 × 4矩阵式键盘电路13/1591、电路结构及设计思路矩阵式键盘将P2口的8根I/O口线分成行、列线连接,图中P2.0~P2.3为行线,P2.4~P2.7为列线。16只按键分别跨接在对应的行、列线节点上。如果单片机在行线对应的I/O口线上有数据输出,当有键按下时,行、列线短路,单片机在列线对应的I/O口线上的输入数据将由行线上的电平决定。14/159行线特定的4位数据输出和列线对应的4位数据输入可以组成一个8位的特征字,该特征字即为键值,代表了按下的键所在的位置。15/1592、键值产生的原理1)扫描法产生键值以行线作为扫描输出,以列线作为接收输入,依次将各个行线置为低电平,并在列线上逐次接收数据。扫描完成后,如果发现接收到的某一列线有低电平,则表示该列线与行线连接的按键已经闭合。在接收到低电平的那次扫描中,行线数据与列线数据的组合便是所期望的键值,由该键值可确定闭合键在矩阵连接中的连接位置。16/1592)线反转识别法产生键值先将行线全部置为低电平,列线全部置为高电平,从列线对应的I/O口线接收数据,如果发现有口线变低,则证明该列线与闭合的按键连接。将列线全部置为低电平,行线全部置为高电平,从行线对应的I/O口线接收数据,如果发现有口线变低,则证明该行线与闭合的按键连接。对上述两次操作的结果所获得的两个8位数据进行综合分析,便可确定闭合的按键所在位置。17/1593、键盘识别原理在进行键盘扫描产生键值之前,为避免无键按下的空扫描,浪费CPU执行时间,应该首先进行一次键盘识别,具体方法有两种。18/1591)硬件中断识别法将矩阵式键盘电路的所有列线连接至“与”门电路的输入端,“与”门电路的输出端与单片机外部中断连接。把全部行线置为低电平,全部列线置为高电平,当有键按下时列线上出现低电平,对应“与”门的输出电平出现由高向低的跳变,经引脚进入单片机产生中断,在中断服务程序中开始扫描键盘。19/1592)软件查询识别法将全部行线置为低电平,全部列线置为高电平,定时从列线对应的I/O口线输入数据,如果判定接收的数据中有低电平存在,则说明有按键按下,开始执行键盘扫描程序。这种方法无需在矩阵键盘中连接“与”门电路,硬件电路简洁。上述两种识别方法中,采用硬件中断识别方式可以随时响应键盘动作,具有较强的实时性,而采用软件查询方式则可以简化电路。具体实施应根据实际要求设计。20/1594、按键操作的抖动处理与简易键盘电路相同,矩阵键盘同样要考虑按键触点闭合或断开时存在的抖动期,一般在取回键值后进行5~10ms的延时,判断原键值是否存在,以决定是否存在按键的误动作。21/1595、矩阵键盘处理程序下面设计可供调用的键盘扫描子程序。程序可以读入4 × 4键盘状态,然后将键值送往内部数据存储器的RAM30H~33H单元。具体方法是,利用单片机P2口的P2.0~P2.3口线轮流向行扫描线送低电平,将每次扫描中由P2.4~P2.7返回的数据与当时行扫描送出的数据组合后作为键值送内部RAM的30H~33H单元,键值内容为8位,低4位中的“0”对应于行扫描输出线,高4位中的“0”对应于闭合按键连接的列线。22/159键盘扫描程序清单如下:KEY-SCAN: MOVR0,#30H;设置键值存储单元地址指针
MOV A,#0FEH ;设置行扫描初始状态SCAN:
MOVP2,A;输出至行扫描线
MOV R1,A ;保存行扫描线状态
MOV A,P2 ;读回列线数据
AND A,#0F0H ;保留读回数据的高4位
ORL A,R1 ;组合键值
MOV @R0,A ;键值送存储单元
RET23/159§10.2显示技术一、数码LED显示技术1、显示元件概述主要显示元件:LED(发光二极管显示器)或LCD(液晶显示器)。显示形式:笔画式和点阵式。笔画式显示元件大多为LED数码管,用于显示数字或简单字母信息,适合于规模较小的单片机系统。如果考虑到单片机系统功耗因素,也有笔画式LCD数码管可供选用,但在控制和连接上要稍微复杂一些。24/159显示大信息量或图形时,一般使用点阵式LCD显示器。这种显示器结构比较复杂,需要考虑灰度调节、高压背光的配合,电路连接及程序操作都比较繁琐。使用点阵式LCD显示器最好采用内置控制器的模块形式,在这种情况下,单片机与点阵式LCD的接口实际上变成了单片机与单片机之间的数据通信。本节内容主要介绍笔画式LED和点阵式LCD的应用。25/1592、七段码LED显示器LED数码管由8只LED发光二极管构成,8只LED发光二极管分别代表组成数码的笔画(称为段)和该位数码的小数点。由于显示的数字由7个显示段组合而成,所以也称为七段码。26/159LED七段数码管显示器的结构如图所示。在七段数码管显示器中为简化电路引出线,通常将8只发光二极管的阴极或阳极连接在一起作为电路的公共端,由此便出现了共阴极或共阳极显示器的名称,实际使用时采用高电平或低电平驱动。图10-4LED七段数码管显示器的结构27/159注意如图电路结构所示,对于七段数码管的驱动电流应加以限制,在保证不超过单片机或其他驱动芯片功耗的前提下维持正常的发光亮度。28/1593、七段码LED显示器的显示方式及接口七段码LED显示器可以采用静态显示和动态显示两种形式。静态显示是指在显示时段内对组成字型的发光二极管保持恒定的导通或截止;动态显示是指在显示时段内对组成字形的发光二极管实行间断或轮流(多字符显示)点亮。其中前一种形式程序操作简单,CPU送出字形码后可以不再管理。而后一种显示形式则可最大限度地降低显示功耗,但是占用了CPU的执行程序时间。29/1591)静态显示接口由单片机串行口与移位寄存器芯片CD4094组成的共阴极七段码LED静态显示接口电路如图所示。图10-5LED静态显示接口电路30/159电路说明单片机工作在串口方式“0”状态,要显示的字形以七段码形式由单片机的RXD输出至CD4094的数据输入端D,每次输出1个字节,对应1位显示数字。多位显示时需要输出多个字节的显示数据,同时也需要多个CD4094级联,即前级CD4094的数据输出端QS与后级CD4094的数据输入端D连接。31/159单片机的TXD与每个CD4094的时钟输入端CP连接,在串行数据输出过程中TXD发出移位脉冲,驱动数据依次逐位在CD4094芯片中移动。当所有要显示的数据全部送出后,单片机可以将P1.0控制口线由低置高,通过CD4094的ST引脚控制,使所有送入CD4094的数据由串行转为并行输出,在LED数码管上显示出对应位的数字内容。32/159静态显示的主要特点:是占用CPU处理时间少,显示稳定、亮度高,使用口线少。但在使用中应注意串口数据传送的格式及字符排位顺序。串行静态显示的位数主要由TXD、P1.0口线的带负载能力决定。33/159实际使用中也可不用P1.0,将CD4094的ST端引脚始终接高电平,进入CD4094的串行数据会自动转为并行输出。这样做的缺点是在单片机送出显示数据的过程中LED数码管会显示乱码。但是数据传送过程很短,在不频繁更换显示数据的场合还是可以接受的。34/159应用实践证明,CD4094的输出与LED数码管之间可以不加限流电阻。当CD4094输出电流过大时会引起输出电压下降,从而自动限制了流过LED的电流。另外,如果STC5A60S2单片机的串行口1在系统中另有用途,则可以其串口2输出数据。35/1592)动态显示接口采用多位LED数码管显示时,可以逐位点亮数码管,虽然在显示过程中有些数码管有熄灭时间,但是利用人眼的视觉暂留效应和LED发光二极管的余辉,只要点亮与熄灭时间分配适当,仍能够感觉到所有数码管始终处于显示状态。36/159动态显示形式时CPU需要经常执行相关程序进行显示刷新,这样可能占用较多的CPU执行时间,对需要快速运算或实时控制的用途会增加编程难度。但是,在实际编程中可以融入一些编程技巧减轻CPU刷新显示的负担。例如,将逐位显示程序编入经常调用的延时子程序中,就可以在执行正常程序的过程中满足动态显示的需求。37/159动态显示可以提高单片机显示口线的利用率,简化硬件电路的接线。LED动态显示接口的具体电路如图所示。图10-6LED动态显示接口电路38/159设需要显示的4位字形七段码存放在单片机内部RAM的60H开始的4个单元中,动态扫描显示子程序如下:39/159SDIS: MOV R0,#60H ;设显示数据存储区指针
MOV DPTR,#DSEG ;设置七段码表首地址
MOV R7,#0FEH ;设置显示位指针,指向最右边一位
MOV A,R7 ;显示指针内容送累加器LD0: MOV P2,A
;选通显示位
RL
A
;显示指向下一位
MOV R7,A
;存显示指针内容
MOV A,@R0;取显示内容
MOVCA,@A+DPTR;查显示内容的字形码
MOV P0,A ;送出显示字形码
CALL DEL1
;调延时子程序
INC R0 ;指向下一显示存储单元
MOV A,R7
;取显示指针内容
JB ACC.4,LD0
;未扫描完4位循环RET40/159;下面是0~9,A~F共阳极字形七段码DSEG:DBC0H,F9H,A4H,B0H,99H,92H,82H,F8H80H;DSEG2:DB90H,88H,83H,C6H,A1H,86H,8EH
请读者自行补充完整其中的延时子程序和对应的C语言程序。41/159二、液晶显示技术液晶显示器件(简称LCD显示器)由于具有显示信息丰富、功耗低、体积小、无辐射等优点,得到了广泛的应用。LCD显示器有笔画分段、分割显示、字符点阵显示和图形点阵LCD显示形式之分,对于比较丰富的显示内容通常采用图形点阵显示形式,但是这种显示形式的电路结构及控制方式比较复杂。42/159为了便于使用,LCD图形点阵显示器通常以LCM(液晶显示模块)形式出现,模块中封装了显示器、驱动电路、控制电路及背光调节电路等。本节以128×64点阵的汉字图形型液晶显示模块OCMJ4X8C为例介绍图形点阵LCD显示接口的应用。43/1591、OCMJ4X8C液晶显示模块概述OCMJ4X8C的液晶显示屏为128×64点阵,可显示4行、每行8个汉字。OCMJ4X8C可实现汉字、ASCII码、点阵图形、自造字体的同屏显示。该模块具有2MB的中文字形CGROM,其中含有8192个16×16点阵中文字库;具有16KB的16×8点阵的ASCII字符库;提供了一个64×256点阵的GDRAM绘图区域;提供了4组16×16点阵的造字空间。44/159为了便于和多种微处理器、单片机接口,模块提供了8位并行、2线串行、3线串行三种接口方式。OCMJ4X8C的2线串行接口方式符合SPI时序标准,大大简化了液晶显示模块与单片机之间的接口设计。OCMJ4X8C模块的工作电压为4.5~5.5V,具有睡眠、正常及低功耗工作模式,可满足系统各种工作电压及便携式仪器低功耗的要求。45/1592、模块引脚OCMJ4X8C模块引脚及对应说明如表所示。引脚名称方向说明引脚名称方向说明1VSS-GND(0V)11DB4I/O数据42VDD-逻辑电源(+5v)12DB5I/O数据53VO-LCD电源(悬空)13DB6I/O数据64RS(CS)H/LH:数据L:指令码14DB7I/O数据75R/W(STD)H/LH:读L:写15PSBH/LH:并行模式L:串行模式6E(SCLK)H,H/L使能16NC-空脚7DB0I/O数据017/RSTH/L复位(低电平有效)8DB1I/O数据118NC-空脚9DB2I/O数据219LEDA-背光源正极(LED+5V)10DB3I/O数据320LEDK-背光源负极(LED-OV)表10-1OCMJ4X8C模块的引脚及对应的说明46/1593、信息传输与接口时序(1)并行接口方式当PSB脚接高电位时,模块将进入并行传输模式,单片机与液晶模块通过RS、RW、E、D7~D0完成信息传输。47/159并行接口方式时,单片机写数据到模块的时序图如图所示。(a)单片机写数据到模块时序图48/159并行接口方式时,单片机从模块中读取数据的时序图如图所示。(b)单片机从模块读取数据时序图49/159(2)串行接口方式当PSB脚接低电位时,模块将进入串行模式。串行传输流程首先传输起始字节(五个连续的“1”),起始字节也称为同步字符串。在传输起始字节时,传输计数将被重置并且串行传输将被同步,再跟随的两个位字符串分别指定传输方向位(RW)及寄存器选择位(RS),最后第八的位则为“0”。在接收到同步位及RW和RS资料的起始字节后,每一个8位的指令将被分为两个字节接收到:高4位(D7~D4)的指令资料将会被放在第一个字节的LSB部分,而低4位(D3~D0)的指令资料则被放在第二个字节的LSB部分,至于相关的另四位则都为0。50/159串行接口方式时的时序图如图所示。图10-8串行接口方式的时序图51/1594、编程指令集(1)清除显示(指令代码为01H)功能:将DDRAM填满“20H”(空格),把DDRAM地址计数器调整为“00H”,重新进入点设定将I/D设为“1”,光标右移AC加1。RWRSD7D6D5D4D3D2D1D0000000000152/159(2)地址归位(指令代码为02H)功能:把DDRAM地址计数器调整为“00H”,光标回原点,该功能不影响显示DDRAM。RWRSD7D6D5D4D3D2D1D0000000001X53/159(3)点设定(指令代码为07H/04H/05H/06H)功能:设定光标移动方向并指定整体显示是否移动。I/D=1光标右移,AC自动加1;I/D=0光标左移,AC自动减1。SH=1且DDRAM为写状态:整体显示移动,方向由I/D决定(I/D=1左移,I/D=0右移)。SH=0或DDRAM为读状态:整体显示不移动。RWRSD7D6D5D4D3D2D1D000000001I/DS54/159(4)显示状态开/关(指令代码为08H/0C0H/0E0H/0F0H)功能:D=1:整体显示ON;D=0:整体显示OFF。C=1:光标显示ON;C=0:光标显示OFF。B=1:光标位置反白且闪烁;B=0:光标位置不反白闪烁。RWRSD7D6D5D4D3D2D1D00000001DCB55/159(5)光标或显示移位控制(指令代码为10H/14H/18H/1CH)功能:10H/14H:光标左/右移动,AC减/加118H/1CH:整体显示左/右移动,光标跟随移动,AC值不变。RWRSD7D6D5D4D3D2D1D0000001S/CR/LXX56/159(6)功能设定(指令代码为36H/30H/34H)功能:DL=1:8-BIT控制接口;DL=0:4-BIT控制接口。RE=1:扩充指令集动作;RE=0:基本指令集动作。RWRSD7D6D5D4D3D2D1D000001DLXREXX57/159(7)设定CGRAM位址(指令代码为40H-7FH)功能:设定CGRAM地址到地址计数器(AC),需确定扩充指令中SR=0(卷动地址或RAM地址选择)。RWRSD7D6D5D4D3D2D1D00001AC5AC4AC3AC2AC1AC058/159(8)设定DDRAM位址(指令代码为80H-9FH)功能:设定DDRAM地址到地址计数器(AC)RWRSD7D6D5D4D3D2D1D0001AC6AC5AC4AC3AC2AC1AC059/159(9)读取忙碌状态(BF)和地址功能:读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值。BF=1时,表示内部忙碌中,此时不可写入指令.BF=0才可写入新指令。RWRSD7D6D5D4D3D2D1D010BFAC6AC5AC4AC3AC2AC1AC060/159(10)写数据到RAM功能:写入数据到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM),每个RAM地址都要连续写入两个字节的数据。RWRSD7D6D5D4D3D2D1D001D7D6D5D4D3D2D1D061/159(11)读出RAM的值功能:从内部RAM读取数据(DDRAM/CGRAM/GDRAM),当设定地址指令后,若需读取数据时,需先执行一次空的读数据,才会读取到正确数据,第二次读取时则不需要,除非又使用设定地址指令。RWRSD7D6D5D4D3D2D1D011D7D6D5D4D3D2D1D062/159(12)待机模式(指令代码为01H)
功能:进入待命模式,执行其他命令都可终止待机模式。RWRSD7D6D5D4D3D2D1D0000000000163/159(13)卷动地址或RAM地址选择(指令代码为02H/03H)功能:SR=1:允许输入卷动地址;SR=0:允许设定CGRAM地址(基本指令)。RWRSD7D6D5D4D3D2D1D000000000HSR64/159(14)反白选择(指令代码为04H-07H)功能:选择4行中的任一行作反白显示,并可决定反白与否。RWRSD7D6D5D4D3D2D1D000000001R1R065/159(15)睡眠模式(指令代码为08H/0CH)功能:SL=1:脱离睡眠模式;SL=0:进入睡眠模式。RWRSD7D6D5D4D3D2D1D00000001SLXX66/159(16)扩充功能设定(指令代码为20H/24H/26H/30H/34H/36H)功能:DL=1:8-BIT控制接口;DL=0:4-BIT控制接口。RE=1:扩充指令集动作;RE=0:基本指令集动作。G=1:绘图显示ON;G=0:绘图显示OFF。RWRSD7D6D5D4D3D2D1D000001DLXREGL67/159(17)设定卷动地址(指令代码为40H~7FH)功能:SR=1:AC5~AC0为垂直卷动地址;SR=0:AC3~AC0写ICONRAM地址。RWRSD7D6D5D4D3D2D1D00001AC5AC4AC3AC2AC1AC068/159(18)设定绘图RAM位址(指令代码为80H~FFH)功能:设定GDRAM地址到地址计数器(AC)。RWRSD7D6D5D4D3D2D1D0001AC6AC5AC4AC3AC2AC1AC069/1595、显示步骤(1)显示数据RAM(DDRAM)显示数据RAM提供64×2个字节的空间,最多可以控制4行16字(64个字)的中文字型显示。当写入显示数据RAM时,可以分别显示CGROM、HCGROM与CGRAM的字型。70/159ST7920A可以显示三种字型半宽的HCGROM字型CGRAM字型中文CGROM字型。三种字型的选择,由在DDRAM中写入的编码选择,部0000H~0006H的编码中将选择CGRAM的自定字型02H~7FH的编码中将选择半宽英文数字的字型A1H以上的编码将自动结合下一个字节,组成两个字节的中文字型编码:BIG5(A140H~D75FH)、GB(A1A0H~F7FFH)71/1591)显示半宽字型:将8位二进制数据写入DDRAM中,范围为02H~7FH的编码。2)显示CGRAM字型:将16位二进制数据写入DDRAM中,共有0000H,0002H,0004H,0006H四种编码。3)显示中文字形:将16位二进制数据写入DDRAM中,范围为A140H~D75FH的编码(BIG5),A1A0H~F7FFH的编码(GB)。数据写入DDRAM时,连续写入两个字节,先写入高字节(D15~D8),再写入低字节(D7~D0)。72/159(2)绘图RAM(GDRAM)绘图显示RAM提供64×32位的存储空间,最多可以控制256×64点的二维绘图缓冲空间在更改绘图RAM内容时,由扩充指令设定绘图GDRAM地址,先设垂直地址,再设水平地址(连续写入两个字节的数据到绘图RAM),地址计数器(AC)会自动加一。在写入绘图RAM期间,绘图显示必须关闭。73/159写入绘图RAM的步骤如下:关闭绘图显示功能;先将垂直的坐标(Y)写入绘图RAM地址;再将水平的坐标(X)写入绘图RAM地址;将D15~D8写入到RAM中(写入第一个字节);将D7~D0写入到RAM中(写入第二个字节);打开绘图显示功能。74/159(3)光标/闪烁控制ST7920A提供硬件光标及闪烁控制电路,由地址计数器(addresscounter)的值来指定DDRAM中的光标或闪烁位置。汉字字符显示坐标在晶模块中的地址80H~9FH。75/159字符显示的RAM地址与32个字符显示区域有着一一对应的关系,其对应关系如图所示。X坐标Line180H81H82H83H84H85H86H87HLine290H91H92H93H94H95H96H97HLine388H89H8AH8BH8CH8DH8EH8FHLine498H99H9AH9BH9CH9DH9EH9FH图10-9字符显示的RAM地址与32个字符显示区域的对应关系76/159使用OCMJ4X8C显示模块时应注意以下几点:①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。77/159②显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。③当字符编码为2字节时,应先写入高位字节,再写入低位字节。78/159④模块在接收指令前,处理器必须先确认模块内部处于非忙状态(BF=0),方可接受新的指令。如果在送出指令前不检查BF标志,则在送出本指令之前必须等待前一个指令执行完成。指令执行时间请参考指令表中的指令执行时间说明。⑤“RE”为基本指令集与扩充指令集的选择控制位。当改变“RE”后,以后的指令集将维持在最后的状态,除非再次改变“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。79/159【例10-1】以SPI接口连接为例,说明LCD模块的使用方法。当液晶模块的PSB引脚接低电平时,即进入串行接口模式。串行模式使用串行数据线SID和串行时钟线SCLK来传送数据,即构成2线串行模式。OCMJ4X8C还允许同时接入多个液晶显示模块以完成多路信息显示功能。此时,要利用片选信号CS(与RS共用引脚)构成3线串行接口方式。当CS接高电平时,模块可正常接收并显示数据,否则,模块将被禁止。当系统仅使用一个液晶显示模块时,CS引脚可以接固定的高电平。80/159电路连接如图所示。图10-10OCMJ4X8C液晶模块与单片机的连接电路图81/159示例程序如下:#include"stc15.h"typedefunsignedcharBYTE; //该声明以后就可以在程序中用BYTE代替unsignedchar了sbitBLED=P2^2; //背光控制voidspi_init(void);//SPI初始化子程序voiddelay(unsignedintus10);//延时子程序voidsendspi(BYTEspidata,BYTEread,BYTEdat);
//显示数据发送子程序voidlcd_init_usual(void);//液晶初始化子程序voidset_position(BYTEposition);//确定光标位置子程序voiddata_write(BYTEdata1);//显示单个字符子程序voidchinese_series(BYTE*series);//显示汉字字符串子程序82/159voidmain(void){ spi_init();
lcd_init_usual();BLED=0; set_position(0x82); chinese_series("单片机"); data_write('0'); data_write('1'); while(1);}83/159voidspi_init(void)//SPI初始化子程序{ AUXR1=0x08; //将SPI转移到P4口 SPI初始化
SPCTL=0xd3;//SPI使能,主机模式,/SS无关,先发高
SPSTAT=0xC0; //清传输完成标志和写冲突标志}voiddelay(unsignedintus10)//延时子程序{ while(us10--);}84/159//显示数据发送子程序voidsendspi(BYTEspidata,BYTEread,BYTEdat){ BYTEcmd,dat1,dat2,spi1_status=0; cmd=(0xf8|read|(dat<<1)); SPDAT=cmd; while(spi1_status==0) //等起始命令传输完毕
{ spi1_status=SPSTAT; spi1_status=spi1_status&0x80; } SPSTAT=0xC0;//写1清SPIF标志位
spi1_status=0; dat1=spidata&0xf0; SPDAT=dat1;85/159 while(spi1_status==0) //等高4位数据传输完毕
{ spi1_status=SPSTAT; spi1_status=spi1_status&0x80; } SPSTAT=0xC0; //写1清SPIF标志位
spi1_status=0; dat2=(spidata<<4)&0xf0; SPDAT=dat2; while(spi1_status==0) //等低4位传输完毕
{ spi1_status=SPSTAT; spi1_status=spi1_status&0x80; } SPSTAT=0xC0; //写1清SPIF标志位
}86/159voidlcd_init_usual(void)//液晶初始化子程序{ sendspi(0x30,0,0);//基本指令集
sendspi(0x01,0,0);//清显示,地址复位
delay(2000); sendspi(0x0e,0,0);//整体显示,开游标,关位置
sendspi(0x06,0,0);//游标方向及移位}87/159voidset_position(BYTEposition)//确定光标位置子程序{ sendspi(position,0,0);}voiddata_write(BYTEdata1)//显示单个字符子程序{ sendspi(data1,0,1);}voidchinese_series(BYTE*series)//显示汉字字符串子程序{ for(series;*series!=0;series++) data_write(*series);}88/159三、数码管显示驱动和键盘扫描控制专用芯片在实际单片机应用系统开发过程中,为了节省宝贵的I/O口线资源,提高CPU的处理效率,在键盘和显示接口设计方面,常常使用专用的数码管显示驱动和键盘扫描专用芯片(简称键盘/显示扩展芯片)。常见的键盘/显示扩展芯片有CH451、ZLG7289A等。下面以CH451为例说明这类芯片的使用方法。89/1591、CH451简介CH451是一个整合了数码管显示驱动、键盘扫描控制以及微处理器监控的多功能外围芯片。三个功能之间相互独立,单片机可以通过操作命令分别启用、关闭、设定CH451的任何一个功能。90/159CH451内置RC振荡电路,可以动态驱动8位数码管或者64只LED发光管,具有BCD译码、闪烁、移位等功能;还可以进行64键的键盘扫描;CH451通过可以级联的串行接口与单片机等交换数据,其串行接口是由硬件实现的,单片机可以频繁地通过串行接口进行高速操作,而不会降低CH451的工作效率。91/1592、特点(1)显示驱动内置大电流驱动级,段电流不小于25mA,字电流不小于150mA。动态显示扫描控制,直接驱动8位数码管或者64只发光管LED。可选数码管的段与数据位相对应的不译码方式或者BCD译码方式。数码管的字数据左移、右移、左循环、右循环。92/159各数码管数字独立闪烁控制。任意段位寻址,独立控制各个LED或者各数码管的各个段的亮与灭。通过占空比设定提供16级亮度控制。支持段电流上限调整,可以省去所有限流电阻。扫描极限控制,支持1到8个数码管,只为有效数码管分配扫描时间。93/159(2)键盘控制内置64键键盘控制器,基于8×8矩阵键盘扫描。内置按键状态输入的下拉电阻,内置去抖动电路。键盘中断,低电平有效输出。提供按键释放标志位,可供查询按键按下与释放。94/159(3)其它高速的4线串行接口,支持多片级联,时钟速度从0到10MHz。串行接口中的DIN和DCLK信号线可以与其它接口电路共用,节约引脚。完全内置时钟振荡电路,不需要外接晶体或者阻容振荡。内置上电复位和看门狗Watch-Dog,提供高电平有效和低电平有效复位输出。支持低功耗睡眠,节约电能,可以被按键唤醒或者被命令操作唤醒。支持3V~5V电源电压。提供SOP28和DIP24S两种无铅封装,兼容RoHS。95/1593、封装提供SOP28和DIP24S两种封装分别如图(a)和图(b)所示图10-11CH451的两种封装形式96/1594、引脚SOP28的引脚号DIP24S的引脚号引脚名称类型引脚说明232VCC电源正电源端,持续电流不小于200mA915GND电源公共接地端,持续电流不小于200mA254LOAD输入串行接口的数据加载,内置上拉电阻265DIN输入串行接口的数据输入,内置上拉电阻276DCLK输入串行接口的数据时钟,内置上拉电阻同时用于看门狗的清除输入243DOUT输出串行接口的数据输出和键盘中断22~151、24~18SEG7~SEG0三态输出及输入数码管的段驱动,高电平有效,键盘扫描输入,高电平有效,内置下拉1~87~14DIG7~DIG0输出数码管的字驱动,低电平有效,键盘扫描输出,高电平有效1216RST输出上电复位和看门狗复位,高电平有效13不支持RST#输出上电复位和看门狗复位,低电平有效28不支持RST1输入外部手工复位输入,高电平有效,内置下拉电阻14不支持ADJ输入段电流上限调整,内置强下拉电阻11不支持CLKO输出内部系统时钟输出10不支持GND电源建议接GND不支持17NC.空脚未使用,禁止连接表10-4CH451两种封装形式的引脚及引脚说明97/1595、功能说明(1)显示驱动CH451对数码管和发光管采用动态扫描驱动,顺序为DIG0至DIG7,当其中一个引脚吸入电流时,其它引脚则不吸入电流。98/159CH451内部具有大电流驱动级,可以直接驱动0.5~2in的共阴数码管,段驱动引脚SEG6~SEG0分别对应数码管的段G~段A段驱动引脚SEG7对应数码管的小数点字驱动引脚DIG7~DIG0分别连接8个数码管的阴极99/159CH451也可以连接8×8矩阵的发光二级管LED阵列或者64个独立发光管;CH451还可以通过外接反相驱动器支持共阳数码管,或者外接大功率管支持大尺寸的数码管。100/159CH451支持扫描极限控制,并且只为有效数码管分配扫描时间。当扫描极限设定为1时,唯一的数码管DIG0将得到所有的动态驱动时间,从而等同于静态驱动;当扫描极限设定为8时,8个数码管DIG7~DIG0各得到1/8的动态驱动时间;当扫描极限设定为4时,4个数码管DIG3~DIG0各得到1/4的动态驱动时间,此时各数码管的平均驱动电流将比扫描极限为8时增加一倍,所以降低扫描极限可以提高数码管的显示亮度。101/159CH451将分配给每个数码管的显示驱动时间进一步细分为16等份,通过设定显示占空比支持16级亮度控制。占空比的值从1/16至16/16,占空比越大,数码管的平均驱动电流越大,显示亮度也就越高,但占空比与显示亮度之间是非线性关系。102/159CH451内部具有8个8位的数据寄存器,用于保存8个字数据,分别对应于CH451所驱动的8个数码管或者8组每组8个的发光二极管。CH451支持数据寄存器中的字数据左移、右移、左循环、右循环,并且支持各数码管的独立闪烁控制,在字数据左右移动或者左右循环移动的过程中,闪烁控制的属性不会随数据移动。103/159CH451默认情况下工作于不译码方式8个数据寄存器中字数据的位7~位0分别对应8个数码管的小数点和段G~段A,对于发光二极管阵列,则每个字数据的数据位唯一地对应一个发光二级管。当数据位为1时,对应的数码管的段或者发光管就会点亮;当数据位为0时,则对应的数码管的段或者发光管就会熄灭。例如,第三个数据寄存器的位0为1,所以对应的第三个数码管的段A点亮。104/159通过设定,CH451可以工作于BCD译码方式该方式主要应用于数码管驱动,单片机只要给出二进制数BCD码,由CH451将其译码后直接驱动数码管显示对应的字符。BCD译码方式是指对数据寄存器中字数据的位4~位0进行BCD译码,控制段驱动引脚SEG6~SEG0的输出,对应于数码管的段G~段A,同时用字数据的位7控制段驱动引脚SEG7的输出,对应于数码管的小数点,字数据的位6和位5不影响BCD译码。105/159数据寄存器中字数据的位4~位0进行BCD译码后,所对应的段G~段A以及数码管显示的字符如表所示。106/159参考表,如果需要在数码管上显示字符0,只要置入数据0xx00000B或者00H;需要显示字符0.(0带小数点),只要置入数据1xx00000B或者80H;类似1xx01000B或者88H对应于字符8.(8带小数点);数据0xx10011B或者13H对应于字符=;数据0xx11010B或者1AH对应于字符.(小数点);数据0xx10000B或者10H对应于字符(空格,数码管没有显示)。107/159CH451的段驱动引脚SEG7~SEG0的内部电路简图如图所示。SEGMENT-DATASEGA与非与按键编码或非非非50mA@2V25mA@3V.1mA@4V15mAADJBCD-DECODEKEYB-SCANDISPLAY-ENABLE100K用电压控制电流VCC2×15mA图10-12CH451的段驱动引脚SEG7~SEG0的内部电路简图108/159CH451的字驱动引脚DIG7~DIG0的内部电路简图如图所示。非非非DIGKEYB-SCANDISP-SCANDISP-ENABLEINTENSITYSPARKLINGVCC5mA8×20mA图10-13CH451的字驱动引脚DIG7~DIG0的内部电路简图109/159(2)键盘扫描CH451的键盘扫描功能支持8×8矩阵的64键键盘。在键盘扫描期间,DIG7~DIG0引脚用于列扫描输出SEG7~SEG0引脚都带有内部下拉电阻,用于行扫描输入当启用键盘扫描功能后,DOUT引脚的功能由串行接口的数据输出变为键盘中断以及数据输出。110/159CH451插入键盘扫描过程(显示驱动扫描过程中定期扫描键盘)在键盘扫描期间,DIG7~DIG0引脚按照DIG0至DIG7的顺序依次输出高电平,其余7个引脚输出低电平;SEG7~SEG0引脚的输出被禁止,当没有键被按下时,SEG7~SEG0都被下拉为低电平;当有键被按下时,例如连接DIG3与SEG4的键被按下,则当DIG3输出高电平时SEG4检测到高电平;111/159为了防止因为按键抖动或者外界扰而产生误码,CH451实行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效。如果CH451检测到有效的按键,则记录下该按键代码,并通过DOUT引脚产生低电平有效的键盘中断,此时单片机可以通过串行接口读取按键代码;在没有检测到新的有效按键之前,CH451不再产生任何键盘中断。CH451不支持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下;如果多个键同时按下,那么按键代码较小的按键优先。112/159CH451所提供的按键代码为7位位2~位0是列扫描码位5~位3是行扫描码位6是状态码(键按下为1,键释放为0)113/159例如,连接DIG3与SEG4的键被按下,则按键代码是1100011B或者63H,键被释放后,按键代码通常是0100011B或者23H,其中,对应DIG3的列扫描码为011B,对应SEG4的行扫描码为100B。单片机可以在任何时候读取按键代码,但一般在CH451检测到有效按键而产生键盘中断时读取按键代码,此时按键代码的位6总是1,另外,如果需要了解按键何时释放,单片机可以通过查询方式定期读取按键代码,直到按键代码的位6为0。114/159连接在DIG7~DIG0与SEG7~SEG0之间的键被按下时,CH451所提供的按键代码如表所示。按键代码DIG7DIG6DIG5DIG4DIG3DIG2DIG1DIG0SEG047H46H45H44H43H42H41H40HSEG14FH4EH4DH4CH4BH4AH49H48HSEG257H56H55H54H53H52H51H50HSEG35FH5EH5DH5CH5BH5AH59H58HSEG467H66H65H64H63H62H61H60HSEG56FH6EH6DH6CH6BH6AH69H68HSEG677H76H75H74H73H72H71H70HSEG77FH7EH7DH7CH7BH7AH79H78H表10-6按键与按键代码的对应关系115/159这些按键代码具有一定的规律,如果需要键被释放时的按键代码,则将表中的按键代码的位6置0,也就是将表中的按键代码减去40H。按键代码DIG7DIG6DIG5DIG4DIG3DIG2DIG1DIG0SEG047H46H45H44H43H42H41H40HSEG14FH4EH4DH4CH4BH4AH49H48HSEG257H56H55H54H53H52H51H50HSEG35FH5EH5DH5CH5BH5AH59H58HSEG467H66H65H64H63H62H61H60HSEG56FH6EH6DH6CH6BH6AH69H68HSEG677H76H75H74H73H72H71H70HSEG77FH7EH7DH7CH7BH7AH79H78H表10-6按键与按键代码的对应关系116/159(3)μP监控CH451提供的μP监控包括上电复位和看门狗Watch-Dog。单片机或者微处理器的复位输入引脚可以根据需要直接连接到CH451的RST引脚或者RST#引脚,当CH451通电或者看门狗溢出时,RST引脚输出高电平有效的复位脉冲信号,RST#引脚输出低电平有效的复位脉冲信号。CH451的上电复位脉冲信号同时作用于CH451芯片的内部电路,而看门狗复位脉冲信号不会对CH451芯片的内部电路起作用。117/159CH451的上电复位是指上电过程(从断电状态变为正常供电状态的过程)中产生的复位脉冲。为了减少CH451驱动大电流而产生的电源干扰,在设计印制电路板PCB时,应在紧靠CH451芯片的正负电源之间并联一组电源退耦电容,包括至少一个容量不小于0.1uF的独石或者瓷片电容和一个容量不小于100uF的电解电容。118/159CH451在启用看门狗功能后,只要清除输入引脚DCLK的电平没有变化,看门狗计时器就会计时,当计满溢出周期时,就会产生看门狗复位脉冲信号。为了避免计时溢出而产生复位信号,单片机应该定期变化DCLK的电平,及时清除看门狗的计时。119/159CH451的看门狗计时可以被下述的任何一个操作清除:上电复位RSTI引脚的手工复位DCLK从低变为高DCLK从高变为低等启用看门狗功能后,当单片机程序失控而使DCLK的电平长时间保持不变时,CH451就会输出看门狗复位脉冲信号。120/159(4)串行接口CH451具有硬件实现的高速4线串行接口,包括4个信号线:串行数据输入线DIN串行数据时钟线DCLK串行数据加载线LOAD串行数据输出线DOUTDIN、DCLK、LOAD是带上拉的输入信号线,默认是高电平;DOUT在未启用键盘扫描功能时作为串行数据输出线,在启用键盘扫描功能后作为键盘中断和数据输出线,默认是高电平。121/159CH451的串行接口框图如图所示。DCLKDOUTLOADCK非DINDCK寄存器QDCK寄存器QDCK寄存器QDCK寄存器QDCK寄存器QD10D11D9D0命令译码D11-D0Q01S选择器KEYB-DATAKEYB-INTERKEYB-ENABLE图10-14CH451的串行接口框图122/159单片机向CH451输出串行数据的过程是(不是唯一的过程,可以有很多变化):输出一位数据,即向DIN输出最低位数据D0,并向DCLK输出低电平脉冲(从高电平变为低电平再恢复为高电平),其中包括一个上升沿使CH451输入位数据;以同样的方式,输出位数据D1~D11;向LOAD输出低电平脉冲,其中包括一个上升沿使CH451加载串行数据。123/159未启用键盘扫描功能时,单片机通过串行接口向CH451发送12位数据的波形示意图如图所示。LOADDOUTB0B1B3B2B4B5B6B7B1B8B10B11B0B2B3B4B5B6B7B9B10B9B8DINDCLK100000000100图10-15未启用键盘扫描功能时CH451发送12位数据的波形示意图124/159单片机从CH451获得按键代码的过程如图所示。MCU是指单片机的工作状态。DINLOADDCLKDOUTMCU中断读取按键代码命令输入按键代码B8B9B10B111110K6K5K4K3K2K1K0HHLLLHHL图10-16单片机从CH451获得按键代码的过程125/159具体过程是:①输出一位数据,即向DIN输出读取按键代码命令的最低位数据D0,并向DCLK输出低电平脉冲;②以同样的方式,输出读取按键代码命令的位数据D1~D11;126/159③向LOAD输出低电平脉冲,其中包括一个上升沿使CH451加载串行数据,CH451分析出是读取按键代码命令,立即在DOUT输出按键代码的最高位数据K6;④读取一位数据,即从DOUT输入按键代码的最高位数据K6,并向DCLK输出低电平脉冲;⑤以同样的方式,输入按键代码的位数据K5~K0。127/159实际上,CH451的读取按键代码命令只有位数据D8~D11是有效的,所以单片机不必发出读取按键代码命令的D0~D7。例如,按键代码是63H,则上述过程的简化描述是1^1^1^0^↑H^H^L^L^L^H^H^,即先向CH451发出读取按键代码命令0111xxxxxxxxB,然后从DOUT接收按键代码1100011B。128/159(5)操作命令CH451的操作命令均为12位,CH451的各个操作命令所对应的12位串行数据如表所示。表10-7CH451的各个操作命令所对应的12位串行数据129/1591)空操作:0000xxxxxxxxB空操作命令不对CH451产生任何影响。该命令可以在多个CH451级联的应用中,透过前级CH451向后级CH451发送操作命令而不影响前级的状态。130/159例如,要将操作命令001000000001B发送给两级级联电路中的后级CH451(后级CH451的DIN连接前级CH451的DOUT),只要在该命令后添加空操作命令000000000000B再发送,简化描述是1^0^0^0^0^0^0^0^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^↑,那么,该操作命令将经过前级CH451到达后级CH451,而空操作命令留给了前级CH451。另外,为了在不影响CH451的前提下变化DCLK以清除看门狗计时,也可以发送空操作命令,在非级联的应用中,空操作命令可以只发送有效数据D8~D11,简化描述是0^0^0^0^↑。131/1592)段位寻址清0:000110[BIT_ADDR]B段位寻址清0命令用于将指定地址的发光管(或者数码管的指定段或者小数点)熄灭,该命令一次只能熄灭指定地址的一个发光管,并且完全不影响其它发光管的状态。132/159段位寻址的编址顺序(矩阵编址表)如表所示。例如,命令数据000110111010B表示将编址为3AH的发光管熄灭。矩阵编址DIG7DIG6DIG5DIG4DIG3DIG2DIG1DIG0SEG038H30H28H20H18H10H08H00HSEG139H31H29H21H19H11H09H01HSEG23AH32H2AH22H1AH12H0AH02HSEG33BH33H2BH23H1BH13H0BH03HSEG43CH34H2CH24H1CH14H0CH04HSEG53DH35H2DH25H1DH15H0DH05HSEG63EH36H2EH26H1EH16H0EH06HSEG73FH37H2FH27H1FH17H0FH07H表10-8矩阵编址表133/1593)段位寻址置1:000111[BIT_ADDR]B段位寻址置1命令用于将指定地址的发光管(或者数码管的指定段或者小数点)点亮,该命令一次只能点亮指定地址的一个发光管,并且完全不影响其它发光管的状态。段位寻址的编址顺序请参考矩阵编址表。例如,命令数000111000110B表示将编址为06H的发光管点亮。134/1594)芯片内部复位:001000000001B内部复位命令将CH451的各个寄存器和各种参数复位到默认的状态。芯片上电时,CH451总是被复位,此时各个寄存器均复位为0,各种参数均恢复为默认值。135/1595)进入睡眠状态:001000000010B进入睡眠状态命令使CH451暂停显示驱动和键盘扫描,并进入低功耗睡眠状态,从而可以节约电能。执行该命令之前,应该先用设定系统参数命令关闭CH451的显示驱动使能和按键扫描使能,并且执行该命令本身必须在20uS之内完成,发出命令后DCLK引脚必须保持不变。136/159处于低功耗睡眠状态中的CH451可以被下述两种事件中的任何一种唤醒,第一种事件是检测到SEG3~SEG0上的按键,有效按键代码是40H到5FH;第二种事件是接收到单片机发出的操作命令(通常是空操作命令),或者检测到DCLK引脚的状态变化。睡眠和唤醒操作本身不会影CH451的工作状态。137/1596)字数据左移:001100000000B字数据左移命令将CH451的字数据左移一次,即从DIG0向DIG7移动一位,然后最右边的DIG0补进数据00H。例如,在数码管DIG7~DIG0显示“87654321”时,执行字数据左移命令,显示变为“7654321”(不译码方式)或者“76543210”(BCD译码方式)。138/1597)字数据右移:001100000010B字数据右移命令将CH451的字数据右移一次,即从DIG7向DIG0移动一位,然后最左边的DIG7补进数据00H。例如,在数码管DIG7~DIG0显示“87654321”时,执行字数据右移命令,显示变为“8765432”(不译码方式)或者“08765432”(BCD译码方式)。139/1598)字数据左循环:001100000001B字数据左循环命令将CH451的字数据左循环一次,即从DIG0向DIG7移动一位,然后最右边的DIG0补进原DIG7的数据。例如,在数码管DIG7~DIG0显示“87654321”时,执行字数据左循环命令,显示变为“76543218”。140/1599)字数据右循环:001100000011B字数据右循环命令将CH451的字数据右循环一次,即从DIG7向DIG0移动一位,然后最左边的DIG7补进原DIG0的数据。例如,在数码管DIG7~DIG0显示“87654321”时,执行字数据右循环命令,显示变为“18765432”。141/15910)自定义BCD码:00111[SELF_BCD]B自定义BCD码命令用于自行定义常规BCD译码中未实现的特殊字符,CH451支持一个自定义BCD码,其BCD值为1EH,显示编码由该命令指定,编码共7位,分别对应于数码管的7个段,而小数点由BCD值的最高位单独控制。142/159例如,命令数据001110111110B表示自定义BCD字符U(对应的段显示数据为3EH)在BCD译码方式下当单片机要求显示BCD值1EH时,CH451会在对应的数码管中显示字符U当单片机要求显示BCD值9EH时,CH451会在对应的数码管中显示字符U.(含小数点)。143/15911)设定系统参数:0100000[CKHF]0[WDOG][KEYB][DISP]B设定系统参数命令用于设定CH451的系统级参数:输出高频时钟CKHF(选择快速闪烁),看门狗使能WDOG,键盘扫描使能KEYB,显示驱动使能DISP。各个参数均通过1位数据控制,将相应的数据位置为1则启用该功能,否则关闭该功能(默认值)。例如,命令数据010000000011B表示选择低频时钟、关闭看门狗的功能、启用键盘扫描的功能、启用显示扫描驱动的功能。144/15912)设定显示参数:0101[MODE][LIMIT][INTENSITY]B设定显示参数命令用于设定CH451的显示参数:译码方式MODE,扫描极限LIMIT,显示亮度INTENSITY。145/159译码方式MODE通过1位数据控制,置1时选择BCD译码方式,置0时选择不译码方式(默认值)。扫描极限LIMIT通过3位数据控制,数据001B~111B和000B分别设定扫描极限为1~7和8(默认值)。显示亮度INTENSITY通过4位数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拉萨写招股协议书范文的公司
- 异地工作室合伙协议书范文模板
- 游乐园转让出售协议书范文
- 《供应链管理》课件 第9章 供应链金融管理
- 新高考语文二轮复习高频考点专项练习:专题六 考点10 修辞(1)(含答案)
- 吉林师范大学《素描人体技法解析》2021-2022学年第一学期期末试卷
- 吉林师范大学《计量地理学》2021-2022学年第一学期期末试卷
- 体育协会赛事管理制度
- 生态修复钢筋混凝土挡土墙施工方案
- 钢结构工程施工技术准备方案
- 试桩施工方案 (完整版)
- 走中国工业化道路的思想及成就
- ESTIC-AU40使用说明书(中文100版)(共138页)
- 河北省2012土建定额说明及计算规则(含定额总说明)解读
- Prolog语言(耐心看完-你就入门了)
- 保霸线外加电流深井阳极地床阴极保护工程施工方案
- 蓝色商务大气感恩同行集团公司20周年庆典PPT模板
- 恒温箱PLC控制系统毕业设计
- 雍琦版 《法律逻辑学》课后习题答案
- 176033山西《装饰工程预算定额》定额说明及计算规则
- 新技术、新材料、新工艺”试点输电线路建设的通知国家电网
评论
0/150
提交评论