版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四講第四講第四講第四講定時(shí)器定時(shí)器定時(shí)器定時(shí)器A的使用的使用的使用的使用MSP430F413芯片中含有TimerA3模塊,如圖1-2所示。其常用的外引線(xiàn)有三條:TACLK、TA1和TA2。TACLK:定時(shí)器_A輸入時(shí)鐘(48腳),與P1.6和ACLK輸出共用同一引腳。TA1:定時(shí)器_A的第一通道輸入、輸出引腳(51腳)。捕獲方式:CCI1A輸入;比較方式:OUT1輸出。TA2:定時(shí)器_A的第二通道輸入、輸出引腳(45腳)。捕獲方式:CCI2A輸入;比較方式:OUT2輸出。1....定時(shí)器定時(shí)器定時(shí)器定時(shí)器A功能及結(jié)構(gòu)功能及結(jié)構(gòu)功能及結(jié)構(gòu)功能及結(jié)構(gòu)定時(shí)器A基本結(jié)構(gòu)是一個(gè)十六位計(jì)數(shù)器,由時(shí)鐘信號(hào)驅(qū)動(dòng)工作,結(jié)構(gòu)框圖如圖4-1所示。圖4-1定時(shí)器A結(jié)構(gòu)圖定時(shí)器A具有多種功能,其特性如下:(1)輸入時(shí)鐘可以有三種選擇,可以是慢時(shí)鐘(ACLK)、快時(shí)鐘(SMCLK與單片機(jī)主時(shí)鐘同頻)和外部時(shí)鐘。(2)能產(chǎn)生的定時(shí)中斷、定時(shí)脈沖和PWM(脈寬調(diào)制)信號(hào),沒(méi)有軟件帶來(lái)的誤差。(3)不僅能捕獲外部事件發(fā)生的時(shí)間,還可選擇觸發(fā)脈沖沿(由上升沿或下降沿觸發(fā))。定時(shí)器A功能模塊主要包括:(1)計(jì)數(shù)器部分:輸入的時(shí)鐘源具有4種選擇,所選定的時(shí)鐘源又可以1、2、4或8分頻作為計(jì)數(shù)頻率,Timer_A可以通過(guò)選擇4種工作模式靈活的完成定時(shí)/計(jì)數(shù)功能。(2)捕獲/比較器:用于捕獲事件發(fā)生的時(shí)間或產(chǎn)生時(shí)間間隔,捕獲比較功能的引入主要是為了提高I/O端口處理事務(wù)的能力和速度。不同的MSP430單片機(jī),Timer_A模塊中所含有的捕獲/比較器的數(shù)量不一樣,每個(gè)捕獲/比較器的結(jié)構(gòu)完全相同,輸入和輸出都取決于各自所帶控制寄存器的控制字,捕獲/比較器相互之間完全獨(dú)立工作。(3)輸出單元:具有可選的8種輸出模式,用于產(chǎn)生用戶(hù)需要的輸出信號(hào),支持PWM輸出。2....定時(shí)器工作模式定時(shí)器工作模式定時(shí)器工作模式定時(shí)器工作模式(1)停止模式:停止模式用于定時(shí)器暫停,并不發(fā)生復(fù)位,所有寄存器現(xiàn)行的內(nèi)容在停止模式結(jié)束后都可用。當(dāng)定時(shí)器暫停后重新計(jì)數(shù)時(shí),計(jì)數(shù)器將從暫停時(shí)的值開(kāi)始以暫停前的計(jì)數(shù)方向計(jì)數(shù)。例如,停止模式前,Timer_A工作于增/減計(jì)數(shù)模式并且處于下降計(jì)數(shù)方向,停止模式后,Timer_仍然工作于增/減計(jì)數(shù)模式,從暫停前的狀態(tài)開(kāi)始繼續(xù)沿著下降方向開(kāi)始計(jì)數(shù)。如果不需這樣,則可通過(guò)TACTL中的CLR控制位來(lái)清除定時(shí)器的方向記憶特性。(2)增計(jì)數(shù)模式:捕獲/比較寄存器CCR0用作Timer_A增計(jì)數(shù)模式的周期寄存器,因?yàn)镃CR0為16位寄存器,所以該模式適用于定時(shí)周期小于65536的連續(xù)計(jì)數(shù)情況。計(jì)數(shù)器TAR可以增計(jì)數(shù)到CCR0的值,當(dāng)計(jì)數(shù)值與CCR0的值相等(或定時(shí)器值大于CCR0的值)時(shí),定時(shí)器復(fù)位并從0開(kāi)始重新計(jì)數(shù)。增計(jì)數(shù)模式的計(jì)數(shù)過(guò)程如圖4-2所示。通過(guò)改變CCR0值,可重置計(jì)數(shù)周期。圖4-2增計(jì)數(shù)模式示意圖(3)連續(xù)計(jì)數(shù)模式:在需要65536個(gè)時(shí)鐘周期的定時(shí)應(yīng)用場(chǎng)合常用連續(xù)計(jì)數(shù)模式。定時(shí)器從當(dāng)前值計(jì)數(shù)到單增到0FFFFH后,又從0開(kāi)始重新計(jì)數(shù)如圖4-3所示。圖4-3連續(xù)計(jì)數(shù)模式(4)增/減計(jì)數(shù)模式需要對(duì)稱(chēng)波形的情況經(jīng)??梢允褂迷?減計(jì)數(shù)模式,該模式下,定時(shí)器先增計(jì)數(shù)到CCR0的值,然后反向減計(jì)數(shù)到0。計(jì)數(shù)周期仍由CCR0定義,它是CCR0計(jì)數(shù)器數(shù)值的2倍。計(jì)數(shù)器的計(jì)數(shù)過(guò)程如圖4-4所示。圖4-4增/減計(jì)數(shù)模式3....增計(jì)數(shù)模式應(yīng)用舉例增計(jì)數(shù)模式應(yīng)用舉例增計(jì)數(shù)模式應(yīng)用舉例增計(jì)數(shù)模式應(yīng)用舉例增計(jì)數(shù)最大值存儲(chǔ)器在CCR0,該值計(jì)算方法如下:選用輔助時(shí)鐘時(shí),ACLK頻率f=32768Hz,周期T=1/32768,若選用250ms中斷,則CCR0值應(yīng)為:81923276825.025.0=×==TN轉(zhuǎn)換成十六進(jìn)制數(shù)后N=2000(H)MSP430F413單片機(jī)定時(shí)器A構(gòu)成的時(shí)鐘小系統(tǒng)程序清單如下:/***************************************************文件名稱(chēng):MSP413C語(yǔ)言定時(shí)程序文件說(shuō)明:用MSP430F413定時(shí)器A作為定時(shí)中斷源。***************************************************/#include<msp430x41x.h>/*****************************************************文件說(shuō)明:LCD模塊*****************************************************/#defineLCD_IN_USE10/******************************************************數(shù)據(jù)定義七段譯碼表*****************************************************/constunsignedcharNUM_LCD[17]={0xd7,0x06,0xe3,0xa7,0x36,//'0'~'4'0xb5,0xf5,0x07,0xf7,0xb7,//'5'~'9'0x77,0xf4,0xd1,0xe6,0xf1,//'A'~'E'0x71,0x00};//'F','全熄'unsignedcharlcd_Buf[LCD_IN_USE];//自定義顯示緩沖區(qū),用于要顯示的數(shù)據(jù)unsignedintcont,y0,y1,y2;//秒、時(shí)、分存儲(chǔ)變量/********************************************************LCD模塊初始化*******************************************************/voidinit_LCD(void){chartmpv;BTCTL=BT_fLCD_DIV32;//setLCD時(shí)鐘P5SEL=0xfc;//置為外圍模塊LCDCTL=LCDON+LCD4MUX+LCDP1;//4Mux模式for(tmpv=0;tmpv<10;tmpv++){LCDMEM[tmpv]=0x00;//clearLCD}}/*******************************************************LCD清零模塊*******************************************************/voidcl_LCD(void){chartmpv;for(tmpv=0;tmpv<10;tmpv++){LCDMEM[tmpv]=0x00;//clearLCD}}/****************************************************更新LCD緩沖區(qū)的內(nèi)容,把數(shù)據(jù)顯示到LCD****************************************************/voidlcd_Display(void){chartmpv;lcd_Buf[0]=y2/10;lcd_Buf[1]=y2%10;lcd_Buf[2]=16;lcd_Buf[3]=y1/10;lcd_Buf[4]=y1%10;lcd_Buf[5]=16;lcd_Buf[6]=y0/10;lcd_Buf[7]=y0%10;lcd_Buf[8]=16;lcd_Buf[9]=16;for(tmpv=0;tmpv<LCD_IN_USE-1;tmpv++){LCDMEM[tmpv]=NUM_LCD[lcd_Buf[tmpv]];//更新LCDMEM中的內(nèi)容}}/***********************************************************定時(shí)器A中斷服務(wù)程序************************************************************/#pragmavector=TIMERA0_VECTOR__interruptvoidTimer_A(void)//interrupt[TIMERA0_VECTOR]voidTimer_A(void){cont=cont+1;if(cont==4){cont=0;y0=y0+1;//秒加1if(y0==60){y0=0;y1=y1+1;//60秒為1分,分加1if(y1==60){y1=0;y2=y2+1;//60分為1小時(shí),小時(shí)加1if(y2==24){y2=0;//24小時(shí)再清零}}}cl_LCD();lcd_Display();_NOP();}}voidinit_TA(void)//初始化定時(shí)器A{TACCR0=0x2000;TACTL=TASSEL0+TACLR;//ACLK,清零TarTACCTL0=CCIE;//中斷使能CCR0TACTL|=MC0;//設(shè)置增模式啟動(dòng)定時(shí)器A}/***********************************************************主程序************************************************************/voidmain(void){WDTCTL=WDTPW+WDTHOLD;//關(guān)WDTSCFQCTL|=SCFQ_4M;//設(shè)定主時(shí)鐘為4MHzinit_LCD();init_TA();_EINT();//使能中斷cont=0;y0=0;y1=0;y2=0;for(;;){_BIS_SR(CPUOFF);//關(guān)CPU_NOP();//調(diào)試程序使用}}4....輸出單元輸出單元輸出單元輸出單元定時(shí)器A的輸出單元輸出模式有8種,增計(jì)數(shù)模式下輸出模式如圖4-5所示。圖4-5輸出模式示意圖各模式說(shuō)明如下:(1)輸出模式0—輸出模式:輸出信號(hào)OUTx由每個(gè)捕獲/比較模塊的控制寄存器CCTLx中的OUTx位定義,并在寫(xiě)入該寄存器后立即更新。最終位OUTx直通。(2)輸出模式1—置位模式:輸出信號(hào)在TAR等于CCRx時(shí)置位,并保持置位到定時(shí)器復(fù)位或選擇另一種輸出模式為止。(3)輸出模式2—PWM翻轉(zhuǎn)/復(fù)位模式:輸出在TAR的值等于CCRx時(shí)翻轉(zhuǎn),當(dāng)TAR的值等于CCR0時(shí)復(fù)位。(4)輸出模式3—PWM置位/復(fù)位模式:輸出在TAR的值等于CCRx時(shí)置位,當(dāng)TAR的值等于CCR0時(shí)復(fù)位。(5)輸出模式4—翻轉(zhuǎn)模式:輸出電平在TAR的值等于CCRx時(shí)翻轉(zhuǎn),輸出周期是定時(shí)器周期的2倍。(6)輸出模式5—復(fù)位模式:輸出在TAR的值等于CCRx時(shí)復(fù)位,并保持低電平直到選擇另一種輸出模式。(7)輸出模式6—PWM翻轉(zhuǎn)/置位模式:輸出電平在TAR的值等于CCRx時(shí)翻轉(zhuǎn),當(dāng)TAR值等于CCR0時(shí)置位。(8)輸出模式7—PWM復(fù)位/置位模式:輸出電平在TAR的值等于CCRx時(shí)復(fù)位,當(dāng)TAR的值等于CCR0時(shí)置位。選用增計(jì)數(shù)模式、輸出模式7產(chǎn)生的PWM輸出波形如圖4-6所示。圖4-6輸出模式7產(chǎn)生PWM輸出波形5....輸出單元應(yīng)用舉例輸出單元應(yīng)用舉例輸出單元應(yīng)用舉例輸出單元應(yīng)用舉例例1.Timer_A用增模式在P1.2/2.0產(chǎn)生兩路PWM輸出。CCR0計(jì)數(shù)值為512,通過(guò)設(shè)定CCR1和CCR2值,定義兩路輸出脈寬。使用32kHzACLK作為T(mén)ACLK,定時(shí)器周期為15.625ms,P1.2占空比為75%、P2.0占空比為25%。ACLK=TACLK=LFXT1=32768Hz,MCLK=SMCLK=DCO=32xACLK=1.048576Mhz。外部晶振接于XIN和XOUT。#include<msp430x41x.h>voidmain(void){WDTCTL=WDTPW+WDTHOLD;//關(guān)WDTTACTL=TASSEL0+TACLR;//ACLK,清零TarCCR0=512;//PWM周期CCTL1=OUTMOD_7;//CCR1reset/set模式CCR1=384;//CCR1PWM任務(wù)周期CCTL2=OUTMOD_7;//CCR2reset/set模式CCR2=128;//CCR2PWM任務(wù)周期P1DIR|=0x04;//P1.2輸出P1SEL|=0x04;//P1.2TA1模式P2DIR|=0x01;//P2.0輸出P2SEL|=0x01;//P2.0TA2模式TACTL|=MC0;//增模式啟動(dòng)Timer_Afor(;;){_BIS_SR(LPM3_bits);//進(jìn)入LPM3省電模式_NOP();//C-spy使用}}第五講直流電機(jī)控制與電動(dòng)小車(chē)制作一一一一、、、、直流電機(jī)驅(qū)動(dòng)電路工作原理直流電機(jī)驅(qū)動(dòng)電路工作原理直流電機(jī)驅(qū)動(dòng)電路工作原理直流電機(jī)驅(qū)動(dòng)電路工作原理1)直流電機(jī)轉(zhuǎn)向原理直流電機(jī)一般采用H橋驅(qū)動(dòng)電路,如圖5-1所示。Q1Q2Q3Q42KR12KR22KR32KR42KR5Q5A-+12U1A34U1BVDDABPWM圖5-1直流電機(jī)驅(qū)動(dòng)原理圖同步改變對(duì)角開(kāi)關(guān)管通斷狀態(tài),就改變了流過(guò)電機(jī)的電流方向,也就改變了直流電機(jī)的轉(zhuǎn)動(dòng)方向,達(dá)到了控制正、反轉(zhuǎn)的目的。電路工作狀態(tài)表如表5-1所示。表5-1H橋電機(jī)控制狀態(tài)表PWMAB電機(jī)運(yùn)行狀態(tài)0××停轉(zhuǎn)00停轉(zhuǎn)01反轉(zhuǎn)10正轉(zhuǎn)11停轉(zhuǎn)注:“0”代表低電平;“1”代表高電平。由表5-1可知,H橋電路將電機(jī)轉(zhuǎn)動(dòng)方向控制轉(zhuǎn)化為A、B兩端的電平控制,便于與單片機(jī)接口實(shí)現(xiàn)電機(jī)轉(zhuǎn)向控制。2)直流電機(jī)轉(zhuǎn)速控制原理控制直流電動(dòng)機(jī)所加電壓即可控制電機(jī)轉(zhuǎn)速。直接調(diào)整圖5-1中直流電機(jī)所加電壓VDD雖然可調(diào)整電機(jī)轉(zhuǎn)速,但其主要缺點(diǎn)是效率低。為了提高效率,通常采用占空比可調(diào)矩形波控制電機(jī)轉(zhuǎn)速,即PWM(脈沖寬度調(diào)制)波調(diào)速。PWM信號(hào)示意如圖5-2所示,圖中T為設(shè)定的脈沖周期,在驅(qū)動(dòng)電機(jī)過(guò)程中確定不變;t為脈沖的高電平時(shí)間,占空比d=t/T。將其加于圖5-1電路的PWM端,電機(jī)轉(zhuǎn)速與PWM信號(hào)占空比成正比。圖5-2PWM信號(hào)示意圖PWM波產(chǎn)生方法有多種,本設(shè)計(jì)中為了簡(jiǎn)化電路,直接使用單片機(jī)內(nèi)定時(shí)器A產(chǎn)生PWM控制電機(jī)轉(zhuǎn)速。3)電機(jī)驅(qū)動(dòng)專(zhuān)用芯片L293D簡(jiǎn)介圖5-1所示H橋電路僅是原理電路,要轉(zhuǎn)化為實(shí)用電路還要做許多工作,因此實(shí)際應(yīng)用中很少采用。L293D是集成電路芯片,片內(nèi)含有雙H橋驅(qū)動(dòng)器,引腳圖如圖5-3所示。輸入小電流控制信號(hào),輸出高電壓、大電流驅(qū)動(dòng)信號(hào)。用邏輯電平控制、驅(qū)動(dòng)感性負(fù)載(比如繼電器,直流電機(jī)和步進(jìn)電機(jī)等)。通過(guò)改變芯片控制端的輸入電平,即可以對(duì)電機(jī)進(jìn)行正反轉(zhuǎn)操作。芯片具有2A峰值輸出電流通道,使用簡(jiǎn)易便。其額定工作電流為1A,最大可達(dá)1.5A,Vss電壓最小4.5V,最大可達(dá)36V;Vs電壓最大值也是36V。L293D是16引腳塑料封裝,中間的4個(gè)引腳是短路的(為了散熱),L293D的Vss和Vs電源端可分別接入芯片電源和電機(jī)驅(qū)動(dòng)電源。圖5-3L293D引腳圖圖5-4L293D功能示意圖L293D功能示意圖如圖5-4所示(對(duì)應(yīng)20引腳芯片)。L293D使能、輸入引腳和輸出引腳的邏輯關(guān)系如表5-2所示。表5-2引腳和輸出引腳的邏輯關(guān)系ENA(B)IN1(IN3)IN2(IN4)電機(jī)運(yùn)行情況HHL正轉(zhuǎn)HLH反轉(zhuǎn)H同IN2(IN4)同IN1(IN3)快速停止LXX停止H-橋電路的輸入量可以用來(lái)設(shè)置電機(jī)轉(zhuǎn)動(dòng)方向,使能信號(hào)可以用于脈寬調(diào)整(PWM),實(shí)現(xiàn)電機(jī)轉(zhuǎn)速控制。L293D將2個(gè)H-橋電路集成到1片芯片上,這就意味著用1片芯片可以同時(shí)控制2個(gè)直流電機(jī)。每1個(gè)直流電機(jī)需要3個(gè)控制信號(hào)EN1、IN1、IN2,其中EN1是使能信號(hào),IN1、IN2為電機(jī)轉(zhuǎn)動(dòng)方向控制信號(hào),IN1、IN2分別為1,0時(shí),電機(jī)正轉(zhuǎn),反之,電機(jī)反轉(zhuǎn)。選用一路PWM連接EN1引腳,通過(guò)調(diào)整PWM的占空比可以調(diào)整電機(jī)的轉(zhuǎn)速。4)直流電機(jī)驅(qū)動(dòng)電路驅(qū)動(dòng)電路如圖5-5所示,單片機(jī)PIO端口線(xiàn)P1.0、P1.1驅(qū)動(dòng)光電隔離器中發(fā)光二極管,控制光電三極管。輸入為高電平時(shí),三極管飽和導(dǎo)通,反之截止。當(dāng)P1.0為高電平、P1.1位低電平時(shí),L293D的IN4為高、IN3為低電平,OUT4為高、OUT3位低電平,電機(jī)正轉(zhuǎn);反之,當(dāng)P1.0位低、P1.1為高電機(jī)反轉(zhuǎn);當(dāng)P1.0、P1.1電平同時(shí)為高或低時(shí),電機(jī)停轉(zhuǎn),實(shí)現(xiàn)了電機(jī)轉(zhuǎn)向控制。E2是OUT4、OUT3的使能端,高電平有效。當(dāng)在E2端加PWM信號(hào)時(shí),可實(shí)現(xiàn)調(diào)速。高速轉(zhuǎn)動(dòng)對(duì)應(yīng)的PWM信號(hào)占空比為1;次高速占空比為0.75;中速轉(zhuǎn)動(dòng)占空比為0.5;低速轉(zhuǎn)動(dòng)占空比為0.25。PWM信號(hào)由MSP430F413單片機(jī)定時(shí)器A產(chǎn)生。光電隔離器在傳送信號(hào)同時(shí)實(shí)現(xiàn)了電平轉(zhuǎn)換,將高電壓(6-9V)電機(jī)驅(qū)動(dòng)電路與低電壓(4.5V)單片機(jī)電路隔離,消除了干擾。注意兩電路地線(xiàn)標(biāo)志不同,焊接時(shí)不能連接。U5U6U7510R4510R5510R610KR1510KR1610KR17VDDVSSIN4OUT4GNDGNDOUT3INT3E2E1IN1OUT1GNDGNDOUT2IN2VSL293DA-+M電電電電電VDD12341234123412345678910111213141516P1.0P1.1P1.2/TA1圖5-5直流電機(jī)驅(qū)動(dòng)電路二二二二、、、、直流電機(jī)控制系統(tǒng)硬件設(shè)計(jì)直流電機(jī)控制系統(tǒng)硬件設(shè)計(jì)直流電機(jī)控制系統(tǒng)硬件設(shè)計(jì)直流電機(jī)控制系統(tǒng)硬件設(shè)計(jì)直流電機(jī)控制系統(tǒng)電路如圖5-6所示,是在時(shí)鐘小系統(tǒng)基礎(chǔ)上加入直流電機(jī)驅(qū)動(dòng)電路、按鍵和功能選擇開(kāi)關(guān)電路。功能選擇開(kāi)關(guān)在上是電機(jī)驅(qū)動(dòng)功能,在下是時(shí)鐘計(jì)時(shí)功能。圖5-6直流電機(jī)控制系統(tǒng)1232768HzXTAL500KR11500KR9500KR101KR2100kR122pFC1D1DVcc1P6.32P6.43P6.54P6.65P6.76NC7XIN8XOUT/TCLK9NC10NC11P5.1/S012P5.0/S113P4.7/S214P4.6/S315P4.5/S416P4.4/S517P4.3/S618P4.2/S719P4.1/S820P4.0/S921P3.7/S1022P3.6/S1123P3.5/S1224P3.4/S1325P3.3/S1426P3.2/S1527P3.1/S1628P3.0/S1729P2.7/S1830P2.6/CAOUT/S1931P2.5/S2032P2.4/S2133P2.3/S2234P2.2/S2335COM036P5.2/COM137P5.3/COM238P5.4/COM339R0340P5.5/R1341P5.6/R2342P5.7/R3343P2.144P2.0/TA245P1.7/CA146P1.6/CA047P1.5/TACLK/ACLK48P1.449P1.3/SVSOut50P1.2/TA151P1.1/TA0/MCLK52P1.0/TA053TDO/TDI54TDI55TMS56TCK57RST/NMI58P6.059P6.160P6.261AVss62DVss63AVcc64U12422231817212019MSP430F413LCD_No.ACD-I9013COM0COM1COM2COM3S0S1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16S17S18S1912345678910111213141516VCCSVCC3.6V/RST(58)U5U6U7510R4510R5510R610KR1510KR1610KR17VDDVSSIN4OUT4GNDGNDOUT3INT3E2E1IN1OUT1GNDGNDOUT2IN2VSL293DA-+M電電電電電VDD123412341234123456789101112131415166V-9VBT2VDDP1.6P1.7P1.2/TA1VCCSW1SW2SW3SW410KRS110KRS210KRS310KRS4P6.0(59)P6.1(60)P6.2(61)P6.3(2)SVCCP6.4(3)當(dāng)開(kāi)關(guān)撥到時(shí)鐘計(jì)時(shí)功能時(shí),可以通過(guò)秒、分、時(shí)三個(gè)按鍵來(lái)調(diào)節(jié)時(shí)鐘顯示固定數(shù)字,然后按確定鍵,時(shí)鐘便可以在設(shè)定時(shí)間的基礎(chǔ)上開(kāi)始計(jì)時(shí),另外還可以按左側(cè)的復(fù)位鍵,給時(shí)鐘清零。當(dāng)開(kāi)關(guān)撥到電機(jī)驅(qū)動(dòng)功能時(shí),電機(jī)默認(rèn)為正轉(zhuǎn),占空比為0.5,然后通過(guò)按鍵可分別實(shí)現(xiàn):占空比為1的正轉(zhuǎn),占空比為0.5的正轉(zhuǎn),占空比為0.5的反轉(zhuǎn),占空比為1的反轉(zhuǎn)。注意由于按鍵的局限性,實(shí)現(xiàn)電機(jī)以上四種旋轉(zhuǎn)的情況要長(zhǎng)按按鍵,一旦松手電機(jī)將按默認(rèn)的占空比為0.5的正傳旋轉(zhuǎn)。本系統(tǒng)中使用兩套電源供電,其一是單片機(jī)系統(tǒng)電源,考慮到時(shí)鐘的低功耗,使用3.6伏手機(jī)電池供電;其二是直流電機(jī)電源,直流電機(jī)工作時(shí)比較耗電,所以可大容量電池或5V直流電源供電。5V直流穩(wěn)壓電源電路如圖5-7所示。~7.5V~220V470uF/16VCs1200uF/16VCs25V+-VinVoutGND7805+-ACAC圖5-7直流穩(wěn)壓電源電路三三三三、、、、程序設(shè)計(jì)程序設(shè)計(jì)程序設(shè)計(jì)程序設(shè)計(jì)1)電機(jī)控制程序直流電機(jī)變速驅(qū)動(dòng)小系統(tǒng)程序是在時(shí)鐘小系統(tǒng)程序基礎(chǔ)上增加了相應(yīng)的初始化和電機(jī)驅(qū)動(dòng)控制程序。初始化部分加于_EINT()語(yǔ)句之后,電機(jī)驅(qū)動(dòng)部分加于定時(shí)中斷程序中y0=y0+1語(yǔ)句之后。程序清單如下所示:/***************************************************文件名稱(chēng):MSP413C語(yǔ)言定時(shí)和直流電機(jī)控制程序文件說(shuō)明:用MSP413看門(mén)狗定時(shí)器作為定時(shí)中斷源。***************************************************/#include<msp430x41x.h>/*****************************************************文件說(shuō)明:LCD模塊*****************************************************/#defineLCD_IN_USE10/******************************************************數(shù)據(jù)定義七段譯碼表*****************************************************/constunsignedcharNUM_LCD[17]={0xd7,0x06,0xe3,0xa7,0x36,//'0'~'4'0xb5,0xf5,0x07,0xf7,0xb7,//'5'~'9'0x77,0xf4,0xd1,0xe6,0xf1,//'A'~'E'0x71,0x00};//'F','全熄'unsignedcharlcd_Buf[LCD_IN_USE];//自定義顯示緩沖區(qū),用于要顯示的數(shù)據(jù)unsignedintcont,y0,y1,y2,s_num;//秒、時(shí)、分存儲(chǔ)變量/*******************************************************LCD模塊初始化*******************************************************/voidinit_LCD(void){chartmpv;BTCTL=BT_fLCD_DIV32;//setLCD時(shí)鐘P5SEL=0xfc;//置為外圍模塊LCDCTL=LCDON+LCD4MUX+LCDP1;//4Mux模式for(tmpv=0;tmpv<10;tmpv++){LCDMEM[tmpv]=0x00;//clearLCD}}/*******************************************************LCD清零模塊*******************************************************/voidcl_LCD(void){chartmpv;for(tmpv=0;tmpv<10;tmpv++){LCDMEM[tmpv]=0x00;//clearLCD}}/****************************************************更新LCD緩沖區(qū)的內(nèi)容,把數(shù)據(jù)顯示到LCD****************************************************/voidlcd_Display(void){chartmpv;lcd_Buf[0]=y2/10;lcd_Buf[1]=y2%10;lcd_Buf[2]=16;lcd_Buf[3]=y1/10;lcd_Buf[4]=y1%10;lcd_Buf[5]=16;lcd_Buf[6]=y0/10;lcd_Buf[7]=y0%10;lcd_Buf[8]=16;lcd_Buf[9]=16;for(tmpv=0;tmpv<LCD_IN_USE-1;tmpv++){LCDMEM[tmpv]=NUM_LCD[lcd_Buf[tmpv]];//更新LCDMEM中的內(nèi)容}}/***********************************************************WDT中斷服務(wù)程序************************************************************/interrupt[WDT_VECTOR]voidwatchdog_timer(void){cont=cont+1;if(cont==4){cont=0;y0=y0+1;//秒加1s_num=(y0+7)/7;//以秒計(jì)數(shù)為敏感量switch(s_num){case1://高速正轉(zhuǎn)P1OUT=0x40;CCR1=511;//占空比511/512≈1break;case2://次高速正轉(zhuǎn)P1OUT=0x40;CCR1=384;//占空比384/512=0.75break;case3://中速正轉(zhuǎn)P1OUT=0x40;CCR1=256;//占空比256/512=0.5break;case4://低速正轉(zhuǎn)P1OUT=0x40;CCR1=128;//占空比128/512=0.25break;case5://高速反轉(zhuǎn)P1OUT=0x80;CCR1=511;//占空比511/512≈1break;case6://次高速反轉(zhuǎn)P1OUT=0x80;CCR1=384;//占空比384/512=0.75break;case7://中速反轉(zhuǎn)P1OUT=0x80;CCR1=256;//占空比256/512=0.5break;case8://低速反轉(zhuǎn)P1OUT=0x80;CCR1=128;//占空比128/512=0.25break;default:P1OUT=0x00;//其余狀態(tài)停轉(zhuǎn)break;}if(y0==60){y0=0;y1=y1+1;//60秒為1分,分加1if(y1==60){y1=0;y2=y2+1;//60分為1小時(shí),小時(shí)加1if(y2==24){y2=0;//24小時(shí)再清零}}}cl_LCD();lcd_Display();_NOP();}}/***********************************************************主程序************************************************************/voidmain(void){WDTCTL=WDT_ADLY_250;//WDT間隔時(shí)間為250ms(ACLK)IE1|=WDTIE;//使能WDT中斷SCFQCTL|=SCFQ_4M;//設(shè)定主時(shí)鐘為4MHzinit_LCD();_EINT();//使能中斷cont=0;y0=0;y1=0;y2=0;P1DIR|=0xC4;//P1.2輸出P1SEL|=0x04;//P1.2TA1TACTL=TASSEL0+TACLR;//ACLK,清除TARCCR0=512-1;//PWM周期CCTL1=OUTMOD_7;//設(shè)定輸出模式7CCR1=256;//占空比256/512=0.5TACTL|=MC0;//Timer_A增計(jì)數(shù)模式for(;;){_BIS_SR(CPUOFF);//關(guān)CPU_NOP();//調(diào)試程序使用}}2)帶調(diào)時(shí)按鍵的時(shí)鐘與電機(jī)控制程序流程設(shè)計(jì)程序流程框圖如圖5-8所示。圖5-8程序流程框圖2)程序設(shè)計(jì)直流電機(jī)變速驅(qū)動(dòng)小系統(tǒng)程序是在時(shí)鐘小系統(tǒng)程序基礎(chǔ)上增加了相應(yīng)的初始化、按鍵讀入、處理和電機(jī)驅(qū)動(dòng)程序。程序清單如下:#include<msp430x41x.h>/*****************************************************文件說(shuō)明:時(shí)鐘與直流電機(jī)控制程序*****************************************************/#defineLCD_IN_USE10/******************************************************數(shù)據(jù)定義七段譯碼表*****************************************************/constunsignedcharNUM_LCD[17]={0xd7,0x06,0xe3,0xa7,0x36,//'0'~'4'0xb5,0xf5,0x07,0xf7,0xb7,//'5'~'9'0x77,0xf4,0xd1,0xe6,0xf1,//'A'~'E'0x71,0x00};//'F','全熄'unsignedcharlcd_Buf[LCD_IN_USE];//自定義顯示緩沖區(qū),用于要顯示的數(shù)據(jù)unsignedintcont,y0,y1,y2,flag,flag1;//秒、時(shí)、分存儲(chǔ)變量/*******************************************************LCD模塊初始化*******************************************************/voidinit_LCD(void){chartmpv;BTCTL=BT_fLCD_DIV32;//setLCD時(shí)鐘P5SEL=0xfc;//置為外圍模塊LCDCTL=LCDON+LCD4MUX+LCDP1;//4Mux模式for(tmpv=0;tmpv<10;tmpv++){LCDMEM[tmpv]=0x00;//clearLCD}}/*******************************************************LCD清零模塊*******************************************************/voidcl_LCD(void){chartmpv;for(tmpv=0;tmpv<10;tmpv++){LCDMEM[tmpv]=0x00;//clearLCD}}/****************************************************更新LCD緩沖區(qū)的內(nèi)容,把數(shù)據(jù)顯示到LCD****************************************************/voidlcd_Display(void){chartmpv;lcd_Buf[0]=y2/10;lcd_Buf[1]=y2%10;lcd_Buf[2]=16;lcd_Buf[3]=y1/10;lcd_Buf[4]=y1%10;lcd_Buf[5]=16;lcd_Buf[6]=y0/10;lcd_Buf[7]=y0%10;lcd_Buf[8]=16;lcd_Buf[9]=16;for(tmpv=0;tmpv<LCD_IN_USE-1;tmpv++){LCDMEM[tmpv]=NUM_LCD[lcd_Buf[tmpv]];//更新LCDMEM中的內(nèi)容}}/***********************************************************時(shí)鐘計(jì)數(shù)************************************************************/voidshizhong(void){cont=cont+1;if(cont==4){cont=0;y0=y0+1;//秒加1if(y0==60){y0=0;y1=y1+1;//60秒為1分,分加1if(y1==60){y1=0;y2=y2+1;//60分為1小時(shí),小時(shí)加1if(y2==24){y2=0;//24小時(shí)再清零}}}cl_LCD();lcd_Display();_NOP();}}/***********************************************************WDT中斷服務(wù)程序************************************************************/interrupt[WDT_VECTOR]voidwatchdog_timer(void){unsignedintsnum,s_num;snum=P6IN&0x10;//P6.4高(1)執(zhí)行電機(jī)程序,低(0)執(zhí)行時(shí)鐘程序if(snum==0){P1OUT=0;s_num=P6IN&0x0F;if(s_num!=0){flag=1;lcd_Display();switch(s_num){case1:y0++;if(y0==60)y0=0;lcd_Display();//調(diào)秒break;case2:y1++;if(y1==60)y1=0;lcd_Display();//調(diào)分break;case4:y2++;if(y2==24)y2=0;lcd_Display();//調(diào)時(shí)break;case8:flag=0;}}if(flag==0)shizhong();}else{shizhong();s_num=P6IN&0x0F;if(s_num!=0){switch(s_num){case1:flag1=1;break;case2:flag1=2;break;case4:flag1=4;break;case8:flag1=8;break;}}switch(flag1){case0:P1OUT=0x7F;CCR1=255;break;//中速正轉(zhuǎn)(默認(rèn)狀態(tài))case1:P1OUT=0x7F;CCR1=511;break;//高速正轉(zhuǎn)case2:P1OUT=0x7F;CCR1=100;break;//低速正轉(zhuǎn)case4:P1OUT=0xBF;CCR1=100;break;//低速反轉(zhuǎn)case8:P1OUT=0xBF;CCR1=511;break;//高速反轉(zhuǎn)}}}/***********************************************************主程序************************************************************/voidmain(void){WDTCTL=WDT_ADLY_250;//WDT間隔時(shí)間為250ms(ACLK)IE1|=WDTIE;//使能WDT中斷SCFQCTL|=SCFQ_4M;//設(shè)定TA時(shí)鐘為4MHzinit_LCD();P6DIR=0x0;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省瀘州市瀘縣五中2024-2025學(xué)年高一(上)期末生物試卷(含答案)
- 習(xí)作:我的家人 說(shuō)課稿-2024-2025學(xué)年語(yǔ)文四年級(jí)上冊(cè)統(tǒng)編版
- 鉬產(chǎn)品深加工技術(shù)改造產(chǎn)能提升項(xiàng)目可行性研究報(bào)告寫(xiě)作模板-申批備案
- 廣西壯族自治區(qū)南寧市2024-2025學(xué)年八年級(jí)上學(xué)期期末生物試題(無(wú)答案)
- 安徽省淮北市和淮南市2025屆高三第一次質(zhì)量檢測(cè)歷史試卷(含答案)
- 陜西省寶雞市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)部編版期中考試((上下)學(xué)期)試卷及答案
- Unit 2 Making a Difference Developing ideas The power of good 說(shuō)課稿-2023-2024學(xué)年高一英語(yǔ)外研版(2019)必修第三冊(cè)
- Unit 1 developing the topic-Oral communication 說(shuō)課稿 2024-2025學(xué)年仁愛(ài)科普版(2024)七年級(jí)英語(yǔ)上冊(cè)
- 貴州黔南經(jīng)濟(jì)學(xué)院《數(shù)據(jù)結(jié)構(gòu)Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 新疆塔城地區(qū)(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)統(tǒng)編版綜合練習(xí)((上下)學(xué)期)試卷及答案
- 2019年海南省公務(wù)員考試申論真題(甲類(lèi))
- 事業(yè)部制改革方案
- 2025屆廣東省揭陽(yáng)市高一生物第一學(xué)期期末統(tǒng)考模擬試題含解析
- CSR報(bào)告與可持續(xù)發(fā)展
- 蘇教版五年級(jí)上冊(cè)小數(shù)混合運(yùn)算300道及答案
- 第一章問(wèn)題解決策略:分類(lèi)討論 教案 2024-2025學(xué)年 魯教版(五四制)六年級(jí)數(shù)學(xué)上冊(cè)
- 期末復(fù)習(xí)知識(shí)點(diǎn)-2024-2025學(xué)年統(tǒng)編版道德與法治九年級(jí)上冊(cè)
- 職業(yè)技術(shù)學(xué)校《跨境電子商務(wù)物流與倉(cāng)儲(chǔ)》課程標(biāo)準(zhǔn)
- 2024年小學(xué)語(yǔ)文名師工作室年度工作總結(jié)
- 2024時(shí)事政治考試題庫(kù)附參考答案(黃金題型)
- 中華人民共和國(guó)勞動(dòng)合同法全文下載
評(píng)論
0/150
提交評(píng)論