MSP430F169單片機(jī)系統(tǒng)構(gòu)成_第1頁
MSP430F169單片機(jī)系統(tǒng)構(gòu)成_第2頁
MSP430F169單片機(jī)系統(tǒng)構(gòu)成_第3頁
MSP430F169單片機(jī)系統(tǒng)構(gòu)成_第4頁
MSP430F169單片機(jī)系統(tǒng)構(gòu)成_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第1章MSP430F169單片機(jī)系統(tǒng)構(gòu)成1.1MSP430F169概述MSP430F169是TI公司進(jìn)入中國市場的MSP430F系列單片機(jī)中功能最強(qiáng)的芯片。MSP430F169單片機(jī)為64引腳封裝,符號及引腳位置圖如圖1-1所示。圖1-1符號及引腳位置圖MSP430F169片內(nèi)結(jié)構(gòu)框圖如圖1-2所示。16位CPU通過總線連接到存儲器和外圍模塊。只讀存儲器60KB,隨機(jī)存儲器2KB。XI1NXOUT/TCLK 口%仁口瞄^CC RST7NMI P1P2P3P4P5 P8XT2IN]|—XT2OUTI—Oscillator

System

Glock

時鐘振

蕩器-?A.CLK■>SMCLKSOkBFlash2kBRAM只.讀 隨機(jī)存儲器 存儲器12-BrtADC3Channels模數(shù)轉(zhuǎn)換器12-5hDA.C2Channels數(shù)模轉(zhuǎn)換器I/OFort1Z2帶中斷I口蒲口ITOPort3/4ll/OPort5mXT2IN]|—XT2OUTI—Oscillator

System

Glock

時鐘振

蕩器-?A.CLK■>SMCLKSOkBFlash2kBRAM只.讀 隨機(jī)存儲器 存儲器12-BrtADC3Channels模數(shù)轉(zhuǎn)換器12-5hDA.C2Channels數(shù)模轉(zhuǎn)換器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直接數(shù)佳控制器圖1-2MSP430F169芯片的結(jié)構(gòu)框圖外圍模塊(片內(nèi)外設(shè)):經(jīng)過MAB、MDB、中斷服務(wù)及請求線與CPU相連。時鐘模塊可外接兩個晶振,低速選用32768Hz晶振,高速晶振最高可選到8MHz。在使用高速時鐘和端口時要根據(jù)需要將其初始化??撮T狗、定時器A、比較器A等與MSPF413單片機(jī)使用方法相同,但無液品驅(qū)動器。MSP430F169片內(nèi)增加了8路快速12位ADC模數(shù)轉(zhuǎn)換模塊,2路12位DAC數(shù)模轉(zhuǎn)換模塊,兩個通用連續(xù)同步/異步通信接口(USART)模塊,I2C模塊,DMA數(shù)據(jù)傳送模塊和硬件乘法器模塊等。1.2LCM12864液晶顯示模塊簡介LCM12864液晶顯示模塊是由128列64行液晶顯示點(diǎn)陣和其控制電路組成,整個電路板外形如圖1-3所示。該顯示模塊不僅可以顯示數(shù)字,還可以顯示漢字和圖形。模塊電路板下端有20個接線引腳,其中VDD與VSS引腳是LCM12864液晶模塊電源與地接入端,VOUT是LCM12864液晶模塊自生成負(fù)電壓輸出端。VO需要一個外部的0V~-10V負(fù)壓輸入,可接入電位器調(diào)整液晶灰度。在背光電路中需要串接5歐姆電阻,直接將背光接入電源可能會造成損壞。其余引腳由單片機(jī)控制。LCM12864-H-050LCM12864-H-050P2.54X19=48.2693.00-■90.0088.0070.7066.52+-'-2.50*-1045圖1-3LCM12864液晶顯示模塊外型圖LCM12864液晶顯示模塊的引腳定義如表1-1所示。表1-1LCM12864引腳說明標(biāo)號名稱參數(shù)說明1VSSGND0V模塊電源地2VDD+5V模塊電源+5VDC3VO0V~-10V外部液晶偏置電壓輸入端4D/IH/LH:數(shù)據(jù);L:指令5R/WH/LH:MPULCM讀數(shù)據(jù);L:MPULCM寫數(shù)據(jù)

6EH/LLCM使能7DB0H/L數(shù)據(jù)線0(H表示高電平,L表示低電平8DB1H/L數(shù)據(jù)線19DB2H/L數(shù)據(jù)線210DB3H/L數(shù)據(jù)線311DB4H/L數(shù)據(jù)線412DB5H/L數(shù)據(jù)線513DB6H/L數(shù)據(jù)線614DB7H/L數(shù)據(jù)線715CS1H/L左半屏使能(低電平有效)16CS2H/L右半屏使能(低電平有效)17/RSTH/LLCM復(fù)位(低電平有效)18VOUTGND0V模塊電源地19SLA+5VLED背光電源+5VDC20SLKGND0VLED背光電源地1.3單片機(jī)與LCM12864接口電路設(shè)計單片機(jī)與LCM12864接口電路如圖1-4所示。

圖1-4單片機(jī)與LCM12864接口電路1.4單片機(jī)與LCM12864接口程序設(shè)計圖1-4單片機(jī)與LCM12864接口電路具體顯示驅(qū)動程序清單如下:/**************************************************************文件名稱:main.c*文件說明:顯示"Hello”**************************************************************/#include<msp430x16x.h>#defineTOP0#defineBOTTOM64#defineLEFT0#defineTOP0#defineBOTTOM64#defineLEFT0#defineRIGHT128#defineEN_WIDTH40#defineCH_WIDTH96#defineOP_CHINESE#defineOP_ENGLISH//豎直方向坐標(biāo)最大值//水平方向坐標(biāo)最小值//水平方向坐標(biāo)最大值//Hello字符串的長度//中文字符串的長度//選擇顯示中文字符//選擇顯示英文字符unsignedcharshowData[]=(//16*8點(diǎn)陣的“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(片選)在此函數(shù)外設(shè)置voidwrite_Command(charcmd)(P3OUT&=0xfb;voidwrite_Command(charcmd)(P3OUT&=0xfb;P5DIR=0xff;P3OUT&=0xfc;P5OUT=cmd;P3OUT|=0x04;P3OUT&=0xfb;}//設(shè)置顯示的位置,含片選voidmove_To(charx,chary)(〃禁止EN//rs=0,r/w=0〃使能〃禁止〃如果位置在〃如果位置在Chip1//cs2=0//cs1=1//設(shè)置x//設(shè)置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); 〃設(shè)置xwrite_Command(0x40+tmp-64);〃設(shè)置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讀狀態(tài)//chip使能;//檢測LCD是否忙//disableEN//rs=0,r/w=0//rs=1//p2.2=1使能//p2.2=0禁止",x是行坐標(biāo),y是列坐標(biāo),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點(diǎn)陣,占用兩頁,現(xiàn)在移動到下頁write_Data(showData[2*(tmpv-y)+1]);}//移動到指定頁〃填寫數(shù)據(jù)//由于顯示的字//填寫數(shù)據(jù)}//清除chip1或者chip2上的某一區(qū)域,選擇的區(qū)域只是在//同一chip上,x是頁地址,Y是列地址,h是多少行,w是指多少//列.區(qū)域可以是兩個片組成的區(qū)域的任何位置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);示內(nèi)容}}}//初始化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函數(shù)voidmain(void)(WDTCTL=WDTHOLD+WDTPWinit_LCD();//在當(dāng)前位置寫0,即清除當(dāng)前位置的顯//設(shè)置//在當(dāng)前位置寫0,即清除當(dāng)前位置的顯//設(shè)置P5輸出模式//初始值為0//P4.0~P5,P4.6,p2.7置為輸出模式//cs1,cs2為1,reset=0//en=1////顯示開〃清除第一塊〃清除第二塊//關(guān)閉看門狗// 初始化點(diǎn)陣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”軟件得到所需字符的數(shù)據(jù)表;在顯示程序中建立新的數(shù)據(jù)定義表:unsignedcharshowData_**[];在顯示程序中建立新的顯示子函數(shù):voiddrawStr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論