单片机多机通信实现 联系客服

发布时间 : 星期三 文章单片机多机通信实现更新完毕开始阅读6d73befd9b89680202d82500

盐城工学院本科生毕业设计说明书 (2010)

并不是所有的地址都被定义了,片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据;写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。

定时器 2 寄存器:寄存器 T2CON 和 T2MOD 包含定时器 2 的控制位和状态位(如表 2和表 3 所示),寄存器对RCAP2H和RCAP2L是定时器 2 的捕捉/自动重载寄存器。

中断寄存器:各中断允许位在 IE 寄存器中,六个中断源的两个优先级也可在 IE 中设置。

T2CON 地址为 0C8H 复位值:0000 0000B 位可寻址

表2-5 T2CON位定义 RCLK TCLK EXEN2 TR2 D5 D4 D3 D2 TF2 D7 EXF2 D6 C/T2 D1 CP/RL2 D0 TF2:定时器 2 溢出标志位。必须软件清“0”。RCLK=1 或 TCLK=1 时,TF2不用置位。

EXF2:定时器 2 外部标志位。EXEN2=1 时,T2EX 上的负跳变而出现捕捉或重载时,EXF2 会被硬件置位。定时器2 打开,EXF2=1 时,将引导 CPU执行定时器 2 中断程序。EXF2 必须如见清“0”。在向下/向上技术模式(DCEN=1)下 EXF2 不能引起中断。

RCLK:串行口接收数据时钟标志位。若 RCLK=1,串行口将使用定时器 2 溢出脉冲作为串行口工作模式 1 和 3 的串口接收时钟;RCLK=0,将使用

时器 1 计数溢出作为串口接收时钟。

TCLK:串行口发送数据时钟标志位。若 TCLK=1,串行口将使用定时器 2 溢出脉冲作为串行口工作模式 1 和 3 的串口发送时钟;TCLK=0,将使用定

时器 1 计数溢出作为串口发送时钟。定时器 2 外部允许标志位。当 EXEN2=1 时,如果定时器 2 没有用作串行时钟,T2EX(P1.1)的负跳变见引起定时器2捕捉和重载。若EXEN2=0,定时器 2 将视 T2EX 端的信号无效

TR2:开始/停止控制定时器2。TR2=1,定时器 2 开始工作定时器 2 定时/计数选择标志位。为0,定时;为1,外部事件计数(下降沿触发)

CP/RL2:捕捉/重载选择标志位。当 EXEN2=1 时,为1,T2EX 出现负脉冲,会引起捕捉操作;当定时器 2 溢出或 EXEN2=1 时 T2EX 出现负跳变,都会出现自动重载操作。为0 将引起 T2EX 的负脉冲。当RCKL=1或 TCKL为1时,此标志位无效,定时器2溢出时,强制做自动重载操作。 2.4 液晶LCD1602介绍

市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线

9

单片机多机通信实现

VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,定义如下表所示:

表2-6 LCD1602的引脚定义

HD44780内置了DDRAM、CGROM和CGRAM。DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:

表2-7 DDRAM地址与屏幕对应关系

要在LCD1602屏幕的第一行第一列显示一个\字,就要向DDRAM的00H地址写入

10

盐城工学院本科生毕业设计说明书 (2010)

“A”字的代码就行了。但具体的写入是要按LCD模块的指令格式来进行的。在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下:

表2-8 DDRAM地址与显示位置的对应关系

文本文件中每一个字符都是用一个字节的代码记录的。一个汉字是用两个字节的代码记录。在PC上我们只要打开文本文件就能在屏幕上看到对应的字符是因为在操作系统里和BIOS里都固化有字符字模。字模就代表了是在点阵屏幕上点亮和熄灭的信息数据。例如“A”

01110 10001 10001 10001 11111 10001 10001

○■■■○ ■○○○■ ■○○○■ ■○○○■ ■■■■■ ■○○○■ ■○○○■

图2-2 'A'的字模

上图左边的数据就是字模数据,右边就是将左边数据用“○”代表0,用“■”代表1。在LCD模块上也固化了字模存储器,这就是CGROM和CGRAM。HD44780内置了192个常用字符的字模,存于字符产生器CGROM(Character Generator ROM)中,另外还有8个允许用户自定义的字符产生RAM,称为CGRAM(Character Generator RAM)。下图说明了CGROM和CGRAM与字符的对应关系。

表2-9 CGROM中字符码与字模关系对照表

11

单片机多机通信实现

从上图可以看出,“A”字的对应上面高位代码为0100,对应左边低位代码为0001,合起来就是01000001,也就是41H。可见它的代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1='A'这样的方法。PC在编译时就把“A”先转为41H代码了。

HD44780的指令集介绍,共11条指令:

1.清屏指令

功能:<1> 清除液晶显示器,即将DDRAM的内容全部填入\空白\的ASCII码20H; <2> 光标归位,即将光标撤回液晶显示屏的左上方; <3> 将地址计数器(AC)的值设为0。

2.光标归位指令

12