单片机课程设计资料文档格式.docx
《单片机课程设计资料文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计资料文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
4脚(RS):
寄存器选择(1:
选择数据寄存器;
0:
选择指令寄存器)。
5脚(R/W):
读/写选择(1:
读;
写)。
6脚(E):
使能操作(1:
LCM可做读写操作;
LCM不可做读写操作)。
7脚(DB0):
双向数据总线的第0位。
8脚(DB1):
双向数据总线的第1位。
9脚(DB2):
双向数据总线的第2位。
10脚(DB3):
双向数据总线的第3位。
11脚(DB4):
双向数据总线的第4位。
12脚(DB5):
双向数据总线的第5位。
13脚(DB6):
双向数据总线的第6位。
14脚(DB7):
双向数据总线的第7位。
15脚(VDD):
背光显示器电源+5V。
16脚(VSS):
背光显示器接地。
三、16*1点阵字符液晶模块(LCM)的内部结构
LCM的内部结构可分为:
LCD控制器、LCD驱动器、LCD显示装置三个部分,如图2-2-1所示。
图2-2-1
点阵字符液晶模块与单片机(MCU)之间利用LCM的控制器进行通信。
HD44780集驱动器与控制器于一体,是专用于字符显示的液晶显示控制器的代表电路。
HD44780内部由时序发生电路、地址指针计数器AC(AddressCounter)、光标闪烁控制电路、数据显示用RAM(DatadisplayRAM,简称DDRAM)、字符产生器ROM(CharacterGenerator的ROM,简称CGROM)、字型字符产生器RAM(CharacterGeneratorRAM,简称CGRAM)、复位电路、指令寄存器(InstructionRegister,简称IR)、数据寄存器(DataRegister,简称DR)、忙碌标志信号(BusyFlag,简称BF)组成。
四、点阵字符液晶模块的控制器指令
用单片机(MCU)来控制点阵字符液晶模块、方式十分简单LCD模块的内部可以看成两组寄存器,一组为指令寄存器,一组为数据寄存器,由RS引脚来控制。
所有对指令寄存器或数据寄存器的存取均需检查LCD内部的忙碌标志BF,此标志用来告知LCD内部正工作,并不允许接收任何的控制命令。
而对此位的检查可以令RS=0,用读取DB7来加以判断,当DB7为0时,才可以写入指令或数据寄存器。
LCD控制器的指令共有11组。
(1)清除显示器
RS
R/W
E
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
指令代码为01H,将DDRAM数据全部填入“空白”的ASCII代码20H,执行此命令将清除显示器的内容,同时光标移到最左边。
(2)光标归位设定
*
指令代码02H,地址计数器被清0,DDRAM数据不变,光标移到最左边。
*表示可以为0或1。
(3)设定字符进入模式
I/D
S
工作情形
光标左移一格,AC值减1,字符全都不动
光标不动,AC值减1,字符全部右移一格
光标右移一格,AC值加1,字符全部不动
光标不动,AC值加1,字符全部左移一格
(4)显示器开关
D
C
B
D:
显示屏开启或关闭控制位,D=1时,显示屏开启;
D=0时,则显示屏关闭,但显示数据仍保存于DDRAM中。
C:
光标出现控制位,C=1时,则光标会出现在地址计数器所指的位置;
C=0则光标不出现。
B:
光标闪烁控制位,B=1光标出现后会闪烁;
B=0,光标不闪烁。
(5)显示光标移位
S/C
R/L
*表示可以为0或1
光标左移一格,AC值减1
光标右移一格,AC值加1
字符和光标同时左移一格
字符和光标同时右移一格
(6)功能设定
DL
N
F
*表示可能为0或1。
DL:
数据长度选择位。
DL=1时为8位(DB0~DB7)数据转移;
DL=0时则为4位数据转移,使用DB7~DB4位,分两次送入一个完整的字符数据。
N:
显示屏为单行或双行选择。
N=1时为双行显示,N=0时为单行显示。
F:
大小字符显示选择。
当F=1时,为5*10字型(有的产品无些功能);
当F=0时,则为5*7字型。
(7)CGRAM地址设定
A5
A4
A3
A2
A1
A0
设定下一个要读写数据的CGRAM地址(A5~A0)。
(8)DDRAM地址设定
A6
设定下一个要读写数据的DDRAM地址(A6~A0)。
(9)忙碌标志BF或AC地址读取
BF
LCD的忙碌标志BF用以指示LCD目前的工作情况,当BF=1时,表示正在做内部数据的处理,不接受MCU送来的指令或数据;
当BF=0时,则表示已准备接收命令或数据;
程序读取此数据的内容时,DB7表示忙碌标志,而另外DB6~DB0的值表示CGRAM或DDRAM中的地址,至于是指向哪一个地址则根据最后写入的地址设定指令而定。
(10)写数据到CGRAM或DDRAM中
先设定CGRAM或DDRAM地址,再将数据写入DB7~DB0中,以使LCD显示出字形,也可将使用者自创的图形存入CGRAM。
(11)从CGRAM或DDRAM中读取数据
先设定CGRAM或DDRAM地址,再读取其中的数据。
五、LCM工作时序图
控制LCD所使用的芯片HD44780其读写周期约为1us,这与8051MCU的读写周期相当,所以很容易与MCU相互配合使用。
(1)读取时序
图2-2-2
(2)写入时序
图2-2-3
时序参数表如下:
六、单片机驱动点阵字符液晶模块的电路
液晶显示模块与单片机的连接方式通常有两种,一种为直接访问方式(总线方式),另一种为间接控制方式(模拟口线)。
直接访问方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在单片机总线上,单片机以访问存储器或I/O设备的方式控制液晶显示模块的工作。
间接控制方式是单片机通过自身的或系统中的并行接口与液晶显示模块连接,单片机通过对这些接口的操作,达到对液晶显示模块的控制。
间接控制方式的特点是电路简单,可省略单片机外围的数字逻辑电路,控制时序由软件产生,可以实现高速单片机与液晶显示模块的接口。
(1)模拟口线
图2-2-4
(2)总线方式
图2-2-5
一、键盘结构
行列式键盘又叫矩阵式键盘,如图2-4-1所示。
用一些I/O接口线组成行结构,用另一些I/O接口线组成列结构,其交叉点处不接通,设置为按键。
利用这种行列结构只需M条行线和N条列线,就可组成M*N个按键的键盘,因此减少了键盘与单片机接口时所占用I/O接口线的数目。
二、键盘工作原理
如图2-4-1所示,键盘中有无键按下是由列线送入全扫描字,然后读入行线状态来判断。
具体是:
向列线输出全扫描字00H,将全部列线置为低电平,然后将行线的电平状态读入累加器A中。
如果有键按下,总会有一根行线电平被拉至低电平,从而使输入不全为1。
键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态实现的。
方法是:
依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的键不在此列;
如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交叉的那个键。
键盘上的每一个按键都有一个键值。
给键赋值的最直接办法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到给该列置低电平0,若读出各行状态为非全1,这时的行、列数据组合成键值。
图2-4-1中键盘键值从左到右、从上到下依次是77,7B,7D,7E;
B7,BB,BD,BE,…,E7,EB,ED,EE。
这种负逻辑表示往往不够直观,因而采用行、列线加反向器或软件求反的方法将键盘改成正逻辑。
这时,键值依次为88,84,82,81;
48,44,42,41,…,18,14,12,11。
不论是正逻辑还是负逻辑,这种键值表示方式分散度在且不等距,用于指令不太方便。
对于不是4*4或8*4或8*8键盘,使用也不容易,故在许多场合下,采用依次排列键值的方法。
这时的键值与键号相一致。
汇编程序:
MAIN:
RSBITP1.0
RWBITP1.1
EBITP1.2
DB0_DB7DATAP3
KEYBOARDDATAP2
XPOSDATA20H
ORG00H
AJMP