人机交互-输出接口.ppt
《人机交互-输出接口.ppt》由会员分享,可在线阅读,更多相关《人机交互-输出接口.ppt(80页珍藏版)》请在三一办公上搜索。
1、第五章 人机交互 输出接口,一、概述二、数码管接口设计三、LCD液晶接口设计四、发声电路设计,一、概述,1、显示输出:嵌入式应用系统向人报告运行状态及运行结果最常用的手段;2、声音输出:主要是通过喇叭(SPK)来实现的;3、打印输出:通过打印机输出嵌入式系统运行的状态和结果;4、通信输出。,二、数码管接口设计,数码管是一种应用很普遍的显示器件,从单片机、ARM到许多微型机控制系统及数字化仪器仪表中都用到数码管作为显示输出。,数码管的主要部分是七段发光二极管;数码管分为共阴极和共阳极两种;为了保护各段LED,需外加限流电阻。有的产品还附带有一个小数点,故有人叫其为八段式发光二极管。,由7个发光段
2、的不同组合,从而实现十六进制数的显示。下面分别是共阴极和共阳极09的编码表。,共阴极编码管,共阳极编码管,1.1 数码管接口电路,通过段选端可以控制数码管显示内容;位选端用于控制整个数码管是否工作:共阴极数码管,位选端要接地;共阳极数码管,位选端要接高电平,一位数码管接口电路(共阴极),动态显示技术主要是利用了人眼的视觉暂留原理。人眼的视觉暂留时间约为100ms。在动态显示方式下,将各个显示位的段选端并联在一起,实现各显示位的分时选通。,数码管接口电路-动态扫描,实验目的:通过实验,理解数码管显示原 理,会编写数码管驱动程序。实验内容:控制数码管显示00009999。,1.2 实验目的与内容,
3、1.3 电路原理分析,实验板上采用了4位一体的数码管,数码管4条位选线连接ARM的通用I/O口;数码管的8个段选端连接74HC595芯片的并行I/O输出接口,74HC595再与ARM的SPI0模块进行通信,接收ARM发送过来的数据。,1.4 参考程序-初始化函数,/-引脚定义-#definesmgA1(122)/p2.22连接smgA1#definesmgA2(123)/p0.23连接smgA2#definesmgA3(119)/p1.19连接smgA3#definesmgA4(124)/p0.24连接smgA4/*名称:NumbTube_Init()*功能:数码管与SPI初始化*/void
4、NumbTube_Init(void)PINSEL1=PINSEL1/初始化SPI0(时序与74HC595相匹配),/-数码管显示数据(09显示码)-uint8 const NumberTube_TAB10=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x98;/*名称:NumbTube_Display(uint32 data,uint8 radix_point)*功能:控制数码管显示数据。*入口参数:data需要显示的数据*radix_point小数点的位置,取值范围为4、3、2*/void NumbTube_Display(
5、uint32 data,uint8 radix_point)uint32 j,one,ten,hundred,thousand;/个,十,百,千,的变量声明 thousand=data/1000;/计算千位if(thousand!=0)data-=thousand*1000;hundred=data/100;/计算百位if(hundred!=0)data-=hundred*100;ten=data/10;/计算十位if(ten!=0)data-=ten*10;one=data%10;/计算个位,参考程序-数据显示函数,/-显示千位数据-if(radix_point=4)HC595_SendDa
6、ta(NumberTube_TABthousand,/*名称:NumbTube_Bit(uint8 data)*功能:选择数码管的位选。*入口参数:data 选择码,data的取值为0 x01,0 x02,0 x04,0 x08*出口参数:无*/void NumbTube_Bit(uint8 data)if(data,参考程序-位选函数,实验参考主程序,/*名称:main()*功能:控制数码管显示,完成实验内容*/int main(void)uint32 i;NumbTube_Init();for(i=1;i9999;i+)DelayMS(10);NumbTube_Display(i,0);r
7、eturn(0);,1.在Code Warrior IDE集成开发环境中,使用“Follow Me Study ARM”工程模板建立新工程。然后在工程中添加本实验的程序代码,按F7快捷键编译链接整个工程。编译报错则修改源程序中的错误,如果编译通过则在相应的目录下产生我们所需要的二进制文件和可执行映像文件。2.运行H-Flasher软件,将产生的二进制文件烧写到实验板上。3.打开AXD调试环境,并加载刚刚产生的可执行映像文件进行调试。4.单击全速运行按钮(快捷键F5),程序会运行并停留在main()主函数处;继续全速运行,数码管将显示数字从0000一直递加到9999。,1.5 实验步骤与结果,三
8、、LCD液晶接口设计,概述 液晶显示LCD是一种被动的显示器件,它不能发光,只能使用周围环境的光。LCD具有低工作电压、微功耗、无辐射、小体积等特点,LCD液晶显示器还具有寿命长、不易引起视疲劳等优点。被广泛应用于仪表、家用电器、计算机、医疗仪器以及交通和通信等各个领域。,液晶显示原理 液晶是一种介于固体和液体之间,具有规则性分子排列的有机化合物,既有晶体所特有的各向异性造成的双折射性,又有液体所特有的流动性。,(a)液体分子(b)液晶分子,1.按点像素深度分类 点象素深度:每个像素点的颜色有多少个二进制位表示。单色屏、4级灰度屏、8级灰度屏、16级灰度屏、64级灰度屏、266级灰度屏、16色
9、屏、266色伪彩色屏、真彩色屏等。2.按工作原理分类1)TN型(扭曲向列型液晶);2)STN型(超扭曲向列型液晶);3)TFT型(薄膜晶体管型液晶)。3.按内容显示方式分类1)数显液晶;2)点阵字符液晶;3)点阵图形液晶。,1.1 液晶显示屏分类,LM2068点阵图形式液晶显示模块具有两种系列(S、E)。S系列的液晶模块采用RA8835控制器,内置32K SRAM显示存储器,适配Intel8080系列 MPU 的操作时序电路。显示区具有文本和图形两种显示特性,多种显示合成方式。具有LCD驱动电源,广泛地适用于仪器仪表中。,1.2 液晶模块LM2068,LCD的驱动原理:调整施加到液晶像素上的电
10、压、相位、频率、峰值、有效值和占空比等参数来实现显示。,模块接口多为FFC扁平线方式,需要专用插座连接。LM2068S液晶显示模块由以下四个部分组成:1、LCD面板2、RA8835控制电路3、电源与调压器电路4、背光控制电路,1.3 液晶显示模块的接口特性,LM2068液晶显示模块的系统方框图,电源与调压器电路为LM2068模块提供电源,根据VOUT和V0引脚之间的电压比例控制LCD的对比度。背光控制电路为LCD面板的显示提供背景光。下图为LM2068模块内部的背景灯电路。,1.4 LM2068S的引脚定义,LM2068提供了Intel8080时序接口;CS是片选线,低电平有效;WR和RD分别
11、为写和读控制线,上升沿有效;A0为选择信号线。,LM2068的读/写时序图,1.5 LM2068S的时序,注意:当MCU与LM2068进行通信时,必须满足以上LM2068的时序要求。上电后,/RST保持低电平至少5ms以上,低电平拉高后至少保持800ms再对模块进行软件初始化。,LM2068S的时序,使用间接访问方式实现电路连接。液晶模块的数据总线D0D7连接74LS164芯片的并行I/O口输出,其读、写、片选、复位等控制信号都是通用I/O引脚控制。,1.6 LM2068S的接口电路,显示区具有两种特性:文本显示、图形显示。文本显示:拥有文本显示特性的显示区;专用于文本方式显示使用;图形显示:
12、拥有图形显示特性的显示区;专用于图形方式显示使用;RA8835可以同时管理多个显示区域,模块的大多数指令也是围绕显示区域设置进行的。参数主要有SAD、SL、AP、C/R。SAD-显示区域的起始地址;SL-显示区域的“高度”,即所管理显示的行数;AP-显示区域的“宽度”,即一行显示所占的字节数;C/R-实际显示宽度,模块屏面的显示字符数。,1.7 LM2068S的指令系统-显示区域,显示区域在显示RAM中的起始位置是SAD,终止位置是SAD+(SL*AP),实际显示空间大小是SAD+(SL*C/R)。,显示区域结构示意图,LM2068S模块中的指令大致分为4部分:系统控制、显示控制、光标控制和数
13、据操作指令。,LM2068S的指令系统-指令表,SYSTEM SET指令代码 40H 指令描述:该指令是模块的软件初始化设置指令。,POWER SAVE 指令代码 53H 指令描述:空闲模式启用/退出指令。,1.8 指令详述,SCROLL 指令代码 44H指令描述:该指令带有10个参数,设置4个显示区域分别在RAM空间中的起始位置和显示行数。,指令详述,OV:合成方式选择位。DM1:第一显示区域的显示属性选择位。0:文本 1:图形DM2:第三显示区域的显示属性选择位。合成显示的逻辑关系设置,具体设置见表。,OVLAY指令代码 5BH 指令描述:该指令设置了显示区域合成显示的逻辑关系以及第一、三
14、显示区域的显示特性。,DISO NO/OFF指令代码59H/58H 指令描述:显示开关设置指令,带有1个参数,设置了各显示区及光标的显示属性。,显示开关设置指令所带的参数,显示属性设置,HDOT_SCR指令代码5AH 指令描述:该指令设置了以点为单位的画面水平移动量。,CGRAM_ADR指令代码 5CH指令描述:自定义字库的CGRAM起始地址设置,带有2个参数。,CSRW指令代码46H指令描述:设置光标地址指令。,CSRR指令代码47H指令描述:读取光标地址指令。,所带参数表,CSRDIR指令代码4CH4FH指令描述:光标移动方向的设置指令。,光标移动方向与对应取值,CSR_FORM指令代码5
15、DH指令描述:该指令为光标形状的设置指令。,CRX:光标宽度,以象数点为单位。CRY:光标高度,以象数点为单位。CM:光标形状选择。,MEMWRITE指令代码42H 指令描述:显示数据写操作指令。MEMREAD指令代码43H 指令描述:显示数据读操作。,#define LCD_A0(123)/P2.23 选择信号#define LCD_RD(124)/P2.24 读信号#define LCD_RST(125)/P2.25 复位信号#define LCD_CS(126)/P2.26 芯片使能信号,共用BOOT0引脚#define LCD_WE(127)/P2.27 写信号,共用BOOT1引脚/*
16、名称:LCD_WriteCommand(uint8 Code)*功能:往液晶模块写入一个字节的代码*入口参数:Code指令代码*注释:由于P2.27为特殊引脚,所以在写操作结束后将P2.27拉低*/void LCD_WriteCommand(uint8 Code)uint8 i;IO2CLR=LCD_CS;/CS=0 IO2SET=LCD_A0;/A0=1 LS164_SendData(Code);/通过74HC164芯片向模块写指令代码 IO2SET=LCD_RD;/RD=1 IO2CLR=LCD_WE;/WR=0 for(i=0;i3;i+);IO2SET=LCD_WE;/WR=1 IO2
17、SET=LCD_CS;IO2CLR=LCD_WE;,写命令子程序,/*名称:LCD_WriteData()*功能:往液晶模块写入一个字节的数据*入口参数:Data数据*注释:由于P2.27为特殊引脚,所以在写操作结束后将P2.27拉低*/void LCD_WriteData(uint8 Data)uint8 i;IO2CLR=LCD_CS;/CS=0 IO2CLR=LCD_A0;/A0=0 LS164_SendData(Data);/通过74HC164芯片向模块写显示数据 IO2SET=LCD_RD;/RD=1 IO2CLR=LCD_WE;/WR=0 for(i=0;i3;i+);IO2SET
18、=LCD_WE;/WR=1 IO2SET=LCD_CS;/CS=1 IO2CLR=LCD_WE;/WR=0,写数据子程序,为了方便理解和代码移植,程序中把LM2068S模块中的所有命令都定义成宏,定义如程序清单。,#define SYSTEM_SET0 x40/初始化显示窗口设置,带8个参数#define SLEEP_IN0 x53/空闲操作-#define DISP_ON0 x59/显示开-#define DISP_OFF0 x58/显示关,设置显示方式,带1个参数#define SCROLL 0 x44/设置显示区域,卷动,带10个参数#define OVLAY0 x5B/设置合成显示方式
19、,带1个参数#define CGRAM_ADR0 x5C/设置CGRAM 起始地址,带2个参数#define HDOT_SCR0 x5A/设置点单元卷动位置,带1个参数#define CSRFORM0 x5D/设置光标形状,带2个参数#define CSRDIR_R0 x4C/设置光标移动方向 向右-#define CSRDIR_L0 x4D/设置光标移动方向 向左-#define CSRDIR_U0 x4E/设置光标移动方向 向上-#define CSRDIR_D0 x4F/设置光标移动方向 向下-#define CSRW0 x46/设置光标地址,带2个参数#define CSRR0 x47
20、/读出光标地址,带2个参数#define MWRITE0 x42/数据写入显示缓冲区,带若干个参数#define MREAD0 x43/从显示缓冲区读数据,带若干个参数,命令宏定义,/*名称:LCD_FillAll(uint8 dat)*功能:LCD填充。以图形方式进行填充,起始地址为0 x0000。*入口参数:dat要填充的数据*出口参数:无*/void LCD_FillAll(uint8 dat)uint32 i;/-置地址指针-LCD_WriteCommand(CSRW);LCD_WriteData(0 x00);/地址为0 x0000 LCD_WriteData(0 x00);/-设置
21、光标移动方向:右-LCD_WriteCommand(CSRDIR_R);/-写入数据-LCD_WriteCommand(MWRITE);for(i=0;i240*41;i+)LCD_WriteData(dat);/-重置地址指针-LCD_WriteCommand(CSRW);LCD_WriteData(0 x00);/地址为0 x0000LCD_WriteData(0 x00);,清屏函数,uchar SYSTEMSET_TAB8=0 x30,/单屏结构,88点0 x87,0 x07,/字符宽度8,字符高度840,/有效显示窗口的长度40(320=8*40)0 x40,/lCD工作频率239,
22、/扫描点行数(240)41,/显示屏一行所占显示缓冲区的字节数0 x00;uchar SCROLL_TAB10=0 x00,0 x00,0 xef,/第一显示区的起始地址为0 x0000,点行数240 0 x70,0 x26,0 xef,/第二显示区的起始地址为0 x2670,点行数240 0 x00,0 x60,/第三显示区的起始地址为0 x6000 0 x00,0 x00;/第四显示区的起始地址为0 x000/*名称:LCD_Initialize()*功能:LCM初始化,将LCM初始化为纯图形模式,显示起始地址为0 x0000。*入口参数:无*出口参数:无*说明:带参数命令模式:先命令,后
23、数据复位LM2068时:/RST保持低电平至少5ms以上,低电平拉高后至少保持800ms再对模块进行软件初始化*/void LCD_Initialize(void)uchar i;/-初始化LCM的控制引脚-IO2DIR=IO2DIR|LCD_A0|LCD_CS|LCD_RD|LCD_WE|LCD_RST;,初始化函数,/-初始化164芯片,164芯片连接LCD的数据引脚D0D7-LS164_Init();/-复位模块-IO2CLR=LCD_RST;/拉低/RST引脚,保持5ms以上DelayMS(10);/软件延时IO2SET=LCD_RST;/拉高/RST引脚,至少延时800ms后再操作/
24、-系统设置指令-LCD_WriteCommand(SYSTEM_SET);for(i=0;i8;i+)LCD_WriteData(SYSTEMSET_TABi);/-显示区域设置-DelayMS(1);LCD_WriteCommand(SCROLL);for(i=0;i10;i+)LCD_WriteData(SCROLL_TABi);/-关闭显示-/LCD_WriteCommand(DISP_OFF);/关闭显示区/-其他显示功能设置-LCD_WriteCommand(HDOT_SCR);/HDOT_SCR,带1个参数LCD_WriteData(0 x00);LCD_WriteCommand(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人机交互 输出 接口
链接地址:https://www.31ppt.com/p-5209298.html