日本免费精品视频,男人的天堂在线免费视频,成人久久久精品乱码一区二区三区,高清成人爽a毛片免费网站

在線客服
基于MSP430單片機(jī)的控制系統(tǒng)設(shè)計(jì)圖書
人氣:20

基于MSP430單片機(jī)的控制系統(tǒng)設(shè)計(jì)

針對(duì)MSP430單片機(jī),應(yīng)用實(shí)例豐富,設(shè)計(jì)方法典型。提供完整硬件電路圖、詳細(xì)程序及軟件、開發(fā)板,注重分析、解決實(shí)際問題。

內(nèi)容簡介

本書主要介紹MSP430F169單片機(jī)設(shè)計(jì)方法,在適當(dāng)闡述工作原理基礎(chǔ)上,重點(diǎn)介紹了硬件電路圖和軟件編程,對(duì)于重要程序,解釋編程方法并說明其工作原理。 全書共分9章:第1章為基礎(chǔ)篇,著重MSP430單片機(jī)工作原理以及IAR編譯軟件的應(yīng)用;第2~9章為單片機(jī)設(shè)計(jì),包括硬件系統(tǒng)設(shè)計(jì)和軟件編程。全書敘述簡潔、概念清晰,提供了大量應(yīng)用實(shí)例,具備完整的硬件電路圖和軟件清單,涵蓋了MSP430F169單片機(jī)設(shè)計(jì)的諸多內(nèi)容。 本書適合作為高等院校電氣、自動(dòng)化專業(yè)高年級(jí)本科生、研究生的及高校教師教學(xué)參考書,還可以供相關(guān)工程技術(shù)人員參考。

編輯推薦

本書內(nèi)容新穎獨(dú)特,涵蓋了MSP430單片機(jī)控制系統(tǒng)的諸多內(nèi)容。通過大量實(shí)例,介紹MSP430F169單片機(jī)的工作原理及設(shè)計(jì)方法,使讀者對(duì)基于單片機(jī)的設(shè)計(jì)有了充分的認(rèn)識(shí)。對(duì)于每個(gè)課題,首先進(jìn)行硬件電路設(shè)計(jì),再進(jìn)行軟件編程,注重對(duì)硬件電路設(shè)計(jì)和軟件編程中可能遇到的問題進(jìn)行詳細(xì)解釋,并提供問題的解決方法,后通過實(shí)驗(yàn)證明設(shè)計(jì)的正確性。對(duì)于初學(xué)者可能遇到的困惑,作者深有體會(huì),本書通過項(xiàng)目實(shí)例教學(xué),起到解疑與啟發(fā)的作用,并培養(yǎng)讀者分析問題和解決問題的能力。

作者簡介

作者簡介:陳中,鹽城工學(xué)院教師,連續(xù)多年指導(dǎo)學(xué)生進(jìn)行畢業(yè)設(shè)計(jì)以及學(xué)科競(jìng)賽,擁有豐富的教學(xué)、實(shí)踐經(jīng)驗(yàn)。發(fā)表過多篇關(guān)于單片機(jī)的論文,反響良好。已出版《基于STC89C52單片機(jī)的控制系統(tǒng)設(shè)計(jì)》《基于AVR單片機(jī)的控制系統(tǒng)設(shè)計(jì)》等五部著作,即將出版《基于STM32單片機(jī)的控制系統(tǒng)設(shè)計(jì)》一書。陳沖,鹽城工學(xué)院教師,多年從事教學(xué)科研工作。曾獲學(xué)校青年教師競(jìng)賽三等獎(jiǎng)1項(xiàng),完成市級(jí)科研項(xiàng)目3項(xiàng),獲市科技進(jìn)步二等獎(jiǎng)1項(xiàng)。發(fā)表過多篇具有較高學(xué)術(shù)水平的論文,先后編著《電力拖動(dòng)控制系統(tǒng)與MATLAB仿真》《運(yùn)動(dòng)控制系統(tǒng)綜合實(shí)驗(yàn)教程》等多部教材。

目錄

目錄

第1章單片機(jī)原理概述及C編程語

1.1MSP430單片機(jī)概述

1.2初步認(rèn)識(shí)MSP430單片機(jī)

1.3MSP430F169單片機(jī)最小系統(tǒng)

1.4C語言概述

1.4.1C的變量與數(shù)據(jù)類型

1.4.2C的運(yùn)算符和表達(dá)式

1.5常用的I/O相關(guān)寄存器及操作

1.6C語言的程序結(jié)構(gòu)

1.6.1順序結(jié)構(gòu)

1.6.2選擇結(jié)構(gòu)

1.6.3循環(huán)結(jié)構(gòu)

1.7C語言的函數(shù)

1.8I/O端口常用操作C語言描述及常用C語言解析

1.9把51單片機(jī)的C語言轉(zhuǎn)換成MSP430單片機(jī)的C語

1.10MSP430編譯軟件使用

1.11自制(頭)文件方法

第2章單片機(jī)輸出電路設(shè)計(jì)

2.1單片機(jī)控制系統(tǒng)設(shè)計(jì)概述

2.2液晶1602的顯示

2.3液晶12864的顯示

2.3.1液晶12864并行顯示

2.3.2液晶12864串行顯示

2.4LED點(diǎn)陣的顯示

2.5液晶12232的顯示

2.62.4in彩屏TFT的顯示

2.6.12.4in彩屏TFT簡介

2.6.2顯存地址指針與窗口工作模式

2.6.3常用寄存器設(shè)置

第3章單片機(jī)輸入電路設(shè)計(jì)

3.1鍵盤的輸入電路

3.2帶函數(shù)和小數(shù)點(diǎn)的計(jì)算器設(shè)計(jì)

3.3電子密碼鎖設(shè)計(jì)

3.4步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)

3.5溫度檢測(cè)系統(tǒng)設(shè)計(jì)

3.6溫濕度傳感器的設(shè)計(jì)

3.7電子秤的設(shè)計(jì)

第4章定時(shí)器/計(jì)數(shù)器和外部中斷系統(tǒng)設(shè)計(jì)

4.1MSP430單片機(jī)時(shí)鐘源

4.2定時(shí)器/計(jì)數(shù)器概述

4.3TIMER_A工作模式

4.4定時(shí)器A模塊捕獲/比較工作原理

4.5定時(shí)器/計(jì)數(shù)器A與PWM

4.6外部中斷的概述

4.7秒表設(shè)計(jì)

4.8紅外遙控設(shè)計(jì)

4.9超聲波測(cè)距系統(tǒng)設(shè)計(jì)

4.10定時(shí)器/計(jì)數(shù)器B

4.11定時(shí)器/計(jì)數(shù)器B與PWM

4.12直流電機(jī)控制系統(tǒng)設(shè)計(jì)

第5章串行通信

5.1串行通信概述

5.2USART相關(guān)寄存器

5.3串行通信協(xié)議

5.4串行通信系統(tǒng)設(shè)計(jì)

第6章I2C接口的應(yīng)用

6.1I2C通信協(xié)議概述

6.2I2C模式操作

6.3I2C寄存器說明

6.4具有斷電保護(hù)的電子密碼鎖設(shè)計(jì)

6.4.1AT24C02芯片簡介

6.4.2具有斷電保護(hù)的電子密碼鎖設(shè)計(jì)

第7章同步串行SPI接口

7.1同步串行SPI接口概述

7.2SPI相關(guān)寄存器

7.3SPI通信設(shè)計(jì)舉例——無線模塊通信設(shè)計(jì)

第8章AD與DA轉(zhuǎn)換器

8.1AD轉(zhuǎn)換器概述

8.2ADC12結(jié)構(gòu)及特點(diǎn)

8.3ADC相關(guān)寄存器設(shè)置

8.4ADC12轉(zhuǎn)換模式

8.5AD應(yīng)用實(shí)例

8.6DA轉(zhuǎn)換器概述

8.7DAC12結(jié)構(gòu)與性能

8.8DAC相關(guān)寄存器設(shè)置

8.9DAC12的操作及設(shè)置和應(yīng)用

第9章單片機(jī)綜合系統(tǒng)設(shè)計(jì)

9.1兩路溫度檢測(cè)系統(tǒng)設(shè)計(jì)

9.2紅外遙控直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)

9.3無線通信直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)

9.4用VB語言編制串行助手界面控制步進(jìn)電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)

9.5門禁控制系統(tǒng)設(shè)計(jì)

9.6藍(lán)牙控制系統(tǒng)設(shè)計(jì)

9.7彩屏和攝像頭控制系統(tǒng)設(shè)計(jì)

參考文獻(xiàn)

在線預(yù)覽

第3章單片機(jī)輸入電路設(shè)計(jì)

3.1鍵盤的輸入電路

鍵盤是最常用的單片機(jī)輸入電路,鍵盤主要分為兩類,一類是獨(dú)立式鍵盤,另一類是矩陣式鍵盤。如圖31(a)所示為獨(dú)立式鍵盤,雖然MSP430單片機(jī)工作電壓為3.3V,其獨(dú)立式鍵盤接的上拉電阻仍為4.8~10kΩ。其工作原理是將對(duì)應(yīng)端口設(shè)置為輸入并上拉,當(dāng)鍵盤未按下,相應(yīng)的端口為高電平,當(dāng)鍵盤被按下時(shí),相應(yīng)的端口被拉為低電平。在程序中通過查詢方法判斷端口是否為低電平,如果是,就進(jìn)入此鍵盤處理程序。獨(dú)立式鍵盤適合鍵盤數(shù)量較少的場(chǎng)合,因?yàn)檎加脝纹瑱C(jī)的端口較多,比如8個(gè)鍵盤都采用獨(dú)立式鍵盤,就需要占用單片機(jī)8個(gè)端口,而矩陣式鍵盤可以節(jié)省單片機(jī)端口。矩陣式鍵盤見圖31(b)。

圖31獨(dú)立式鍵盤和矩陣式鍵盤

對(duì)于矩陣式鍵盤通常采用掃描法,設(shè)矩陣式鍵盤接單片機(jī)P1口相應(yīng)的端口。其工作原理是,先將P1.7~P1.4口設(shè)置為輸出,其中有一位設(shè)置為低電平,其余設(shè)置為高電平。例如將P1.4設(shè)置為輸出且低電平,將P1.7~P1.5設(shè)置為輸出且為高電平,將P1.3~P1.0口設(shè)置為輸入并上拉,用C語言描述,即P1DIR=0xf0; P1OUT=0xef。 然后讀取P1口數(shù)值,即檢測(cè)P1電壓,如果沒有按鈕按下,則P1口電壓(數(shù)值)保持不變,其數(shù)值仍為0xef,如果在矩陣式鍵盤第4列有按鍵按下,則P1電壓(數(shù)值)發(fā)生變化,不再為0xef,假定標(biāo)志為“0”的鍵盤按下,按鍵造成短路,則單片機(jī)P1.0端口就變成低電平,用C語言描述,即“if((P1IN&0x01)==0)”條件成立,把這個(gè)按鍵取鍵值為0(keyvalue=0); 如果是標(biāo)志為“4”的鍵盤按下,按鍵造成短路,則單片機(jī)P1.1端口就變成低電平; 即“if((P1IN&0x02)==0)”條件成立,把這個(gè)按鍵取鍵值為4(keyvalue=4); 同理可以確定標(biāo)志為“8”或“12”的鍵盤。然后再將P1.5設(shè)置為輸出且低電平,P1.7、P1.6、P1.4設(shè)置為輸出且高電平,將P1.3~P1.0口設(shè)置為輸入并上拉,用同樣的方法就能確定第3列鍵盤哪個(gè)鍵盤按下。同理就可以確定第2列、第1列哪個(gè)鍵盤被按下。對(duì)于矩陣式鍵盤,一般情況下,用9個(gè)鍵盤代表0~9的數(shù)值,稱為數(shù)值鍵,而大于9的數(shù)值鍵盤可以代表其他功能,稱為功能鍵。對(duì)于鍵盤操作還有一個(gè)重要問題,即鍵抖動(dòng)現(xiàn)象,簡單說來,雖然只按一下按鍵然后松開,但由于單片機(jī)運(yùn)行程序速度很快,它能多次運(yùn)行鍵盤程序,往往會(huì)認(rèn)為按了多次鍵盤。對(duì)于消除鍵盤抖動(dòng),有硬件消抖和軟件消抖,最常用的是軟件消抖,有多種方法。其中一種方法是在程序中檢測(cè)到按鍵按下后,延遲一段時(shí)間,在按鍵處理程序結(jié)束后,再延時(shí)一段時(shí)間,實(shí)踐表明能夠很好地解決鍵盤抖動(dòng)問題。

3.2帶函數(shù)和小數(shù)點(diǎn)的計(jì)算器設(shè)計(jì)設(shè)計(jì)要求有帶函數(shù)和小數(shù)點(diǎn)的計(jì)算器設(shè)計(jì),設(shè)計(jì)采用1602作為顯示。此設(shè)計(jì)有一個(gè)小數(shù)點(diǎn)的位置問題,如果小數(shù)點(diǎn)位置是變化的,比如顯示3.4或3.48,那么小數(shù)點(diǎn)就發(fā)生變化,稱之為“浮動(dòng)”小數(shù)點(diǎn); 如果小數(shù)點(diǎn)的位置保持不變,比如顯示3.40或3.48,稱之為“固定”小數(shù)點(diǎn)。市面上的計(jì)算器都是采用“浮動(dòng)”小數(shù)點(diǎn),編程復(fù)雜得多,本次設(shè)計(jì)采用“浮動(dòng)”小數(shù)點(diǎn)方法。第二個(gè)設(shè)計(jì)特點(diǎn)就是具有函數(shù)運(yùn)算,把功能鍵復(fù)用,另加一個(gè)獨(dú)立鍵,當(dāng)按下獨(dú)立鍵盤S1時(shí),表明鍵盤當(dāng)作了sina、cos、tang等功能用。其設(shè)計(jì)思路是,獨(dú)立鍵S1未按下時(shí),由于接上拉電阻,P3.0設(shè)置為輸入,則P3.0輸入為高電平,就運(yùn)行四則運(yùn)算程序; 獨(dú)立鍵S1按下時(shí),則P3.0輸入為低電平,就運(yùn)行函數(shù)程序了。按下復(fù)位鍵盤后,重新開始計(jì)算。當(dāng)出現(xiàn)被除數(shù)為零時(shí),液晶顯示“error input”。函數(shù)的運(yùn)算,好的方法是加個(gè)頭文件“math.h”,該頭文件包含sina、cos、tang、ctang函數(shù)等運(yùn)算。帶函數(shù)和小數(shù)點(diǎn)的計(jì)算器硬件電路圖如圖32所示。

圖32帶函數(shù)和小數(shù)點(diǎn)的計(jì)算器設(shè)計(jì)電路圖

采用8MHz晶振作為時(shí)鐘源。P4口接矩陣式鍵盤,P3.0接獨(dú)立式鍵盤。程序清單如下:

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define set_rs P1OUT|=BIT3

#define clr_rs P1OUT&=~BIT3

#define set_lcden P1OUT|=BIT5

#define clr_lcden P1OUT&=~BIT5

#define dataout P2DIR=0XFF

#define dataport P2OUT

#define anjian (P3IN&BIT0)

uchar keyvalue;

uchar wei0=0,fuhao=0,flag1=0,flag2=0;

uchar tab1[]={"sin"};

uchar tab2[]={"cos"};

uchar tab3[]={"tan"};

uchar tab4[]={"="};

uchar dis_flag=0,time_1s_ok;

uint num=0;

uint time=0;

uchar dis_flag;

uint i,j;

int t,a,shu,k;

int jd,jd1,result,result1;

uint time_counter;

void int_clk()

{

unsigned char i;

BCSCTL1&=~XT2OFF; //打開XT振蕩器

BCSCTL2|=SELM1 SELS; //MCLK為8MHz,SMCLK為1MHz

do

{

IFG1&=~OFIFG; //清除振蕩器錯(cuò)誤標(biāo)志

for(i=0; i

_NOP(); //延時(shí)等待

}

while((IFG1&OFIFG)!=0); //如果標(biāo)志為1,則繼續(xù)循環(huán)等待

IFG1&=~OFIFG;

}

void delay5ms(void)

{

unsigned int i=40000;

while (i != 0)

{

i--;

}

}

void write_com(uchar com) //1602寫命令

{

P1DIR|=BIT3 ;

P1DIR|=BIT5 ;

P2DIR=0xff;

clr_rs;

clr_lcden;

P2OUT=com;

delay5ms( );

delay5ms( );

set_lcden;

delay5ms( );

clr_lcden;

}

void write_date(uchar date) //1602寫數(shù)據(jù)

{

P1DIR|=BIT3 ;

P1DIR|=BIT5 ;

P2DIR=0xff;

set_rs;

clr_lcden;

P2OUT=date;

delay5ms( );

delay5ms( );

set_lcden;

delay5ms( );

clr_lcden;

}

void disp(unsigned char s

{

while(s > 0

{

write_date(s);

s ;

}

}

void lcddelay

{

unsigned int j;

for(j=400; j>0; j--);

}

void lcd_pos(unsigned char x,unsigned char y

{

dataport=0x80 0x40x y;

P1DIR|=BIT3 ;

P1DIR|=BIT5 ;

P2DIR=0xff;

clr_rs;

clr_lcden;

delay5ms( );

delay5ms( );

set_lcden;

delay5ms( );

clr_lcden;

}

void init( )

{

clr_lcden;

write_com(0x38);

delay5ms( );

write_com(0x0c);

delay5ms( );

write_com(0x06);

delay5ms( );

write_com(0x01);

}

void display(unsigned long int num

{

uchar dis_flag=0;

uchar table[7];

if(num0

{

dis_flag=1;

table[0]=num%10 '0';

}

else if(num9)

{

dis_flag=2;

table[0]=num/10 '0';

table[1]=num%10 '0';

}

else if(num99)

{

dis_flag=3;

table[0]=num/100 '0';

table[1]=num/10%10 '0';

table[2]=num%10 '0';

}

else if(num999)

{

dis_flag=4;

table[0]=num/1000 '0';

table[1]=num/10 '0';

table[2]=num/10%10 '0';

table[3]=num%10 '0';

}

else if(num9999)

{

dis_flag=5;

table[0]=num/10000 '0';

table[1]=num/1000%10 '0';

table[2]=num/10 '0';

table[3]=num/10%10 '0';

table[4]=num%10 '0';

}

else if(num99999)

{

dis_flag=6;

table[0]=num/100000 '0';

table[1]=num/10000%10 '0';

table[2]=num/1000%10 '0';

table[3]=num/10 '0';

table[4]=num/10%10 '0';

table[5]=num%10 '0';

}

else if(num999999)

{

dis_flag=7;

table[0]=num/1000000 '0';

table[1]=num/100000%10 '0';

table[2]=num/10000%10 '0';

table[3]=num/1000%10 '0';

table[4]=num/10 '0';

table[5]=num/10%10 '0';

table[6]=num%10 '0';

}

if((fuhao==4)&&(flag1==1

{

if(dis_flag

{

write_date('0');

delay5ms();

write_date('.');

delay5ms();

for(i=0; i

{

write_date('0');

delay5ms();

}

}

}

for(i=0; i

{

if((fuhao==1)||(fuhao==2

{

if(i==dis_flag-wei0

{

write_date('.');

delay5ms();

}

}

if(fuhao==3

{

if(i==dis_flag-wei02

{

write_date('.');

delay5ms();

}

}

if(fuhao==4

{

if(dis_flag>3

{

if(i==dis_flag-3

{

write_date('.');

delay5ms();

}

}

}

write_date(table[i]);

delay5ms();

}

}

uchar keyscan(void

{

P4OUT=0xef;

if((P4IN&0x0f)!=0x0f

{

delay5ms();

if((P4IN&0x0f)!=0x0f

{

if((P4IN&0x01)==0

keyvalue=1;

if((P4IN&0x02)==0

keyvalue=2;

if((P4IN&0x04)==0

keyvalue=3;

if((P4IN&0x08)==0

keyvalue=4;

while((P4IN&0x0f)!=0x0f);

}

}

P4OUT=0xdf;

if((P4IN&0x0f)!=0x0f

{

delay5ms();

if((P4IN&0x0f)!=0x0f

{

if((P4IN&0x01)==0

keyvalue=5;

if((P4IN&0x02)==0

keyvalue=6;

if((P4IN&0x04)==0

keyvalue=7;

if((P4IN&0x08)==0

keyvalue=8;

while((P4IN&0x0f)!=0x0f);

}

}

P4OUT=0xbf;

if((P4IN&0x0f)!=0x0f

{

delay5ms();

if((P4IN&0x0f)!=0x0f

網(wǎng)友評(píng)論(不代表本站觀點(diǎn))

來自匿名用**的評(píng)論:

這本書有很多的印刷錯(cuò)誤,不過里面的知識(shí)點(diǎn)歸納還行,

2017-09-20 14:02:23

免責(zé)聲明

更多出版社