附录1 MSP430F169单片机简介.doc_第1页
附录1 MSP430F169单片机简介.doc_第2页
附录1 MSP430F169单片机简介.doc_第3页
附录1 MSP430F169单片机简介.doc_第4页
附录1 MSP430F169单片机简介.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

附录1 MSP430F169单片机简介1.1 MSP430F169概述MSP430F169是TI公司进入中国市场的MSP430F系列单片机中功能最强的芯片。MSP430F169单片机为64引脚封装,符号及引脚位置图如图1-1所示。图1-1 符号及引脚位置图1.2 MSP430F169片内结构MSP430F169片内结构框图如图1-2所示。16位CPU通过总线连接到存储器和外围模块。只读存储器60KB,随机存储器4KB。图1-2 MSP430F169芯片的结构框图外围模块(片内外设):经过MAB、MDB、中断服务及请求线与CPU相连。时钟模块可外接两个晶振,低速选用32768Hz晶振,高速晶振最高可选到8MHz。在使用高速时钟和端口时要根据需要将其初始化。看门狗、定时器A、比较器A等与MSPF413单片机使用方法相同,但无液晶驱动器。MSP430F169片内增加了8路快速12 位ADC模数转换模块,双路12 位DAC数模转换模块,两个通用连续同步/异步通信接口(USART)模块,I2C模块,DMA数据传送模块和硬件乘法器模块等。1.3 ADC模块的使用MSP430F169单片机内部集成了8通道12位的A/D转换器。通过读取A/D转换器寄存器得到转换结果。A/D转换的主要特点:采样速度快,最高可达200ksps;12位的转换精度,1位非线性微分误差,1位非线性积分误差。转换器使用:进行A/D转换通常需要设置的内容有:转换通道、采样保持、参考电压、转换时钟、转换模式、结果缓存。例1:8路A/D转换器的使用本例中ADC12使用片内2.5V稳压源作为参考电压,执行A0至A7八个通道的A/D转换。每次转换结果分别存于ADC12MEM0至 ADC12MEM7存储寄存器中。读A/D转换结果时,将转换结果存于变量中,在下面的程序中随意使用。ADC12初始化程序清单如下: P6SEL = 0xff; / 使能A/D输入通道 ADC12CTL0 = ADC12ON+MSC+SHT0_8+REFON+REF2_5V; / 接通ADC12 ADC12CTL1 = SHP+CONSEQ_3; / 使用采样定时器 ADC12MCTL0 = INCH_0+SREF_1; / 片内参考源 ADC12MCTL1 = INCH_1+SREF_1; / 片内参考源 ADC12MCTL7 = INCH_7+SREF_1+EOS; / 片内参考源 ADC12CTL0 |= ENC; / 使能转换 ADC12CTL0 |= ADC12SC; / 启动转换读出A/D转换数据程序清单:NUM_AD0 = ADC12MEM0; NUM_AD1 = ADC12MEM1; NUM_AD7 = ADC12MEM7;1.4 DAC模块的使用目前,只有MSP430F15/16X系列单片机具有DAC(数模转换)模块,可以将MSP430运算处理的数字量转换为模拟量。MSP430F169的 DAC模块是12位电压输出的数模转换模块(DAC12)。DAC模块的主要性能指标:(1)分辨率:这项指标反映了数字量在最低位上变化1位时输出模拟量的最小变化。一般用相对值来表示。对于8位的DAC模块来说,分辨率为最大输出幅度的0.39%,即1/256。而对于12位DAC模块来说,分辨率可以达到0.024%,即1/4096。(2)偏移误差:它是指输入数字量为0时,输出模拟量对0的偏移值。(3)线性度:是指DAC模块的实际转移特性与理想直线之间的最大偏差。(4)转换速度:即每秒钟可以转换的次数,其倒数为转换时间。(5)参考源电压源:是影响模拟量输出的基准值。MSP430F169单片机中的D/A功能如下所述:(1)MSP430F169的DAC12模块包含两个DAC转换通道:DAC12_0和DAC12_1。这两个通道在操作上完全平等。(2)DAC12的主要特征:12位分辨率,可选用内部或外部参考电压。输入二进制数。若选用内部2.5V参考源电压源,当输入DAC12的数字量从0x0到0xFFF变化时,对应的输出电压量也就从0到2.5V变化。输入数字量与输出电压关系如图1-3所示.图1-3 DAC12输出量示意图例2 MSP430F169的DAC12演示程序,清单如下:/*/ D169 演示程序 - 在P6.7口DAC12.1 输出2V 电压 / 功能: 使用DAC12.1 和2.5V ADC12REF 参考电压源,在P6.7口输出2V电压 。输出精度由ADC12REF决定。/*#include void main(void) WDTCTL = WDTPW + WDTHOLD; / 关看门狗 ADC12CTL0 = REF2_5V + REFON; / 内部 2.5V 参考源接通 DAC12_1CTL = DAC12IR + DAC12AMP_5 + DAC12ENC; / 内部参考源为1 DAC12_1DAT = 0x0CCC; / 2V _BIS_SR(LPM4_bits); / 进入 LPM0 附录2 定时器A的使用MSP430F413芯片中含有TimerA3模块,如图4-2所示。其常用的外引线有三条:TACLK、TA1和TA2。TACLK:定时器_A输入时钟(48脚),与P1.6和ACLK输出共用同一引脚。TA1:定时器_A的第一通道输入、输出引脚(51脚)。捕获方式:CCI1A输入;比较方式:OUT1输出。TA2:定时器_A的第二通道输入、输出引脚(45脚)。捕获方式:CCI2A输入;比较方式:OUT2输出。1. 定时器A功能及结构定时器A基本结构是一个十六位计数器,由时钟信号驱动工作,结构框图如图2-1所示。图2-1 定时器A结构图定时器A具有多种功能,其特性如下:(1)输入时钟可以有三种选择,可以是慢时钟(ACLK)、快时钟(SMCLK与单片机主时钟同频)和外部时钟。 (2)能产生的定时中断、定时脉冲和 PWM(脉宽调制)信号,没有软件带来的误差。 (3)不仅能捕获外部事件发生的时间,还可选择触发脉冲沿(由上升沿或下降沿触发)。定时器A功能模块主要包括:(1)计数器部分:输入的时钟源具有4种选择,所选定的时钟源又可以1、2、4或8分频作为计数频率,Timer_A可以通过选择4种工作模式灵活的完成定时/计数功能。 (2)捕获/比较器:用于捕获事件发生的时间或产生时间间隔,捕获比较功能的引入主要是为了提高I/O 端口处理事务的能力和速度。不同的MSP430单片机,Timer_A模块中所含有的捕获/比较器的数量不一样,每个捕获/比较器的结构完全相同,输入和输出都取决于各自所带控制寄存器的控制字,捕获/比较器相互之间完全独立工作。 (3)输出单元:具有可选的8种输出模式,用于产生用户需要的输出信号,支持PWM输出。2定时器工作模式 (1)停止模式:停止模式用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。例如,停止模式前,Timer_A工作于增/减计数模式并且处于下降计数方向,停止模式后,Timer_仍然工作于增/减计数模式,从暂停前的状态开始继续沿着下降方向开始计数。如果不需这样,则可通过TACTL中的CLR控制位来清除定时器的方向记忆特性。 (2)增计数模式:捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。增计数模式的计数过程如图2-2所示。通过改变CCR0值,可重置计数周期。图2-2增计数模式示意图(3)连续计数模式:在需要65536个时钟周期的定时应用场合常用连续计数模式。定时器从当前值计数到单增到0FFFFH后,又从0开始重新计数如图2-3所示。图2-3 连续计数模式(4)增/减计数模式 需要对称波形的情况经常可以使用增/减计数模式,该模式下,定时器先增计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0计数器数值的2倍。计数器的计数过程如图2-4所示。 图2-4增/减计数模式3输出单元定时器A的输出单元输出模式有8种,增计数模式下输出模式如图2-5所示。各模式说明如下:(1)输出模式0输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。(2)输出模式1置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。(3)输出模式2PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR的值等于CCR0时复位。 (4)输出模式3PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR的值等于CCR0时复位。 (5)输出模式4翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。(6)输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择另一种输出模式。 (7)输出模式6PWM翻转/置位模式:输出电平在TAR的值等于CCRx时翻转,当TAR值等于CCR0时置位。(8)输出模式7PWM复位/置位模式:输出电平在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。 图2-5输出模式示意图选用增计数模式、输出模式7产生的PWM输出波形如图2-6所示。图2-6 输出模式7产生PWM输出波形4输出单元应用举例例1Timer_A用增模式在P1.2/2.0产生两路PWM输出。CCR0计数值为512,通过设定CCR1和CCR2值,定义两路输出脉宽。使用32kHz ACLK作为TACLK,定时器周期为15.625ms,P1.2占空比为75%、P2.0占空比为25%。 ACLK = TACLK = LFXT1 = 32768Hz, MCLK = SMCLK = DCO = 32xACLK = 1.048576Mhz。外部晶振接于XIN和XOUT。#include void main(void) WDTCTL = WDTPW +WDTHOLD; / 关WDT TACTL = TASSEL0 + TACLR; / ACLK, 清零Tar CCR0 = 512; / PWM 周期 CCTL1 = OUTMOD_7; / CCR1 reset/set模式 CCR1 = 384; / CCR1 PWM 任务周期 CCTL2 = OUTMOD_7; / CCR2 reset/set模式 CCR2 = 128; / CCR2 PWM 任务周期 P1DIR |= 0x04; / P1.2 输出 P1SEL |= 0x04; / P1.2 TA1模式 P2DIR |= 0x01; / P2.0 输出 P2SEL |= 0x01; / P2.0 TA2模式 TACTL |= MC0; / 增模式启动Timer_A for (;) _BIS_SR(LPM3_bits); / 进入LPM3省电模式 _NOP(); / C-spy使用 附录3 MSP430F169与点阵显示器LCM12864接口3.1 LCM12864液晶显示模块简介LCM12864液晶显示模块是由128列64行液晶显示点阵和其控制电路组成,整个电路板外形如图2-1所示。该显示模块不仅可以显示数字,还可以显示汉字和图形。模块电路板下端有20个接线引脚,其中VDD与VSS引脚是LCM12864液晶模块电源与地接入端,VOUT是LCM12864液晶模块自生成负电压输出端。VO 需要一个外部的0V-10V 负压输入,可接入电位器调整液晶灰度。在背光电路中需要串接5 欧姆电阻,直接将背光接入电源可能会造成损坏。其余引脚由单片机控制。图3-1 LCM12864液晶显示模块外型图LCM12864液晶显示模块的引脚定义如表3-1所示。表3-1 LCM12864引脚说明标号名称参数说明1VSSGND 0V模块电源地2VDD+5V模块电源 +5V DC3VO0V -10V外部液晶偏置电压输入端4D/IH/LH:数据;L:指令5R/WH/LH:MPU LCM读数据;L:MPU LCM写数据6EH/LLCM使能7DB0H/L数据线 0(H表示高电平,L表示低电平8DB1H/L数据线 19DB2H/L数据线 210DB3H/L数据线 311DB4H/L数据线 412DB5H/L数据线 513DB6H/L数据线 614DB7H/L数据线 715CS1H/L左半屏使能(低电平有效)16CS2H/L右半屏使能(低电平有效)17/RSTH/LLCM复位(低电平有效)18VOUTGND 0V模块电源地19SLA+5VLED背光电源+5V DC20SLKGND 0VLED背光电源 地3.2 单片机与LCM12864接口电路设计单片机与LCM12864接口电路如图3-2所示。图3-2单片机与LCM12864接口电路3.3 单片机与LCM12864接口程序设计具体显示驱动程序清单如下:/* 文件名称:main.c* 文件说明:显示Hello*/#include #define TOP 0 / 竖直方向零点#define BOTTOM 64 / 竖直方向坐标最大值#define LEFT 0 / 水平方向坐标最小值#define RIGHT 128 / 水平方向坐标最大值#define EN_WIDTH 40 / Hello 字符串的长度#define CH_WIDTH 96 / 中文字符串的长度#define OP_CHINESE 1 / 选择显示中文字符#define OP_ENGLISH 2 / 选择显示英文字符unsigned char showData=/16*8点阵的“Hello” 0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01, 0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,/H (0) 0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22, 0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,/e (1) 0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F, 0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/l (2) 0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F, 0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/l (3) 0x00,0x00,0x00,0x1F,0x80,0x20,0x80,0x20, 0x80,0x20,0x80,0x20,0x00,0x1F,0x00,0x00,/o (4) ;unsigned char px, / 显示字符串的X位置 py, / 显示字符串的Y位置 width; / 字符串的宽度/write_Command(),用于写命令到LCD,CS(片选)在此函数外设置void write_Command(char cmd) P3OUT &= 0xfb; /禁止 EN P5DIR = 0xff; P3OUT &= 0xfc; /rs=0 ,r/w=0 P5OUT = cmd; P3OUT |= 0x04; /使能 P3OUT &= 0xfb; /禁止/ 设置显示的位置,含片选void move_To(char x,char y) unsigned char tmp; tmp=(y&0x7f); if(tmp63) /在 chip2 P3OUT &= 0xF7; /cs1=0 P3OUT |= 0x40; /cs2=1 write_Command(0xb8 + x); /设置 x write_Command(0x40 + tmp-64); /设置 y / write datavoid write_Data(char content) P5DIR = 0x00; / 置位输入模式 P3OUT |= 0x02; / r/w=1 读状态 P3OUT |= 0x04; / chip 使能 while(P5IN & 0x80)=0x80);/检测LCD是否忙 P3OUT &= 0xfb; /disable EN P5DIR = 0xff; P3OUT &= 0xfc; /rs=0 ,r/w=0 P3OUT |= 0x01; /rs=1 P5OUT = content; P3OUT |= 0x04; /p2.2=1 使能 P3OUT &= 0xfb; /p2.2=0 禁止/ 在指定的位置显示字符串Hello ,x是行坐标,y是列坐标,0=x=RIGHT - 字符串长度/ 0=y=BOTTOM-字符串高度void drawStr(unsigned char x,unsigned char y) unsigned char tmpv; for(tmpv=y;tmpvy+width;tmpv+) move_To(x/8,tmpv); /移动到指定页 write_Data(showData2*(tmpv-y); /填写数据 move_To(x/8+1,tmpv); /由于显示的字符是16*N点阵,占用两页,现在移动到下页 write_Data(showData2*(tmpv-y)+1); /填写数据 / 清除chip1或者chip2上的某一区域,选择的区域只是在/ 同一chip上,x是页地址,Y是列地址,h是多少行,w是指多少/ 列.区域可以是两个片组成的区域的任何位置void clear_Rect(unsigned char x,unsigned char y,unsigned char h,unsigned char w) unsigned char tmpv,tmp; for(tmpv=x;tmpv(x+h);tmpv+) for(tmp=y;tmp(y+w);tmp+) move_To(tmpv,tmp)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论