MSP430F169单片机系统构成_第1页
MSP430F169单片机系统构成_第2页
MSP430F169单片机系统构成_第3页
MSP430F169单片机系统构成_第4页
MSP430F169单片机系统构成_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

第1章MSP430F169单片机系统构成1.1MSP430F169概述MSP430F169是TI公司进入中国市场的MSP430F系列单片机中功能最强的芯片。MSP430F169单片机为64引脚封装,符号及引脚位置图如图1-1所示。图1-1符号及引脚位置图MSP430F169片内结构框图如图1-2所示。16位CPU通过总线连接到存储器和外围模块。只读存储器60KB,随机存储器2KB。XI1NXOUT/TCLK 口%仁口瞄^CC RST7NMI P1P2P3P4P5 P8XT2IN]|—XT2OUTI—Oscillator

System

Glock

时钟振

荡器-►A.CLK■>SMCLKSOkBFlash2kBRAM只.读 随机存储器 存储器12-BrtADC3Channels模数转换器12-5hDA.C2Channels数模转换器I/OFort1Z2带中断I口蒲口ITOPort3/4ll/OPort5mXT2IN]|—XT2OUTI—Oscillator

System

Glock

时钟振

荡器-►A.CLK■>SMCLKSOkBFlash2kBRAM只.读 随机存储器 存储器12-BrtADC3Channels模数转换器12-5hDA.C2Channels数模转换器I/OFort1Z2带中断I口蒲口ITOPort3/4ll/OPort5m端口]h端口口m端口I/OPort&MC.K16Reg.CPUIMAB.4BitMCEzvZ\ rl "ZXZXComparalorUSARTO□ARTModeSPIMode|2rMod®硬件乘法器IVFYMPYS

MAC.MACSSk8BitBxISBit

1Sk8Bit

10x16BitUARTModeSPIModeWat&hdc^Timer看门狗定时器T]mer_B7定时器.B_7Timer_A3定时器A_3Controller3Channels直接数佳控制器图1-2MSP430F169芯片的结构框图外围模块(片内外设):经过MAB、MDB、中断服务及请求线与CPU相连。时钟模块可外接两个晶振,低速选用32768Hz晶振,高速晶振最高可选到8MHz。在使用高速时钟和端口时要根据需要将其初始化。看门狗、定时器A、比较器A等与MSPF413单片机使用方法相同,但无液品驱动器。MSP430F169片内增加了8路快速12位ADC模数转换模块,2路12位DAC数模转换模块,两个通用连续同步/异步通信接口(USART)模块,I2C模块,DMA数据传送模块和硬件乘法器模块等。1.2LCM12864液晶显示模块简介LCM12864液晶显示模块是由128列64行液晶显示点阵和其控制电路组成,整个电路板外形如图1-3所示。该显示模块不仅可以显示数字,还可以显示汉字和图形。模块电路板下端有20个接线引脚,其中VDD与VSS引脚是LCM12864液晶模块电源与地接入端,VOUT是LCM12864液晶模块自生成负电压输出端。VO需要一个外部的0V~-10V负压输入,可接入电位器调整液晶灰度。在背光电路中需要串接5欧姆电阻,直接将背光接入电源可能会造成损坏。其余引脚由单片机控制。LCM12864-H-050LCM12864-H-050P2.54X19=48.2693.00-■90.0088.0070.7066.52+-'-2.50*-1045图1-3LCM12864液晶显示模块外型图LCM12864液晶显示模块的引脚定义如表1-1所示。表1-1LCM12864引脚说明标号名称参数说明1VSSGND0V模块电源地2VDD+5V模块电源+5VDC3VO0V~-10V外部液晶偏置电压输入端4D/IH/LH:数据;L:指令5R/WH/LH:MPULCM读数据;L:MPULCM写数据

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复位(低电平有效)18VOUTGND0V模块电源地19SLA+5VLED背光电源+5VDC20SLKGND0VLED背光电源地1.3单片机与LCM12864接口电路设计单片机与LCM12864接口电路如图1-4所示。

图1-4单片机与LCM12864接口电路1.4单片机与LCM12864接口程序设计图1-4单片机与LCM12864接口电路具体显示驱动程序清单如下:/**************************************************************文件名称:main.c*文件说明:显示"Hello”**************************************************************/#include<msp430x16x.h>#defineTOP0#defineBOTTOM64#defineLEFT0#defineTOP0#defineBOTTOM64#defineLEFT0#defineRIGHT128#defineEN_WIDTH40#defineCH_WIDTH96#defineOP_CHINESE#defineOP_ENGLISH//竖直方向坐标最大值//水平方向坐标最小值//水平方向坐标最大值//Hello字符串的长度//中文字符串的长度//选择显示中文字符//选择显示英文字符unsignedcharshowData[]=(//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)};unsignedchar px, //显示字符串的X位置py, //显示字符串的Y位置width; //字符串的宽度//write_Command(),用于写命令到LCD,CS(片选)在此函数外设置voidwrite_Command(charcmd)(P3OUT&=0xfb;voidwrite_Command(charcmd)(P3OUT&=0xfb;P5DIR=0xff;P3OUT&=0xfc;P5OUT=cmd;P3OUT|=0x04;P3OUT&=0xfb;}//设置显示的位置,含片选voidmove_To(charx,chary)(〃禁止EN//rs=0,r/w=0〃使能〃禁止〃如果位置在〃如果位置在Chip1//cs2=0//cs1=1//设置x//设置y//在chip2//cs1=0unsignedchartmp;tmp=(y&0x7f);if(tmp<64)(P3OUT&=0xbf;P3OUT|=0x08;write_Command(0xb8+x);write_Command(0x40+tmp);}elseif(tmp>63)(P3OUT&=0xF7;

P3OUT|=0x40; //cs2=1write_Command(0xb8+x); 〃设置xwrite_Command(0x40+tmp-64);〃设置y//writedatavoidwrite_Data(charcontent)(voidwrite_Data(charcontent)(P5DIR=0x00;P3OUT|=0x02;P3OUT|=0x04;while((P5IN&0x80)==0x80)P3OUT&=0xfb;P5DIR=0xff;P3OUT&=0xfc;P3OUT|=0x01;P5OUT=content;P3OUT|=0x04;P3OUT&=0xfb;}//在指定的位置显示字符串"Helle//置位输入模式//r/w=1读状态//chip使能;//检测LCD是否忙//disableEN//rs=0,r/w=0//rs=1//p2.2=1使能//p2.2=0禁止",x是行坐标,y是列坐标,0=<x<=RIGHT-字符串长度//0=<y<=BOTTOM-字符串高度voiddrawStr(unsignedcharx,unsignedchary)(unsignedchartmpv;-字符串长度//0=<y<=BOTTOM-字符串高度voiddrawStr(unsignedcharx,unsignedchary)(unsignedchartmpv;for(tmpv=y;tmpv<y+width;tmpv++)(move_To(x/8,tmpv);write_Data(showData[2*(tmpv-y)]);move_To(x/8+1,tmpv);符是16*N点阵,占用两页,现在移动到下页write_Data(showData[2*(tmpv-y)+1]);}//移动到指定页〃填写数据//由于显示的字//填写数据}//清除chip1或者chip2上的某一区域,选择的区域只是在//同一chip上,x是页地址,Y是列地址,h是多少行,w是指多少//列.区域可以是两个片组成的区域的任何位置voidclear_Rect(unsignedcharx,unsignedchary,unsignedcharh,unsignedcharw)(unsignedchartmpv,tmp;for(tmpv=x;tmpv<(x+h);tmpv++)(for(tmp=y;tmp<(y+w);tmp++)(moveTo(tmpv,tmp);//移动write_Data(0x00);示内容}}}//初始化LCDvoidinit_LCD(void)(P5DIR=0xff;P5OUT=0x00;P3DIR|=0xcf;P3OUT|=0x48;_NOP();_NOP();_NOP();P3OUT|=0x04;P3OUT|=0x80;write_Command(0xc0);write_Command(0x3f);clear_Rect(0,0,8,64);clear_Rect(0,64,8,64);}//main函数voidmain(void)(WDTCTL=WDTHOLD+WDTPWinit_LCD();//在当前位置写0,即清除当前位置的显//设置//在当前位置写0,即清除当前位置的显//设置P5输出模式//初始值为0//P4.0~P5,P4.6,p2.7置为输出模式//cs1,cs2为1,reset=0//en=1////显示开〃清除第一块〃清除第二块//关闭看门狗// 初始化点阵px=0; py=0;width=EN_WIDTH;drawStr(px,py); //显示字符串px=16; py=8;width=EN_WIDTH;drawStr(px,py);px=32; py=16; width=EN_WIDTH;drawStr(px,py);px=48; py=24; width=EN_WIDTH;drawStr(px,py);px=48; py=64; width=EN_WIDTH;drawStr(px,py);px=32; py=72; width=EN_WIDTH;drawStr(px,py);px=16; py=80; width=EN_WIDTH;drawStr(px,py);px=00; py=88; width=EN_WIDTH;drawStr(px,py);while(1)(_NOP();}}1.5更换显示字符方法更换显示字符方法:使用“字模生成PCtoLCD2002”软件得到所需字符的数据表;在显示程序中建立新的数据定义表:unsignedcharshowData_**[];在显示程序中建立新的显示子函数:voiddrawStr

温馨提示

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

评论

0/150

提交评论