《单片机人机交互系统的语言编程PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《单片机人机交互系统的语言编程PPT讲稿.ppt(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机人机交互系统的语言编程第1页,共81页,编辑于2022年,星期五教学提示 在单片机应用系统中,经常会涉及显示器、键盘等人机交互设备。在单片机应用系统中,经常会涉及显示器、键盘等人机交互设备。如何将它们与单片机的输入如何将它们与单片机的输入/输出端口相连并编程实现特定的功能是单输出端口相连并编程实现特定的功能是单片机应用开发人员必须掌握的基本技术。常用的显示器有片机应用开发人员必须掌握的基本技术。常用的显示器有LED数码管数码管显示器、显示器、LED点阵显示器、点阵显示器、LCD显示器;常用的键盘有非编码键盘、显示器;常用的键盘有非编码键盘、编码键盘。本章将重点介绍上述元器件与单片机的连接
2、方式以及编码键盘。本章将重点介绍上述元器件与单片机的连接方式以及C51语言的编程方法。语言的编程方法。第2页,共81页,编辑于2022年,星期五教学要求 了解单片机输入了解单片机输入/输出端口的特点及使用注意事项;熟练掌输出端口的特点及使用注意事项;熟练掌握握LED数码管显示器的使用方法;掌握数码管显示器的使用方法;掌握LED点阵显示器、点阵显示器、LCD显示器的使用方法;熟练掌握非编码键盘的使用方法;掌握外显示器的使用方法;熟练掌握非编码键盘的使用方法;掌握外部扩展存储器的使用方法。部扩展存储器的使用方法。第3页,共81页,编辑于2022年,星期五5.1 单片机的输入/输出端口1.P0口口2
3、.P1口口3.P2口口4.P3口口 51系列单片机有系列单片机有4个个8位的双向并行输入位的双向并行输入/输出输出(I/O)端口,称为端口,称为P0口、口、P1口、口、P2口和口和P3口。各个端口既可以按字节输入、输出,也可以口。各个端口既可以按字节输入、输出,也可以按位进行输入、输出。利用这按位进行输入、输出。利用这4个个I/O端口可以方便地实现单片机与外端口可以方便地实现单片机与外部数字设备或芯片的信息交换。下面简要介绍单片机输入部数字设备或芯片的信息交换。下面简要介绍单片机输入/输出端口的输出端口的特点及使用注意事项。特点及使用注意事项。第4页,共81页,编辑于2022年,星期五5.2
4、LED数码管显示器 5.2.1 LED5.2.1 LED数码管显示器简介数码管显示器简介 5.2.2 5.2.2 静态显示编码静态显示编码 5.2.3 5.2.3 动态显示编码静态显示编程动态显示编码静态显示编程 第5页,共81页,编辑于2022年,星期五5.2.1 LED数码管显示器简介图图5.1 通用通用7段段LED数码管数码管 图图5.2 专用专用LED数码管数码管 LED显示器按用途可分为通用显示器按用途可分为通用7段段LED显示器和专用显示器和专用LED显显示器,分别如图示器,分别如图5.1和图和图5.2所示。本节重点介绍通用所示。本节重点介绍通用7段段LED显显示器示器(以下简称为
5、数码管以下简称为数码管)。第6页,共81页,编辑于2022年,星期五图图5.3 共阴极数码管共阴极数码管 图图5.4 共阳极数码管共阳极数码管 数码管由数码管由8个个LED(a、b、c、d、e、f、g、h)构成,按结)构成,按结构分为共阴极和共阳极两种,如图构分为共阴极和共阳极两种,如图5.3和和5.4所示。所示。要使要使LED数码管数码管显示出相应的数字或显示出相应的数字或字符,必须向其数据字符,必须向其数据口输入相应的字形编口输入相应的字形编码。码。LED数码管的常数码管的常用字形编码见用字形编码见表表表表5-25-2。第7页,共81页,编辑于2022年,星期五表表5-2 LED数码管的常
6、用字型编码表数码管的常用字型编码表 第8页,共81页,编辑于2022年,星期五续表续表5-2第9页,共81页,编辑于2022年,星期五 LED数码管显示器的外型结构如图数码管显示器的外型结构如图5.5所示。所示。LED数码管有数码管有静态显示静态显示静态显示静态显示和和动态显示动态显示动态显示动态显示两种方式,在具体使两种方式,在具体使用时,要求用时,要求LED驱动电路能提驱动电路能提供额定的供额定的LED导通电流,还要导通电流,还要根据外接电源及额定根据外接电源及额定LED导通导通电流来确定相应的限流电阻。电流来确定相应的限流电阻。图图5.5 数码管的外型结构数码管的外型结构 第10页,共8
7、1页,编辑于2022年,星期五5.2.2 静态显示编程 静态显示静态显示静态显示静态显示是指数码管显示某一字符时,相应的是指数码管显示某一字符时,相应的LED恒恒定导通或恒定截止。静态显示时,各位数码管是相互独立定导通或恒定截止。静态显示时,各位数码管是相互独立的,每个数码管的的,每个数码管的8个个LED分别与一个分别与一个8位位I/O口地址相口地址相连,只要连,只要I/O口有字型码输出,相应字符即显示出来,并口有字型码输出,相应字符即显示出来,并保持不变,直到保持不变,直到I/O口输出新的字型码。口输出新的字型码。采用静态显示方式,较小的电流即可获得较高的亮度,采用静态显示方式,较小的电流即
8、可获得较高的亮度,且占用且占用CPU时间少,编程简单,显示便于监测和控制,但其时间少,编程简单,显示便于监测和控制,但其占用的口线多,硬件电路复杂,成本高,只适合于显示位数占用的口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。较少的场合。第11页,共81页,编辑于2022年,星期五【例【例5.1】电路如图电路如图5.6所示,单片机采用所示,单片机采用AT89C51,振荡器频率,振荡器频率fOSC为为12MHz,数码管,数码管LED1、LED2采用采用7SEG-COM-CAT-GRN(共阴共阴极,绿色极,绿色),两位数码管分别连接在,两位数码管分别连接在AT89C51的的P0口、口、P
9、1口,按键口,按键K1接在引脚接在引脚P2.3上,上,RP1为排阻。试编程实现下列功能。为排阻。试编程实现下列功能。(1)开机显示开机显示00。(2)按一次按一次K1键,数字加键,数字加1。(3)当计数到当计数到99时,再按一次时,再按一次K1键,又从键,又从00开始计数。开始计数。第12页,共81页,编辑于2022年,星期五图图5.6 例例5.1电路图电路图 第13页,共81页,编辑于2022年,星期五5.2.3 动态显示编程 动态显示动态显示动态显示动态显示是逐位地轮流点亮各位数码管,这种逐位点是逐位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的相应亮显示器的
10、方式称为位扫描。通常,各位数码管的相应LED选线并联在一起,由一个选线并联在一起,由一个8位的位的I/O口控制;各位的位口控制;各位的位选线选线(公共阴极或阳极公共阴极或阳极)由另外的由另外的I/O口线控制。口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定动态方式显示时,各数码管分时轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管,显示必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的字型码,在另一时刻选通另一位数码管,并送并送出相应的字型码,在另一时刻选通另一位数码管,并送出相应的字型码,依此规律循环,即可使各位数码管显示将出相应的字型码,依此规律循
11、环,即可使各位数码管显示将要显示的字符,虽然这些字符是在不同的时刻分别显示,但要显示的字符,虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。以给人同时显示的感觉。第14页,共81页,编辑于2022年,星期五 采用动态显示方式比较节省采用动态显示方式比较节省I/O口,硬件电路也较口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,在显示位数较多时,CPU要依次扫描,占用要依次扫描,占用CPU较多的较多的时
12、间。时间。【例【例5.2】电路如图电路如图5.7所示,单片机采用所示,单片机采用AT89C51,振荡器频率,振荡器频率fosc为为12MHz,数码管,数码管LED1、LED2采用采用7SEG-COM-CAT-GRN(共阴极,绿色共阴极,绿色),两位数码管分别连接在,两位数码管分别连接在AT89C51的的P0口、口、P1口,口,按键按键K1接在引脚接在引脚P2.3上,上,RP1为排阻。试编程实现下列功能。为排阻。试编程实现下列功能。(1)开机显示开机显示00。(2)按一次按一次K1键,数字加键,数字加1。(3)当计数到当计数到99时,再按一次时,再按一次K1键,又从键,又从00开始计数。开始计数
13、。第15页,共81页,编辑于2022年,星期五图图5.7 例例5.2电路图电路图 第16页,共81页,编辑于2022年,星期五5.3 LED数码管点阵显示器 5.3.1 5.3.1 字母、数字及图形的显示字母、数字及图形的显示 5.3.2 5.3.2 中文字符的显示中文字符的显示 LED数码管点阵显示器是由数码管点阵显示器是由LED按矩阵方式排列而成的,按照按矩阵方式排列而成的,按照尺寸大小,尺寸大小,LED点阵显示器有点阵显示器有57、58、68、88等多种规格;等多种规格;按照按照LED发光颜色的变化情况,发光颜色的变化情况,LED点阵显示器分为单色、双色、点阵显示器分为单色、双色、三色;
14、按照三色;按照LED的连接方式,的连接方式,LED点阵显示器又有共阴极、共阳极点阵显示器又有共阴极、共阳极之分。之分。第17页,共81页,编辑于2022年,星期五 在使用时,只要点亮相应的在使用时,只要点亮相应的LED,LED点阵显示器即可按要求显点阵显示器即可按要求显示英文字母、阿拉伯数字、图形以及中文字符等。示英文字母、阿拉伯数字、图形以及中文字符等。LED点阵显示器广点阵显示器广泛地应用于股票显示板、活动信息公告板、活动字幕广告板等场合。泛地应用于股票显示板、活动信息公告板、活动字幕广告板等场合。Proteus ISIS中只提供了单色的中只提供了单色的57、88两种两种LED点阵显示器,
15、如图点阵显示器,如图5.8所所示。示。(a)57LED点阵显示器点阵显示器 (b)88LED点阵显示器点阵显示器图图5.8 LED点阵显示器点阵显示器第18页,共81页,编辑于2022年,星期五5.3.1 字母、数字及图形的显示字母、数字及图形的显示 单个的西文字母或阿拉伯数字通常采用单个的西文字母或阿拉伯数字通常采用57点阵显点阵显示,图示,图5.9所示为字母所示为字母“A”的的57 字形点阵示意图。值得注字形点阵示意图。值得注意的是,字形并不是唯一的,应根据具体需要而定。意的是,字形并不是唯一的,应根据具体需要而定。图图5.9 字母字母A的的57 字形点阵示意图字形点阵示意图 第19页,共
16、81页,编辑于2022年,星期五5.3.1 字母、数字及图形的显示字母、数字及图形的显示【例【例5.3】电路如图电路如图5.11所示,单片机采用所示,单片机采用AT89C51,振荡器频率,振荡器频率fOSC为为12MHz,LED-DOT为为88共阳极共阳极LED点阵显示器点阵显示器(MATRIX-88-GREEN)。试编程实现下列功能:。试编程实现下列功能:循环显示字符循环显示字符0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。电路中采用带输出锁存器的电路中采用带输出锁存器的8位串位串入并出移位寄存器入并出移位寄存器74HC595作为列驱动作为列驱动器,目的是为了解决列扫描过程
17、中列数器,目的是为了解决列扫描过程中列数据准备与列数据显示之间的矛盾问题。据准备与列数据显示之间的矛盾问题。图图5.10 74HC595原理图原理图第20页,共81页,编辑于2022年,星期五图图5.11 例例5.3电路图电路图 第21页,共81页,编辑于2022年,星期五字符数 据 码字符数 据 码03EH,41H,41H,41H,3EH,00H,00H,00H836H,49H,49H,49H,36H,00H,00H,00H111H,21H,7FH,01H,01H,00H,00H,00H979H,49H,49H,49H,7FH,00H,00H,00H223H,45H,49H,51H,21H,
18、00H,00H,00HA1FH,24H,44H,24H,1FH,00H,00H,00H322H,49H,49H,49H,36H,00H,00H,00HB7FH,49H,49H,49H,36H,00H,00H,00H40CH,14H,24H,7FH,04H,00H,00H,00HC3EH,41H,41H,41H,22H,00H,00H,00H57AH,49H,49H,49H,4EH,00H,00H,00HD41H,7FH,41H,41H,3EH,00H,00H,00H67FH,49H,49H,49H,4FH,00H,00H,00HE7FH,49H,49H,49H,49H,00H,00H,00H7
19、20H,40H,40H,40H,7FH,00H,00H,00HF7FH,48H,48H,48H,48H,00H,00H,00H表表5-3 字符字符09、AF的的57数据码数据码 假设所有字符均以假设所有字符均以57点阵在显示器的左下角显示,点阵在显示器的左下角显示,则各字符的数据编码见表则各字符的数据编码见表5-3。第22页,共81页,编辑于2022年,星期五 利用利用LED点阵显示器,可以方便地显示各种图形,如点阵显示器,可以方便地显示各种图形,如正方形、三角形、菱形等,图正方形、三角形、菱形等,图5.12所示为一个所示为一个44正方正方形。通过编程,还可以实现图形的动态显示。形。通过编程,
20、还可以实现图形的动态显示。图图5.12 用用88 LED点阵显示器显示自定义图形点阵显示器显示自定义图形 第23页,共81页,编辑于2022年,星期五图 形数 据 码88正方形FFH,81H,81H,81H,81H,81H,81H,FFH77正方形FEH,82H,82H,82H,82H,82H,FEH,00H66正方形FCH,84H,84H,84H,84H,FCH,00H,00H55正方形F8H,88H,88H,88H,F8H,00H,00H,00H44正方形F0H,90H,90H,F0H,00H,00H,00H,00H33正方形E0H,A0H,E0H,00H,00H,00H,00H,00H2
21、2正方形C0H,C0H,00H,00H,00H,00H,00H,00H11正方形80H,00H,00H,00H,00H,00H,00H,00H表表5-4 自定义图形编码自定义图形编码【例【例5.4】在例在例5.3的基础上,编程实现下列功能:以显示器的左上角为原点,的基础上,编程实现下列功能:以显示器的左上角为原点,依次循环显示表依次循环显示表5-4所定义的各种图形。所定义的各种图形。第24页,共81页,编辑于2022年,星期五5.3.2 中文字符的显示中文字符的显示 利用利用LED点阵显示器可以方便地实现中文字符的显点阵显示器可以方便地实现中文字符的显示,由于国标汉字是用示,由于国标汉字是用1
22、616点阵(点阵(256个像素)来表示个像素)来表示的,因此需要用的,因此需要用4块块88的的LED点阵显示器组合成点阵显示器组合成1616 LED点阵显示器,才可以完整地显示一个汉字。图点阵显示器,才可以完整地显示一个汉字。图5.13所所示为汉字示为汉字“电电”的的1616 字形点阵示意图。字形点阵示意图。值得注意的是,字形并不是唯一的,应根据具体需要而定。值得注意的是,字形并不是唯一的,应根据具体需要而定。第25页,共81页,编辑于2022年,星期五图图5.13 “电电”的的1616 字形点阵示意图字形点阵示意图 为了使用为了使用8位的位的51系列单片机控制汉字的显示,通常把一个系列单片机
23、控制汉字的显示,通常把一个汉字分成上、下两个部分,如图汉字分成上、下两个部分,如图5.13所示。所示。单片机从上半部左侧开始,单片机从上半部左侧开始,扫描完上半部的第扫描完上半部的第1列后,继续列后,继续扫描下半部的第扫描下半部的第1列;然后又从列;然后又从上半部的第上半部的第2列开始扫描,扫描列开始扫描,扫描完上半部的第完上半部的第2列后,继续扫描列后,继续扫描下半部的第下半部的第2列;列;以此类推,以此类推,直到扫描下半部右侧最后一列直到扫描下半部右侧最后一列为止。为止。第26页,共81页,编辑于2022年,星期五汉字汉字“电电”的扫描代码的扫描代码第27页,共81页,编辑于2022年,星
24、期五【例【例5.5】用用4块块88的红色的红色LED点阵显示器构成点阵显示器构成1块块1616的的LED电子广告屏,用来显示图形和汉字字符。具体要求如下:电子广告屏,用来显示图形和汉字字符。具体要求如下:开机以卷帘出的形式出现一个笑脸,然后以左跑马的形式出开机以卷帘出的形式出现一个笑脸,然后以左跑马的形式出现现“零五智能电子班是最棒的!零五智能电子班是最棒的!”,再以下滚屏的形式出现,再以下滚屏的形式出现“零五智能电子是最棒的!零五智能电子是最棒的!”。最后再以卷帘入的形式出现另一。最后再以卷帘入的形式出现另一个笑脸。接着不断循环上面的步骤。个笑脸。接着不断循环上面的步骤。第28页,共81页,
25、编辑于2022年,星期五(a)总电路图总电路图图图5.14 例例5.5电路图电路图 第29页,共81页,编辑于2022年,星期五(b)1616 LED点阵显示器内部接线图点阵显示器内部接线图 图图5.14 例例5.5电路图电路图 第30页,共81页,编辑于2022年,星期五图图5.15 例例5.5程序流程图程序流程图 根据题目要求,主程序的流程图如图根据题目要求,主程序的流程图如图5.15所示。所示。第31页,共81页,编辑于2022年,星期五5.4 液晶显示器 5.4.1 5.4.1 点阵字符型点阵字符型LCDLCD的内部结构的内部结构 5.4.2 5.4.2 点阵字符型点阵字符型LCDLC
26、D的指令系统的指令系统 5.4.3 5.4.3 点阵字符型点阵字符型LCDLCD应用举例应用举例 液晶显示器液晶显示器(LCD)由于功耗低、抗干扰能力强等优点,日渐成由于功耗低、抗干扰能力强等优点,日渐成为各种便携式产品、仪器仪表以及工控产品的理想显示器。为各种便携式产品、仪器仪表以及工控产品的理想显示器。LCD种种类繁多,按显示形式及排列形状可分为字段型、点阵字符型、点阵类繁多,按显示形式及排列形状可分为字段型、点阵字符型、点阵图形型。单片机应用系统中主要使用后两种。图形型。单片机应用系统中主要使用后两种。第32页,共81页,编辑于2022年,星期五 本节重点介绍本节重点介绍1602点阵字符
27、型点阵字符型LCD(Proteus ISIS中的中的LM016L),),16代表每行可显示代表每行可显示16个字符;个字符;02表示共有表示共有2行,行,即这种即这种LCD显示器可同时显示显示器可同时显示32个字符,如图个字符,如图5.16所示。所示。图图5.16 1602点阵字符型点阵字符型LCD 第33页,共81页,编辑于2022年,星期五5.4.1 点阵字符型LCD的内部结构图图5.17 1602点阵字符型点阵字符型LCD的内部结构框图的内部结构框图 1602点阵字符型点阵字符型LCD显示模块显示模块(LCM)由由LCD控控制器、制器、LCD 驱动器、驱动器、LCD显示装显示装 置置(液
28、晶屏液晶屏)等组成,等组成,主要用于显示数字、主要用于显示数字、字母、字母、图形符号及少图形符号及少 量自定义符量自定义符号,内部号,内部 结构如图结构如图5.17所所示。示。第34页,共81页,编辑于2022年,星期五 高4位低4位0000(CGRAM)0010001101000101011001110000(1)0Pp0001(2)!1AQaq0010(3)”2BRbr0011(4)#3CScs0100(5)4DTdt0101(6)%5EUeu0110(7)&6FVfv0111(8)7GWgw表表5-5 字符发生器中部分常用的字符发生器中部分常用的57点阵字符代码点阵字符代码 第35页,共
29、81页,编辑于2022年,星期五1000(1)(8HXhx1001(2)9IYiy1010(3)*:JZjz1011(4)+;Kk1100(5),Nn1111(8)/?Oo续表续表5-5 字符发生器中部分常用的字符发生器中部分常用的57点阵字符代码点阵字符代码 第36页,共81页,编辑于2022年,星期五图图5.19 1602点阵字符型点阵字符型LCD的显示地址编码的显示地址编码 第37页,共81页,编辑于2022年,星期五5.4.2 点阵字符型LCD的指令系统 点阵字符型液晶显示模块是一个智能化的器件,所有点阵字符型液晶显示模块是一个智能化的器件,所有的显示功能都是由指令实现的。点阵字符型的
30、显示功能都是由指令实现的。点阵字符型LCD的指令系的指令系统共有统共有11条指令,下面分别介绍。条指令,下面分别介绍。第38页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D0100000000011.清屏清屏指令编码:指令编码:01H。指令功能:用字符代码为指令功能:用字符代码为20H的的“空格空格”刷新屏幕,同时将刷新屏幕,同时将光标移到屏幕的左上角。光标移到屏幕的左上角。第39页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D010000000012.光标返回原点光标返回原点指令编码:指令编码:0
31、2H或或03H。指令功能:将光标移到屏幕的左上角,同时清零地址计数指令功能:将光标移到屏幕的左上角,同时清零地址计数器器AC,而,而DDRAM的内容不变。的内容不变。“”表示该位可以为表示该位可以为0或或1(下同下同)。第40页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D0100000001I/DS3.设置字符设置字符/光标移动模式光标移动模式指令编码:指令编码:04H07H。指令功能:指令功能:(1)I/D=1,表示当读或写完一个数据操作后,地址指针,表示当读或写完一个数据操作后,地址指针AC加加l,且光标加,且光标加1(光标右移光标右移1格
32、格);I/D=0,表示当读或写完一个数,表示当读或写完一个数据操作后,地址指针据操作后,地址指针AC减减1,且光标减,且光标减1(光标左移光标左移1格格)。(2)S=1,表示当写一个数据操作时,整屏显示左移,表示当写一个数据操作时,整屏显示左移(I/D=1)或右移或右移(I/D=0),以得到光标不移动而屏幕移动的效果;以得到光标不移动而屏幕移动的效果;S=0,表示当写一个数据操作时,整屏,表示当写一个数据操作时,整屏显示不移动。显示不移动。第41页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D010000001DCB4.显示器开显示器开/关控制关
33、控制指令编码:指令编码:08H0FH。指令功能:指令功能:(1)D=0,显示器关闭,显示器关闭,DDRAM中的显示数据保持不变;中的显示数据保持不变;D=1,显示器打开,立即显示显示器打开,立即显示DDRAM中的内容。中的内容。(2)C=1,表示在显示屏上显示光标;,表示在显示屏上显示光标;C=0,表示光标不显示。,表示光标不显示。(3)B=1,表示光标出现后会闪烁;,表示光标出现后会闪烁;B=0,表示光标不闪烁。,表示光标不闪烁。第42页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D01000001S/CR/L5.光标或字符移位光标或字符移位指
34、令编码:指令编码:10H1FH。指令功能:指令功能:(1)S/C=1,表示显示屏上的画面平移,表示显示屏上的画面平移1个字符位;个字符位;S/C=0,表示光标平移表示光标平移1个字符位。个字符位。(2)R/L=1,表示右移;,表示右移;R/L=0,表示左移。,表示左移。第43页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D0100001DLNF6.设置功能设置功能指令编码:指令编码:20H3FH。指令功能:指令功能:(1)DL=1,表示采用,表示采用8位数据接口;位数据接口;DL=0,表示采用,表示采用4位位数据接口,使用数据接口,使用D7D4位
35、,分两次送入位,分两次送入1个完整的字符数据。个完整的字符数据。(2)N=1,表示采用双行显示;,表示采用双行显示;N=0,表示采用单行显示。,表示采用单行显示。(3)F=1,表示采用,表示采用510点阵字符;点阵字符;F=0,表示采用,表示采用57点阵字符。点阵字符。第44页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D0100017.设置设置CGRAM地址地址指令编码:指令编码:40H7FH。指令功能:设定下一个要读指令功能:设定下一个要读/写数据的写数据的CGRAM地址,地址地址,地址由由(D5D0)给出,可设定给出,可设定003FH共共6
36、4个地址。个地址。第45页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D010018.设置设置DDRAM地址地址指令编码:指令编码:80HFFH。指令功能:设定下一个要读指令功能:设定下一个要读/写数据的写数据的DDRAM地址,地址由地址,地址由(D6D0)给出,可设定给出,可设定007FH共共128个地址。当个地址。当N=0时单行显示时单行显示(参见参见6:设置功能:设置功能)。D6D0的取值范围为的取值范围为000FH(参见图参见图5.19);当;当N=1时双行显示时双行显示(参见参见6:设置功能:设置功能),首行,首行D6D0的取值范围为的
37、取值范围为00H0FH,次行,次行D6D0的取值范围为的取值范围为40H4FH(参见图参见图5.19)。第46页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D0101BF9.忙碌标志位忙碌标志位BF或或AC的值的值 忙碌标志位忙碌标志位BF用来指示用来指示LCD目前的工作情况,当目前的工作情况,当BF=1时,表示正在进行内部数据的处理,不接收单片机送来时,表示正在进行内部数据的处理,不接收单片机送来的指令或数据;当的指令或数据;当BF=0时,表示已准备接收命令或数据。时,表示已准备接收命令或数据。当程序读取此数据的内容时,当程序读取此数据的内容时
38、,D7表示表示BF,D6D0的的值表示值表示CGRAM或或DDRAM中的地址。至于是指向哪一个地址,则中的地址。至于是指向哪一个地址,则根据最后写入的地址设定指令而定。根据最后写入的地址设定指令而定。第47页,共81页,编辑于2022年,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D011010.写数到写数到CGRAM或或DDRAM 先设定先设定CGRAM或或DDRAM地址,再将数据写入地址,再将数据写入D7 D0中,以使中,以使LCD显示出字形,也可以使用户自定义的字符图形存入显示出字形,也可以使用户自定义的字符图形存入CGRAM中。中。第48页,共81页,编辑于2022年
39、,星期五控制信号指令编码ERSR/WD7D6D5D4D3D2D1D011111.从从CGRAM或或DDRAM中读数中读数 先设定先设定CGRAM或或DDRAM地址,再读取其中的数据。地址,再读取其中的数据。第49页,共81页,编辑于2022年,星期五5.4.3 点阵字符型LCD应用举例 液晶显示模块与单片机的连接方式有两种:一种为直接访问方式液晶显示模块与单片机的连接方式有两种:一种为直接访问方式(总线方式总线方式),另一种为间接控制方式,另一种为间接控制方式(模拟口线方式模拟口线方式)。直接访问方式直接访问方式直接访问方式直接访问方式是将液晶显示模块的接口作为存储器或是将液晶显示模块的接口作
40、为存储器或I/O设备直接挂在单片机总线上,设备直接挂在单片机总线上,单片机以访问存储器或单片机以访问存储器或I/O设备的方式控制液晶显示模块的工作。设备的方式控制液晶显示模块的工作。间接控间接控间接控间接控制方式制方式制方式制方式是单片机通过自身的或系统中的并行接口与液晶显示模块连接,单片是单片机通过自身的或系统中的并行接口与液晶显示模块连接,单片机通过对这些接口的操作,实现对液晶显示模块的控制。间接控制方式的特机通过对这些接口的操作,实现对液晶显示模块的控制。间接控制方式的特点是电路简单,节省单片机外围的数字逻辑电路,控制时序由软件产生,可点是电路简单,节省单片机外围的数字逻辑电路,控制时序
41、由软件产生,可以实现高速的单片机与液晶显示模块的接口。本节将通过实例介绍间接控制以实现高速的单片机与液晶显示模块的接口。本节将通过实例介绍间接控制方式的使用方法。方式的使用方法。第50页,共81页,编辑于2022年,星期五【例【例5.6】电路如图电路如图5.20所示,单片机采用所示,单片机采用AT89C51,振荡器频率,振荡器频率fOSC为为12MHz,显示器采用,显示器采用162的字符型的字符型LCD(Proteus ISIS中中的的LM016L)。试编写程序,让显示器显示两行字符串,第。试编写程序,让显示器显示两行字符串,第1行为行为“ZhuHai ChengShi”,共,共15个字符;第
42、个字符;第2行为行为“JiShu XueYuan”,共,共14个字符。个字符。第51页,共81页,编辑于2022年,星期五图图5.20 例例5.6电路图电路图 第52页,共81页,编辑于2022年,星期五【例【例5.7】电路如图电路如图5.21所示,单片机采用所示,单片机采用AT89C51,振荡器频,振荡器频率率fosc为为12MHz,显示器采用,显示器采用162的字符型的字符型LCD(Proteus ISIS中的中的LM016L)。试编写程序,在试编写程序,在LCD的左上角显示键名,的左上角显示键名,如按如按A键显示字符键显示字符“A”。第53页,共81页,编辑于2022年,星期五(a)主机
43、部分主机部分(b)按键、显示部分按键、显示部分 图图5.21 例例5.7电路图电路图 第54页,共81页,编辑于2022年,星期五5.5 非编码键盘 5.5.1 5.5.1 线性非编码键盘线性非编码键盘 5.5.2 5.5.2 矩阵非编码键盘矩阵非编码键盘 键盘是单片机应用系统中最常用的输入设备,通过键盘输入数据键盘是单片机应用系统中最常用的输入设备,通过键盘输入数据或命令,可以实现简单的人机对话。或命令,可以实现简单的人机对话。键盘有键盘有编码键盘编码键盘编码键盘编码键盘和和非编码键盘非编码键盘非编码键盘非编码键盘之分。之分。目前,单片机应用系统中普遍采用非编码键盘。按照键开关的目前,单片机
44、应用系统中普遍采用非编码键盘。按照键开关的排列形式,非编码键盘又分为线性非编码键盘和矩阵非编码键盘两排列形式,非编码键盘又分为线性非编码键盘和矩阵非编码键盘两种。种。第55页,共81页,编辑于2022年,星期五5.5.1 线性非编码键盘 线性非编码键盘的键开关线性非编码键盘的键开关(K1、K2、K3、K4)通常排通常排成一行或一列,一端连接在单片机成一行或一列,一端连接在单片机I/O口口(P1)的引脚的引脚(P0.0、P0.1、P0.2、P0.3)上,同时经上拉电阻接至上,同时经上拉电阻接至+5V电源,另一端则串接在一起电源,另一端则串接在一起作为公共接地端,如图作为公共接地端,如图5.22所
45、示。所示。线性非编码键盘的工作原理线性非编码键盘的工作原理线性非编码键盘的工作原理线性非编码键盘的工作原理是:当无按键被按下时,是:当无按键被按下时,引脚引脚P0.0、P0.1、P0.2、P0.3为高电平;当按下某个按为高电平;当按下某个按键时,对应的键时,对应的I/O口引脚为低电平。单片机只要读取口引脚为低电平。单片机只要读取I/O口口引脚的状态,就可以获得按键信息,识别有无键被按下、引脚的状态,就可以获得按键信息,识别有无键被按下、哪个键被按下。哪个键被按下。第56页,共81页,编辑于2022年,星期五 在编写键盘处理程序时要考虑在编写键盘处理程序时要考虑如何消除按键抖动的问题如何消除按键
46、抖动的问题如何消除按键抖动的问题如何消除按键抖动的问题。具体方法是:。具体方法是:首先读取首先读取I/O口状态并第口状态并第1次判断有无键被按下,若有键被按下则等待次判断有无键被按下,若有键被按下则等待10ms,然后,然后读取读取I/O口状态并第口状态并第2次判断有无键被按下,若仍然有键被按下则说明某个按键处次判断有无键被按下,若仍然有键被按下则说明某个按键处于稳定的闭合状态;若第于稳定的闭合状态;若第2次判断时无键被按下,则认为第次判断时无键被按下,则认为第1次是按键抖动引起的次是按键抖动引起的无效闭合。无效闭合。图图5.22 线性非编码键盘的应用线性非编码键盘的应用(a)主机、显示部分主机
47、、显示部分(b)键盘部分键盘部分 第57页,共81页,编辑于2022年,星期五 线性非编码键盘的状态扫描及键值处理流程图如图线性非编码键盘的状态扫描及键值处理流程图如图5.23所示。所示。图图5.23 线性非编码键盘按键处理流程图线性非编码键盘按键处理流程图 第58页,共81页,编辑于2022年,星期五【例【例5.8】电路如电路如图图5.22所示,单片机采用所示,单片机采用AT89C51,振荡器频率,振荡器频率fOSC为为12MHz,在,在P1口接有口接有8只发光二极管只发光二极管D1D8。试编写程序实现。试编写程序实现下列要求。下列要求。(1)开机开机D1D8全亮。全亮。(2)仅按下仅按下K
48、1键时,依次点亮键时,依次点亮D1D8,时间间隔为,时间间隔为50ms。(3)仅按下仅按下K2键时,依次点亮键时,依次点亮D8D1,时间间隔为,时间间隔为50ms。(4)仅按下仅按下K3键时,键时,D8D1闪烁,时间间隔为闪烁,时间间隔为50ms。(5)仅按下仅按下K4键时,熄灭键时,熄灭D1D8。第59页,共81页,编辑于2022年,星期五5.5.2 矩阵非编码键盘 矩阵非编码键盘的键开关处于行线与列线的交叉点上,每个键开关的一矩阵非编码键盘的键开关处于行线与列线的交叉点上,每个键开关的一端与行线相连,另一端与列线相连。图端与行线相连,另一端与列线相连。图5.24所示是一个所示是一个43的矩
49、阵非编码键盘。的矩阵非编码键盘。图图5.24 矩阵非编码键盘矩阵非编码键盘 第60页,共81页,编辑于2022年,星期五 矩阵非编码键盘键代码的确定通常采用逐行扫描法,矩阵非编码键盘键代码的确定通常采用逐行扫描法,其处理流程如图其处理流程如图5.25所示。所示。图图5.25 矩阵非编码键盘按键处理流程矩阵非编码键盘按键处理流程 第61页,共81页,编辑于2022年,星期五【例【例5.9】基于基于图图5.26所示的硬件电路,试编写程序,用所示的硬件电路,试编写程序,用7段数码管段数码管显示矩阵非编码键盘的键名。例如,按显示矩阵非编码键盘的键名。例如,按1键则显示键则显示“1”。图图5.26所示是
50、所示是44矩阵非编码键盘与单片机的典型连接方式。矩阵非编码键盘与单片机的典型连接方式。4根行线分别与单片机根行线分别与单片机P1口的口的P1.0P1.3引脚相连,称为引脚相连,称为行扫描口行扫描口行扫描口行扫描口;4根列线分别与单片机根列线分别与单片机P1口的口的P1.4 P1.7引脚相连,称为引脚相连,称为列检测口列检测口列检测口列检测口。16个按键的键名分别为个按键的键名分别为0 9、AF。第62页,共81页,编辑于2022年,星期五(a)主机、显示部分主机、显示部分(b)键盘部分键盘部分 图图5.26 矩阵非编码键盘的应用矩阵非编码键盘的应用 第63页,共81页,编辑于2022年,星期五