msp430f149单片机

msp430f149单片机
msp430f149单片机

基于MSP430F149单片机的实验系统设

本课题在对MSP430F149单片机了解学习的基础上,研究了基于MSP430F149单片机的实验系统设计,包括单片机的外部接口电路硬件设计和软件开发。本课题具体完成了以下几方面内容。

1.理论知识的学习。学习MSP430F149单片机的内部结构、特点和应用,查阅相关芯片的数据手册,了解各模块电路芯片的工作原理。

2.设计MSP430F149单片机的各种接口电路。确定各模块的外围接口电路,包括A/D转换、D/A转换、键盘接口、数码管显示、温度传感器、实时时钟、非易失性存储器、液晶显示、串行通信等。

3.学习并使用protel 99SE软件绘制电路原理图、PCB板,制作印制电路板。学习MSP430单片机的集成开发环境,编写各模块的接口驱动程序。

4.下载调试各模块接口程序,完善各模块的功能。

系统硬件组成共包括九个模块,分别为MSP430F149单片机最小系统模块,4路A/D转换模块,D/A 转换模块,键盘数码管显示模块,温度传感器模块,实时时钟模块,非易失性存储器模块,液晶显示模块,2路串口通信接口模块。系统软件组成为各个功能模块程序设计,包括七个部分,分别为A/D转换程序,温度传感器显示当前环境中的温度,用液晶来显示实时时钟,通过串口向单片机发送字符,单片机又发回字符给电脑,D/A输出方波,非易失性存储器的读写。系统结构如图2-1所示。

图2-1 系统组成结构

其中,本课题外接模块设计中具有I2C总线接口的电路有温度传感器模块、实时时钟/日历模块、非易失性存储器模块,组成结构如图2-2所示。

图2-2 I2C总线接口模块

本课题设计的基于MSP430单片机的实验系统提供MSP430F149芯片,一路LED灯,I2C总线接口的温度传感器芯片LM75,实时/日历时钟芯片PCF8563,16384(16K)字节EEPROM的非易失性存储器芯片AT24C128,汉字图形点阵液

晶显示模块RT12864,串行接口8位LED数码管及64键键盘智能控制芯片

HD7279A,带有缓冲基准输入(高阻抗)的10位电压输出数字-模拟转换器芯片TLC5615,双串口电平转换芯片SP3223,JTAG并口仿真器。

本课题设计的实验系统用于实践教学,能够完成的实验如下所示。

1.LED闪烁实验。

2.测量输入信号的频率。

3.输出PWM信号。

4.A/D转换实验。

5.数码管显示LM75温度实验。

6.数码管显示PCF8563实时时钟实验。

7.24C128 I2C存储器读写实验。

8.液晶显示LM75温度实验。

9.液晶显示PCF8563实时时钟实验。

10.TLC5615 DA转换实验。

11.UART0串口通信实验。

12.UART1串口通信实验。

第一章硬件设计

1.1硬件总体设计

本系统的硬件共分为八个部分:单片机及其外围电路,键盘数码管显示电路,温度传感器电路,串行通信电路,非易失性存储器电路,液晶显示电路,实时时钟电路,D/A转换电路。硬件总体结构如图3-1所示。

图3-1 硬件总体结构

其中主控模块为MSP430F149单片机,每个子模块都与单片机有相应接口相连。温度传感器电路感测环境中的温度、非易失性存储器电路中的数据、A/D转换模块采集到的数据传给单片机进行处理,在显示模块(HD7279,LED)上进行显示;单片机读取实时时钟的日期、时间在液晶显示模块上进行显示;D/A转换模块输出的模拟信号用示波器进行观察;单片机与PC机之间的数据传输通过SP3223电平转换实现。

1.2MSP430F149单片机最小系统

单片机最小系统,是指用最少的元件组成的单片机可以工作的系统。对于

MSP430系列单片机来说,最小系统应该包括:单片机、电源电路、时钟电路、复位电路、JTAG调试接口。

1.电源电路

考虑到单片机部分和外接模块如串口通信、实时时钟、非易失性存储器、温度传感器的工作电压均为3.3V,而其他的外围器件模块如液晶显示、D/A转换芯片的工作电压为5V,本课题在电源电路的设计上使用的是直流5V电压源。为使单片机和所有的外接模块都正常工作,就必须进行电压转换。电源电路如图3-2所示。

图3-2 电源电路

本课题设计的电源电路是以5V直流电压源Vcc为输入电压,Vcc经过电压转换芯片AS1117转换为3.3V。当打开电源开关SW1时,5V电源指示灯D1亮,3.3V指示灯D2亮。要求发光二极管的电流约为10mA,所以接510Ω电阻进行限流。5V、3.3V电源均接2个电容进行电源稳压滤波,为系统提供稳定的电源。

2.时钟电路

单片机各部件能有条不紊地自动工作,实际上是在其系统时钟作用下,由控制器指挥芯片内各个部件自动协调工作,使内部逻辑硬件产生各种操作所需的脉冲信号而实现的。

MSP430F149单片机的基础时钟,主要是由支持32768Hz低频晶体振荡器LFXT1、最高可达8MHz高频晶体振荡器LFXT2及内部数字控制振荡器DCO 组成[12]。基本时钟模块的设计同时满足了低成本和低功耗的要求,当CPU和高频时钟都关闭的时候,电源仅保持基本时钟的运行,就可以在外部中断到达或者定时到达时唤醒系统。当外部时钟源出现故障时,内部DCO可以在6us内快速

打开并稳定运行,保证整个系统的稳定性。

这种多时钟源的设计解决了系统的快速处理数据的要求和低功耗要求的矛盾,通过设计多个时钟源或为时钟设计各种不同的工作模式,才能解决外部设备实时应用的时钟要求。

MSP430系列单片机提供三个时钟信号以供给片内各部分电路使用,这三个时钟源分别是:辅助时钟信号(ACLK),来自32.768kHz晶振或者另一个外接高频晶振,一般用于低速外设;主时钟信号(MCLK),CPU正常运行时使用的主时钟,一般由8MHz外接晶振提供;子系统时钟(SMCLK),主要用于高速外围模块。时钟电路如图3-3所示。

图3-3 时钟电路

本系统中采用的是8M的晶体,该晶体两端分别连接到MSP430F149单片机的XT2IN、XT2OUT引脚,并且连接两个15pF的电容,使单片机能够正常工作。

3.复位电路

在包含了控制器的电路系统中,都应有对应的复位电路,这样能使系统上电后很好地复位,使其处于稳定的运行状态。单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性,因此复位电路的设计十分重要。本课题设计的复位电路是通过手动控制按键,以防止程序跑飞或出错时让程序从头开始执行,达到纠正运行状态的目的。复位电路如图3-4所示。

图3-4 复位电路

由于MSP430F149单片机是低电平复位,在复位键未按下时,由于电容对直

流电的阻隔作用,复位端口RST为高电平,因此单片机不执行复位功能;当按下复位按键K12时,回路3.3V、R9、K12、CP4、DGND导通,电容放电,此时单片机复位端口为低电平,进入复位控制状态,当释放按键K12时,由于电容的充电作用,复位端口的电位由低电平缓慢的上升到高电平,在未达到单片机规定的阈值之前,单片机均认为是低电平,保持复位状态,当电容充电完成后,复位端口为高电平,复位过程结束。

4.JTAG调试接口

JTAG是一种所谓的边界扫描技术标准,它是为在线测试的需要而发展起来的针对芯片及线路板测试的接口技术。它利用串行移位输入及输出的方式对芯片的输入端加载特定的代码序列,并获得输出端给定的响应序列。电脑可通过JTAG 接口直接访问单片机内部的ROM,RAM及特殊寄存器资源,并可直接对内部FLASH进行在线编程,这样省却了使用编程器和仿真机,降低了开发成本并缩短开发周期。MSP430系列单片机采用14针的JTAG调试接口。JTAG调试接口电路原理图如图3-5所示。

图3-5 JTAG调试电路

MSP430F149内部集成了JTAG模块,用户可以经过JTAG接口实现CPU程序仿真、在线调试功能。JTAG接口的TDO,TDI,TMS,TCK,分别与MSP430F149单片机的54引脚TDO/TDI、55引脚TDI/TCLK、56引脚TMS、57引脚TCK相连。整个调试过程,外部只需要一台能实现JTAG接口控制功能的主机即可。

1.3键盘数码管显示

1.3.1器件选型

在实际的单片机开发过程中,键盘和显示接口是必不可少的部分[13]。以前比较常用的是利用可编程并行I/O接口芯片8255,可编程RAM/IO芯片8155实现键盘和显示部分的扩展,但利用上述芯片时,都必须增加一定的硬件,如8155

必须扩充段驱动器和位驱动器,并且键盘都是动态扫描,扫描占用了CPU的处理时间,从而影响实时性。而本系统采用的串行接口8位LED数码管及64键键盘智能控制芯片HD7279A。HD7279A目前广泛应用于仪器仪表,工业控制器,条形显示器,控制面板等,具有如下特点。

1.串行接口,无需外围元件可直接驱动LED。

2.数据传送采用串行方式,大大减少了占用CPU的IO口数。

3.内部含有译码器,可直接接受BCD码或16进制码,并同时具有两种译码方式。

3.3.2 电路设计

本系统中HD7279A电路原理图如图3-6所示,HD7279A是可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵。本系统设计中将HD7279A连接成3×4键盘,4个数码管显示,用于设计中的温度传感器的显示、外扩存储器读写显示、功能键的选择等。

(a) HD7279A外围电路

(b) 数码管显示

(c) 键盘接口电路

图3-6 键盘数码管显示电路

本课题中HD7279A芯片有四个引脚与单片机IO口相连,HD7279A的片选输入端/CS,时钟输入端CLK,数据输入端DATA,按键有效输出端/KEY分别连接MSP430F149单片机的IO端口中的P3.0,P3.1,P3.2,P3.3。

1.4温度传感器模块

1.4.1器件选型

温度传感器的类型,按照不同的分类标准有多种不同的分类。按照一次测试得到的温度信息的多少分为点式温度传感器、分布式温度传感器和面温度传感器;按照输出信号的类型可分为模拟式温度传感器和数字式传感器;按照测试原理分为热电偶温度传感器、红外传感器、热电阻传感器等等[14]。最先应用的传感器很多都是模拟方式的,诸如目前用的最多的PT电阻构成的温度传感器,以及热电偶传感器,都是将温度的变化转换为电阻的变化或者电压的变化,通过后续的调理电路,最终实现温度的检测。这种测试的方法是最直接的测试方法,而且可以根据不同用户的要求构建不同的符合相应指标要求的系统,灵活性强。但由于这种传感器输出信号小,并且为模拟信号,用户需要自己设计后续的电路,所以开发相对复杂,而且容易受到电干扰等的影响造成信号畸变。基于这个问题的基础上,很多大公司开始开发了将调理电路集成到芯片内部,简化用户开发流程的芯片,这些芯片具有数字的接口,可以满足很多场合下用户的要求。采用数字接口,对于用户来说只需要通过控制读取的时序,即可实现温度的测量,利用数

字信号的传播的可靠性,削弱了外界电磁等干扰对于温度信号的干扰。

本系统温度传感器接口接口芯片采用2线串行温度传感器LM75,具有I2C 总线接口。它把被测温度转换成电压信号,再经过模数转换器转换为数字量,并保存在温度寄存器中,用户通过I2C接口即可读出温度数据,又可对其内部的T SET和T HYST设置值寄存器进行设置。目前广泛应用于热系统管理,热保护,测试设备,计算机和办公设备。

3.4.2 电路设计

单片机与LM75的通信是通过与行业标准协议兼容的2线I2C总线完成的。单片机可以读取它的所有寄存器,能随时读出当前温度值。用户可通过编程对INT/CMPTR输出模式和输出极性进行控制,并配置器件,因此LM75可以方便适用于查询或中断驱动的系统。LM75上电时为比较器模式,缺省设置值为80℃,滞后5℃,缺省设置可以作为独立恒温器工作,通过2线总线可以发送关断命令,使器件进入低功耗待机模式。本课题中的温度传感器模块的电路原理图如图3-7所示。

图3-7 温度传感器模块

LM75芯片有两个引脚与单片机IO口相连,LM75的双向串行数据引脚SDA、串行数据时钟输入引脚SCL分别连接MSP430F149单片机的P4.0、P4.1构成I2C总线结构。A2、A1接地,A0接3.3V,电源输入VDD接3.3V电压,VDD与DGND之间连接0.1uF的电容起滤波作用。中断或比较输出引脚INT/CMPTR悬空。

1.5实时时钟电路设计

1.5.1器件选型

系统外接实时时钟芯片,不仅能为系统提供一个准确可靠的时钟,而且节省CPU的资源,用备用电池供电能保证在CPU掉电时也不影响系统的正常运行。

实时时钟的类型根据数据传送所分的两种方式如下所示。

1.并行接口方式的,如DSl2887,DSl387。并行接口方式数据传送快,但管脚多,与CPU的接口连线多,而且体积大。

2.串行接口方式的,如DSl302,Philip公司的PCF8563等。这种芯片通常为8脚DIP封装,占用空间小,连线简单,一般只需占用CPU的2-3条I/O口线。

本系统中采用体积小、接口简单的串行实时时钟/日历芯片PCF8563。该芯片是低功耗的CMOS实时时钟/日历芯片,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过I2C总线接口串行传递。最大总线速度为400Kbit/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。

PCF8563有16个8位寄存器,一个可自动增量的地址寄存器,一个内置32.768 KHz的振荡器(带有一个内部集成的电容),一个分频器(用于给实时时钟RTC提供源时钟),一个可编程时钟输出,一个定时器,一个报警器,一个掉电检测器和一个400KHz I2C总线接口[15]。

所有16个寄存器设计成可寻址的8位并行寄存器,但不是所有位都有用。前两个寄存器(内存地址00H,01H)用于控制寄存器和状态寄存器,内存地址

02H-08H用于时钟计数器(年、月、日、小时、分钟计数器),地址09H控制CLKOUT 管脚的输出频率,地址0AH和0BH分别用于定时器控制寄存器和定时器寄存器。其中,分钟、小时、日、月、年编码格式为BCD,星期不以BCD格式编码。当一个RTC寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下,可以禁止对时钟/日历芯片的错读。

3.5.2 电路设计

单片机与PCF8563的通信也是通过与行业标准协议兼容的2线I2C总线完成。单片机可以读取时钟芯片内的所有寄存器中的数据,能随时读出当前日期、时间。本系统中实时时钟模块硬件电路设计如图3-8所示。

图3-8 实时时钟模块电路

PCF8563芯片两个引脚与单片机IO口相连,PCF8563的双向串行数据引脚SDA、串行数据时钟输入引脚SCL分别通过上拉电阻连接MSP430F149单片机的P4.0、P4.1构成I2C总线结构。振荡器输入引脚OSCI、振荡器输出引脚OSCO之间连接32.768Hz的晶振,能够保证平均偏差为5分钟/年。时钟输出(开漏)引脚CLKOUT悬空,VDD接带3.3V充电电池的电源电路,以备断电时时钟芯片的正常工作。

1.6存储器电路设计

1.6.1器件选型

对于一个嵌入式系统,如单片机、ARM芯片、DSP芯片等在芯片出厂时不可能让片内存储器的大小满足所有用户的要求。如果将片内存储器做太大,必然造成芯片成本的提高,而且太大的片内存储器对很多用户来说是浪费。此外,有些系统设计要求将程序写入外接存储器中,以防止掉电时数据丢失。所以本课题实验系统中设计了存储器模块。常用的两种存储器如下所示。

1.并行存储器:存储容量大,数据传送速度快,但芯片体积大、管脚多,需要占用CPU大量的I/O脚,外部扩展复杂。

2.串行存储器:体积小,与CPU接口简单,一般只要占用CPU的2-3根I/O线。

本课题设计中选用串行存储器AT24C128,串行EEPROM存储器典型的有美国ATMEL公司的AT24Cxx系列及AT93Cxx系列,其他公司如Microchip,国家半导体公司等都有这些系列的EEPROM产品。现在AT24CXX系列用得较多,有AT24C01/02/04/08/16/32/64/128/256等。

AT24C128芯片是高性能的可电擦除只读存储器,该芯片采用了ATMEL先进的非易失性CMOS技术。AT24C128是2线串行EEPROM存储器,支持I2C 总线数据传输协议。它是内含16384×8位存储空间,具有工作电压宽(2.5-5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。

3.6.2 电路设计

单片机与非易失性24C128的通信也是通过与行业标准协议兼容的2线I2C总线完成。微控制器可以通过I2C总线协议向存储器中写入数据,并且能够从存储器中读出数据。本系统中存储器模块硬件电路设计如图3-9所示。

图3-9 存储器模块电路图

24C128芯片两个引脚与单片机IO口相连,24C128的双向串行数据引脚SDA、串行数据时钟输入引脚SCL分别连接MSP430F149单片机的P4.0、P4.1构成I2C总线结构;允许地址输入引脚A0、A1连接地;写保护引脚WP接地,表明允许对器件进行读/写操作,若WP接Vcc时,所有内存变为写保护(只能读)。

1.7液晶显示模块电路设计

以前经常使用的LED由于体积大和功耗方面的原因已经不能满足人们特定的需要,而越来越多地使用液晶LCD。液晶有很多种类,常见的有段式液晶、字符式液晶、图形式液晶等。根据本课题的显示要求,本课题采用的是RT12864M 汉字图形点阵液晶显示模块。该模块可显示汉字及图形,内置8192个中文汉字(16×16点阵)、128个字符(8×16点阵)及64×256点阵显示RAM(GDRAM)。

该模块可以与CPU直接接口,提供了8位或4位并行/3位串行多种接口方式,显示颜色为黄绿色,显示角度为6:00钟直视,LCD类型为STN,配置LED 背光,具有多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。本课题中液晶模块接口电路原理图如图3-10所示

图3-10 液晶模块接口电路

如图3-8所示整个液晶模块工作在串行模式下,RT12864M的片选引脚CS、串行的数据口引脚SDA、串行的同步时钟引脚SCK分别与MSP430F149单片机的IO口P5.4、P5.5、5.6相连,液晶模块的3引脚作为LCD驱动电压输入端与Vcc经过滑动变阻器的抽头端相连,可以调节引脚的输入电压,使液晶模块正常显示。

1.8D/A转换模块电路设计

由于大于1Msps同样速度的串行DAC比并行DAC价格便宜很多,从性能及经济性来考虑,本设计中D/A使用的是TI公司的TLC5615芯片。

TLC5615是带有缓冲基准输入(高阻抗)的10位电压输出数字-模拟转换器(DAC)。TLC5615具有基准电压两倍的输出电压范围,且DAC是单调变化的。器件使用简单,5V电源工作,器件具有上电复位功能以确保可重复启动。

TLC5615的数字控制通过3线(three-wire)串行总线,它是CMOS兼容的且易于和工业标准微处理器和微控制器接口,适用于数字失调与增益调整以及工业控制场合。器件接收16位数据字以产生模拟输出。数字输入端的特点包括带有斯密脱触发器,它具有高噪声抑制能力。数字通信协议包括SPI、QSPI、Microwire 标准。

TLC5615特点如下所示。

1.在8引脚封装内10位CMOS电压输出DAC。

2.5V单电源工作。

3.3线串行接口。

4.高阻抗基准输入。

5.电压输出范围——基准输入电压2倍。

6.内部上拉复位。

7.低功耗——1.75Mw Max。

8.1.21MHz的更新率。

9.在温度范围内保持单调。

本课题中D/A转换模块硬件电路设计如图3-11所示。

图3-11 D/A转换模块

D/A模块中TLC5615芯片有四个引脚与单片机IO口相连,TLC5615的串行数据输入端DIN,串行时钟输入端SCLK,片选输入端/CS,用于菊花链的串行数据输出端DOUT分别连接MSP430F149单片机的IO端口中的P6.4、P6.5、P6.6、P6.7;正电源VDD引脚与模拟地AGND引脚通过0.1uF的旁路电容,把输入电源中的高频噪声滤除;基准输入REFIN引脚连接到滑动变阻器,通过调节滑动头,改变了W3的阻值,从而改变了参考电压V REFIN的值,使转换后的输出电压改变;DAC 模拟电压输出OUT引脚在电路板上留有插针,方便外接电路。

1.9A/D转换模块电路设计

在MSP430的实时控制和智能仪表等应用系统中,控制或测量对象的有关变量,往往是一些连续变化的模拟量,如温度、压力、流量、速度等物理量,首先利用传感器把各种物理量测量出来,转换为电信号,经过模数转换(ADC)变成数字量,这样才能被MSP430处理和控制。

A/D转换模块分为外接A/D转换芯片和单片机内嵌的模数转换模块,由于MSP430F149单片机有内嵌12位A/D转换器ADC12,而且ADC12具有快速、通用的特点,为了节省资源,本课题采用MSP430F149单片机内嵌的12位A/D 转换器ADC12。

ADC12采用逐次逼近原理,12位分辨率,最大采样速率为200ksps,内置采样保持电路,具有8路模拟输入通道,每个通道可以独立选择内外正负参考电压源。片内有16组转换存储寄存器,其中一个16位寄存器存放转换结果,一个8位寄存器存放采样通道号、参考电压选择及序列标志。用户可以预先设置好通道顺序及参数,并用序列标志指明序列的结束位置,使得A/D可以进行多次转换而不需要软件的干预。

本课题A/D转换模块电路设计为通过转换器ADC12采集外界输入模拟信号,并将其转换为数字信号输出。该模块电路原理图如图3-12所示。

图3-12 A/D转换模块电路

A/D转换模块只使用了ADC12模块8路模拟输入通道的4路,硬件电路模拟通道AD0、AD1、AD2、AD3分别连接MSP430F149单片机的P6.0 、P6.1、P6.2、P6.3,通道0通过跳线可以选择外部输入模拟信号或电路板上的滑动变阻器的电压。

1.10串行通信模块电路设计

随着计算机与数据终端的普及,数据通信在现代工业控制领域中得到广泛应用,在生产过程中,利用串行通信,人们可以远离现场对计算机操作,能够方便地对现场进行数据的采集、处理、存储、控制等工作。

PC机上均带有标准的RS-232接口。RS-232是美国电子工业协会(EIA)于1969年正式公布的串行总线标准,也是目前最常用的串行接口标准。该标准适用于数据通信设备(DCE)和数据终端设备(DTE) 间的串行二进制通信,RS232提供了单片机与单片机、单片机与PC机之间串行数据通信的标准接口。

由于RS232规定的逻辑电平与单片机的逻辑电平是不一致的,因此在应用中必须把微处理器的信号电平(TTL电平)转换为RS232电平,以便与RS-232标准的电平匹配。本系统中串口通信模块使用的是SIPEX公司生产的RS-232收发器

SP3223。

SP3223支持EIA/TIA-232和ITU-TV.28/V.24通信协议,适用于便携式设备使用。SP3223内有一个高效电荷泵,可在单+3.0V-+5.5V电源下产生+/-5V的RS-232电平,SP3223是一个双驱动器/双接收器芯片。满负载时,SP3223器件可工作于235kbps的数据传输率。3.3V时仅需0.1uF的电容。

SP3223的主要特点如下所示。

1.在+3.5V~+5.5V单电源下符合EIA/TIA-232-F标准。

2.可十分方便地在EIA/TIA-232-F标准下使用而且在EIA/TIA-562标准

下使用时其电源可降至+2.7V。

3.在睡眠状态下,当关断电流达到1A时,自动上线电路会被唤醒。

4.有负载时的最小数据传输率为120kB/s。

5.尽管电源范围波动,由于电荷泵可调,RS-232输出仍较稳定。

本系统中串口通信模块电路原理图如图3-13所示。

图3-13 串口通信模块电路图

MSP430F149单片机的串行通信引脚UATXD0、UARXD0、UATXD1、UARXD1分别通过跳线连接到SP3223的T1IN、R1OUT、T2IN、R2OUT。SP3223通过串口线连接到PC机的两个串口,实现单片机与PC机之间的串行通信。

第二章软件设计

2.1液晶显示模块软件设计

液晶显示时每行可显示8个中文字符,但如果所要显示的字符少于8个中文字符或是要显示ASCII码字符时,应该在显示之前首先清屏(清除显示RAM)。然后输入显示字符地址,也就是告诉模块在哪里显示字符,即设定DDRAM位置到位地址计数器AC。

本课题设计中,液晶显示模块用来显示实时时钟,只要显示字符和汉字,字符代码为02H-7FH,汉字显示坐标如表4-1所示。

表4-1 汉字显示坐标

行号X坐标

Line1 Line2 Line3 Line4 80H

90H

88H

98H

81H

91H

89H

99H

82H

92H

8AH

9AH

83H

93H

8BH

9BH

84H

94H

8CH

9CH

85H

95H

8DH

9DH

86H

96H

8EH

9EH

87H

97H

8FH

9FH

该模块可以与CPU直接接口,提供了8位或4位并行/3位串行多种接口方式,本系统该模块软件设计采用3位串行连接方式。串行数据传送分三个字节完成:第一字节为串口控制,格式11111ABC(A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD;B为数据类型选择:H表示数据是显示数据,L表示数据是控制指令;C固定为0);第二字节为(并行)8位数据的高4位格式DDDD0000;第三字节(并行)8位数据的低4位格式0000DDDD。本课题该模块软件设计流程图如图4-1所示。

图4-1 液晶显示模块软件设计流程图

本系统液晶显示模块设计中,单片机向LCD发送指令和数据的函数为LCD_W_Data( uchar cmd,uchar *dat );其中cmd为显示在第几行的指令,*dat为指向数组首地址的指针。单片机向LCD发送字符函数display(uchar dat);其中dat为要在液晶上显示的字符。

2.2基于I2C协议的程序实现

4.2.1I2C协议

I2C总线是双线双向串行总线,该接口采用综合协议,可确保数据的可靠发送和接收。时钟线SCL为主器件的输出、从器件的输入,数据线SDA可以是主器件和从器件的输入和输出。SDA和SCL都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压。当总线空闲时,这两条线路都是高电平。连接到总线的器件输出必须是漏极开路或集电极开路才能执行线与的功能。I2C总线上数据的传输速率在标准模式下可达100kbit/s,在快速模式下可达400kbit/s,在高速模式下可达3.4Mbit/s。

在I2C接口协议中, 每个器件都有一个地址。当某个主器件要启动数据传输时,首先发送要与之进行通信的器件地址。所有的器件均会“监听",看是否是自己的地址。在该地址中,bit0指定主器件是要自从器件读数据还是向从器件写

相关主题
相关文档
最新文档