版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)原理與應(yīng)用實(shí)驗(yàn)報(bào)告6實(shí)驗(yàn)9串行通信技術(shù)實(shí)驗(yàn)10A模擬信號(hào)轉(zhuǎn)換接口實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)九串行通信技術(shù)、實(shí)驗(yàn)?zāi)康? .了解異步串行通信原理;2 .掌握MSP430異步串行通信模塊及其編程方法;二、實(shí)驗(yàn)任務(wù)1) 了解MSP430G2553實(shí)驗(yàn)板USB轉(zhuǎn)串口的通信功能,掌握串口助手的使用(1)利用PC機(jī)的串口助手程序控制串口,實(shí)現(xiàn)串口的自發(fā)自收功能為實(shí)現(xiàn)PC串口的自發(fā)自收功能,須現(xiàn)將實(shí)驗(yàn)板上的擴(kuò)展板去下,并將單片機(jī)板上的BRXDF口BTXD用杜邦線進(jìn)行短接,連接圖如下所示:EZVCC10SBWTCK3SBWTDIO6BTXD4P1.129VCC7TEST/SBWTCK5RSI/SBWTDIO3P1.21B
2、RXD由此可以實(shí)現(xiàn)PC串口的自收自發(fā)功能。(2)思考題:異步串行通信接口的收/發(fā)雙方是怎么建立起通信的首先在異步通信中,要求接收方和發(fā)送方具有相同的通信參數(shù),即起始位、停止位、波特率等等。在滿(mǎn)足上面條件的情況下,發(fā)送方對(duì)于每一幀數(shù)據(jù)按照起始位數(shù)據(jù)位停止位的順序進(jìn)行發(fā)送,而接收方則一直處于接受狀態(tài),當(dāng)檢測(cè)到起始位低電平時(shí),看是采集接下來(lái)發(fā)送方發(fā)送過(guò)來(lái)的數(shù)據(jù),這樣一幀數(shù)據(jù)(即一個(gè)字符)傳送完畢,然后進(jìn)行下一幀數(shù)據(jù)的接受。這樣兩者之間就建立起了通信。2.查詢(xún)方式控制單片機(jī)通過(guò)板載USB轉(zhuǎn)串口與PC機(jī)實(shí)現(xiàn)串行通信(1)硬件連接圖/通信設(shè)置/時(shí)鐘設(shè)置/循環(huán)等待接受緩沖器滿(mǎn)/讀接受緩沖器并保存/檢測(cè)發(fā)送完
3、畢信號(hào)/接受完畢信號(hào)/檢測(cè)接受完畢信號(hào)2) )C語(yǔ)言程序采用SMCLK=1.0MHz時(shí),程序如下:#include"io430.h"#include"in430.h"unsignedinti,j,done,count;charstring32;voidUSCIA0_int();voidCLOCK_int();intmain(void)/StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;USCIA0_int();CLOCK_int();while(1)done=0;count=0;for(
4、i=0;i<32;i+)while(IFG2&UCA0RXIFG)=0);stringi=UCA0RXBUF;if(stringi='')done=1;break;count=i;if(done=1)for(j=0;j<=count;j+)while(IFG2&UCA0TXIFG)=0);UCA0TXBUF=stringj;done=0;voidUSCIA0_int()UCA0CTL1|=UCSWRST;P1SEL|=BIT1+BIT2;P1SEL2|=BIT1+BIT2;UCA0CTL1|=UCSSEL_2+UCRXEIE;UCA0BR1=0;UC
5、A0BR0=104;UCA0MCTL=UCBRS_1;UCA0CTL1&=UCSWRST;端口設(shè)置時(shí)鐘選擇設(shè)置(SMCLK)/波特率設(shè)置voidCLOCK_int()if(CALBC1_1MHZ!=0xff)BCSCTL1=CALBC1_1MHZ;DCOCTL=CALDCO_1MHZ;設(shè)置時(shí)鐘為1MHz采用smclklMHZ其中SMCLK=1MHz,波特率采用的是9600,采用低頻波特方式,則N=1000000/9600=104.1666;故UCA0BR1=0UCA0BR0=104,UCBRS=1;當(dāng)采用外部晶振時(shí),時(shí)鐘采用默認(rèn)設(shè)置即可,程序如下:#include"io430
6、.h"#include"in430.h"unsignedinti,j,done,count;charstring32;voidUSCIA0_int();intmain(void)/StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;USCIA0_int();while(1)done=0;count=0;for(i=0;i<32;i+)while(IFG2&UCA0RXIFG)=0);stringi=UCA0RXBUF;if(stringi='')done=1;break
7、;/通信設(shè)置/循環(huán)等待接受緩沖器滿(mǎn)/讀接受緩沖器并保存/檢測(cè)發(fā)送完畢信號(hào)/接受完畢信號(hào)/檢測(cè)接受完畢信號(hào)端口設(shè)置時(shí)鐘選擇設(shè)置(SMCLK)/波特率設(shè)置)count=i;if(done=1)(for(j=0;j<=count;j+)(while(IFG2&UCA0TXIFG)=0);UCA0TXBUF=stringj;)done=0;)voidUSCIA0_int()(UCA0CTL1|=UCSWRST;P1SEL|=BIT1+BIT2;P1SEL2|=BIT1+BIT2;UCA0CTL1|=UCSSEL_1+UCRXEIE;UCA0BR1=0;UCA0BR0=3;UCA0MCTL
8、=UCBRS_3;UCA0CTL1&=UCSWRST;)也是采用了低頻波特率方式,所以關(guān)于波特率設(shè)置的相關(guān)計(jì)算和上面是一樣的。(3)思考:如果在兩個(gè)單片機(jī)之間進(jìn)行串行通信,應(yīng)該如何設(shè)計(jì)連線和編程?由于在上面的連線中將單片機(jī)上的P1.2和BRXD相連,P1.1和BTXD相連,所以若要在兩個(gè)單片機(jī)之間進(jìn)行通信,首先應(yīng)該將兩個(gè)單片機(jī)的P1.2和P1.1交叉相連,并根據(jù)上面的程序進(jìn)行相同的關(guān)于端口和波特率相關(guān)的設(shè)置即可實(shí)現(xiàn)兩個(gè)單片機(jī)之間的通信。3 .(提高)利用PC機(jī)RS232通信接口與單片機(jī)之間完成串行通信(1)硬件連接圖在實(shí)驗(yàn)時(shí),采用了將PC機(jī)的串口com1直接連接至MSP430F149的
9、孔型D9連接器上,G2553單片機(jī)的輸出引腳P1.1和P1.2分別與F149單片機(jī)上的URXD1和UTXD1相連接,連接圖如下所示:Fl小板電平轉(zhuǎn)換電路PC機(jī)D9計(jì)型連接器M5P430G2553(2)C語(yǔ)言程序當(dāng)采用波特率9600bps、無(wú)校驗(yàn)、8位數(shù)據(jù)位、先低后高、一個(gè)停止位時(shí),所采用的程序和任務(wù)2中相同,這里不再贅述。當(dāng)采用波特率38400bps、無(wú)校驗(yàn)、8位數(shù)據(jù)位、先低后高、一個(gè)停止位時(shí),由于采用外部晶振已經(jīng)不能夠產(chǎn)生這樣高的波特率,所以采用SMCK=1MHz的時(shí)鐘,所采用的程序只需將任務(wù)二中關(guān)于時(shí)鐘選擇和時(shí)鐘設(shè)置的相關(guān)部分進(jìn)行修改即可,具體程序見(jiàn)下面所示:#include"i
10、o430.h"#include"in430.h"unsignedinti,j,done,count;charstring32;voidUSCIA0_int();voidCLOCK_int();intmain(void)/StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;USCIA0_int();CLOCK_int();while(1)done=0;count=0;for(i=0;i<32;i+)/循環(huán)等待接受緩沖器滿(mǎn)/讀接受緩沖器并保存/檢測(cè)發(fā)送完畢信號(hào)/接受完畢信號(hào)while(IFG2&a
11、mp;UCA0RXIFG)=0);stringi=UCA0RXBUF;if(stringi='')done=1;break;count=i;if(done=1)/檢測(cè)接受完畢信號(hào)(for(j=0;j<count;j+)(while(IFG2&UCA0TXIFG)=0);UCA0TXBUF=stringj;done=0;voidUSCIA0_int()(UCA0CTL1|=UCSWRST;P1SEL|=BIT1+BIT2;P1SEL2|=BIT1+BIT2;/端口設(shè)置UCA0CTL1|=UCSSEL_2+UCRXEIE;/時(shí)鐘選擇設(shè)置UCA0BR1=0;UCA0BR
12、0=1;/波特率設(shè)置UCA0MCTL=UCBRF_10+UCBRS_0+UCOS16;UCA0CTL1&=UCSWRST;voidCLOCK_int()(if(CALBC1_1MHZ!=0xff)(BCSCTL1=CALBC1_1MHZ;/采用smclk1MHZDCOCTL=CALDCO_1MHZ;(3)思考題:設(shè)計(jì)單片機(jī)與PC機(jī)進(jìn)行串行通信時(shí),硬件設(shè)計(jì)有哪些需要注意的事項(xiàng)?首先最基本的是,單片機(jī)和PC機(jī)上所選擇的通信協(xié)議應(yīng)該是一致的,然后可以選擇多種路徑,其中包括USB,串口等。另外需要注意的是要統(tǒng)一兩者之間的邏輯電平,如果電平不同,則需要在中間加入電平轉(zhuǎn)換電路。4 .(提高)中斷方
13、式控制串行通信的收發(fā)(1)硬件連接圖由于只是將接收和發(fā)送改為了中斷實(shí)現(xiàn),其他功能并沒(méi)有改變,所以這里的硬件連接圖和任務(wù)2中的是相同的,這里不再重復(fù)。(2)C語(yǔ)言程序#include"io430.h"#include"in430.h"unsignedinti,j,done,count;charstring32;voidUSCIA0_int();intmain(void)/StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;USCIA0_int();i=0;j=0;done=0;IE2|=UC
14、A0RXIE;_EINT();while(1)if(done=1)IE2|=UCA0TXIE;elseIE2&=UCA0TXIE;voidUSCIA0_int()UCA0CTL1|=UCSWRST;P1SEL|=BIT1+BIT2;P1SEL2|=BIT1+BIT2;/端口設(shè)置UCA0CTL1|=UCSSEL_1+UCRXEIE;/時(shí)鐘選擇設(shè)置UCA0BR1=0;UCA0BR0=3;/波特率設(shè)置UCA0MCTL=UCBRS_3;UCA0CTL1&=UCSWRST;#pragmavector=USCIAB0RX_VECTOR/接收中斷子程_interruptvoidUCA0RX_
15、ISR()stringi=UCA0RXBUF;if(stringi='')done=1;count=i;i=0;)i+;)#pragmavector=USCIAB0TX_VECTOR/發(fā)送中斷子程_interruptvoidUCA0TX_ISR()if(j<count)UCA0TXBUF=stringj;j+;)elsedone=0;j=0;)(3發(fā)送中斷的允許位不能夠一直處于打開(kāi)狀態(tài),因?yàn)楫?dāng)發(fā)送緩沖器為空時(shí),發(fā)送中斷標(biāo)志位就會(huì)被置位,向系統(tǒng)發(fā)出中斷請(qǐng)求,從而轉(zhuǎn)去執(zhí)行發(fā)送中斷子程。而當(dāng)無(wú)法送內(nèi)容時(shí)和剛發(fā)送完內(nèi)容后發(fā)送緩沖器都處于空的狀態(tài),若發(fā)送中斷允許位一直打開(kāi),在沒(méi)有接
16、受完畢進(jìn)入發(fā)送時(shí)就會(huì)不斷地向系統(tǒng)發(fā)出中斷請(qǐng)求,從而導(dǎo)致系統(tǒng)不能正常。所以,發(fā)送中斷允許為應(yīng)該在接受完畢準(zhǔn)備發(fā)送時(shí)打開(kāi),發(fā)送完畢后立即關(guān)閉。三、實(shí)驗(yàn)中遇到的問(wèn)題和解決辦法1 .在任務(wù)二中使用SMCLK完成通信時(shí),最開(kāi)始始終無(wú)法完成通信,后來(lái)發(fā)現(xiàn)是由于SMCLK的時(shí)鐘頻率并不是剛好的1MHz,所以后來(lái)通過(guò)利用示波器測(cè)量實(shí)際的頻率,重新計(jì)算產(chǎn)生波特率的相關(guān)的參數(shù)解決了問(wèn)題;2 .對(duì)于利用中斷完成任務(wù)二的要求中,起初無(wú)法完成通信,后來(lái)發(fā)現(xiàn)是中斷中由于在賦值完一次之后,先使i進(jìn)行了加1,然后才判斷對(duì)應(yīng)的字符是否是'',所以單片機(jī)一直沒(méi)有發(fā)送到PC機(jī)上內(nèi)容。實(shí)驗(yàn)十模擬信號(hào)轉(zhuǎn)換接口一、實(shí)驗(yàn)?zāi)?/p>
17、的1,了解模/數(shù)轉(zhuǎn)換的工作原理,掌握MSP430單片機(jī)內(nèi)ADC10*H/數(shù)轉(zhuǎn)換模塊的控制和應(yīng)用。二、實(shí)驗(yàn)任務(wù)1.卞H/數(shù)轉(zhuǎn)換器ADC10的編程控制(1)硬件連接圖(2)程序設(shè)計(jì)思路首先需要利用示波器測(cè)量單片機(jī)板上的Vcc的大小,確定數(shù)/模轉(zhuǎn)換公式中的參考電壓的取值。在編程時(shí),由于測(cè)量的是穩(wěn)恒電壓,所以ADC的一些設(shè)置采用默認(rèn)值即可,通過(guò)幾次采樣得到的值進(jìn)行平均減小誤差,然后轉(zhuǎn)換為模擬值,利用得到的結(jié)果跟2.2和2.8進(jìn)行比較,然后通過(guò)比較結(jié)果控制L1燈的亮滅。(3)C語(yǔ)言程序#include"io430.h"#include"in430.h"unsign
18、edbuffer32;unsignedinti,sum;floatvin;intmain(void)/StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;P1SEL&=BIT1;P1SEL2&=BIT1;P1DIR|=BIT1;P1OUT|=BIT1;ADC10AE0|=BIT0;ADC10CTL0&=ENC;ADC10CTL1|=INCH_0;ADC10CTL0|=ADC10ON+ENC;while(1)/P1.1設(shè)置為GPIO用來(lái)控制L1/允許A0管腳模擬輸入/禁止ADC10轉(zhuǎn)換采樣通道為A0給內(nèi)核供
19、電允許轉(zhuǎn)換主循環(huán)sum=0;for(i=0;i<4;i+)/軟件啟用采樣ADC10CTL0|=ADC10SC;while(ADC10CTL0&ADC10IFG)=0);bufferi=ADC10MEM;sum=sum+bufferi;/通過(guò)公式計(jì)算出測(cè)量的電壓值vin=(sum/4)*3.5/1023);if(vin>2.80)P1OUT&=BIT1;if(vin<2.20)P1OUT|=BIT1;(4)思考題:如果模擬信號(hào)從P1.5輸入,應(yīng)該如何編程?若模擬信號(hào)從P1.5輸入只需將允許管腳模擬輸入和采樣通道的選擇進(jìn)行修改即可,其他的不用改變。并在硬件上使模擬
20、信號(hào)從P1.5輸入即可。需要修改的指令如下所示:ADC10AE0|=BIT0;/允許A0管腳模擬輸入ADC10CTL1|=INCH_0;/采樣通道為A02.(提高)改用中斷的方式實(shí)現(xiàn)任務(wù)1(1)硬件連接圖硬件連接圖任務(wù)一中相同,所以在這里不再給出。(2)C語(yǔ)言程序#include"io430.h"#include"in430.h"unsignedbuffer32;unsignedinti=0,sum;floatvin;intmain(void)/StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTH
21、OLD;P1SEL&=BIT1;P1SEL2&=BIT1;P1DIR|=BIT1;P1OUT|=BIT1;ADC10AE0|=BIT0;ADC10CTL0&=ENC;ADC10CTL1|=INCH_0;ADC10CTL0|=ADC10ON+ENC;ADC10CTL0|=ADC10IE;_EINT();ADC10CTL0|=ADC10SC;sum=0;while(1)/允許A0管腳模擬輸入/禁止ADC10轉(zhuǎn)換采樣通道為A0給內(nèi)核供電允許轉(zhuǎn)換/打開(kāi)總控位/軟件啟動(dòng)轉(zhuǎn)換if(vin>2.80)P1OUT&=BIT1;if(vin<2.20)P1OUT|=B
22、IT1;ADC10CTL0|=ADC10SC;/軟件啟動(dòng)轉(zhuǎn)換#pragmavector=ADC10_VECTOR/中斷子程_interruptvoidADC10_ISR()bufferi=ADC10MEM;sum=sum+bufferi;i+;if(i=4)vin=(sum/4)*3.5/1023);sum=0;i=0;3.(提高)制作數(shù)字電壓表(1)硬件連接圖(2)程序設(shè)計(jì)思路其中最基本的任務(wù)和上面兩個(gè)任務(wù)中完成方式相同,在這里需要改進(jìn)的就是將測(cè)得的電壓值進(jìn)行數(shù)碼管顯示,只需要利用之前實(shí)驗(yàn)中設(shè)計(jì)的數(shù)碼管顯示模塊就可以了。(3)C語(yǔ)言程序#include"io430.h"#
23、include"in430.h"unsignedbuffer32;unsignedinti=0,sum;unsignedcharNUMtab10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;intvin;floatvinl;voidseg(intnumber);intmain(void)(/StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;P1SEL&=(BIT0+BIT1+BIT2+BIT3);P1SEL2&=(BIT0+BIT1+B
24、IT2+BIT3);P1DIR|=(BIT0+BIT1+BIT2+BIT3);P2SEL=0;P2SEL2=0;P2DIR=0xff;ADC10AE0|=BIT5;允許A0管腳模擬輸入(改為BIT5)ADC10CTL0&=ENC;/禁止ADC10轉(zhuǎn)換ADC10CTL1|=INCH_5;采樣通道為A0(改為INCH_5)ADC10CTL0|=ADC10ON+ENC;/給內(nèi)核供電允許轉(zhuǎn)換ADC10CTL0|=ADC10IE;_EINT();ADC10CTL0|=ADC10SC;sum=0;while(1)(seg(vin);ADC10CTL0|=ADC10SC;#pragmavector=ADC10_VECTOR_interruptvoidADC10_ISR()(bufferi=ADC10MEM;sum=sum+bufferi;i+;if(i=4)(vin1=100*(sum/4)*3.4962/1023);vin=(int)vin1;sum=0;i=0;voidseg(intnumber
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45035-2024棉花集中成熟栽培技術(shù)要求
- 2025年度衛(wèi)星通信地面站安裝與維護(hù)合同3篇
- 垃圾處理設(shè)施建設(shè)指南
- 職業(yè)病防治違規(guī)處罰細(xì)則
- 風(fēng)電場(chǎng)開(kāi)發(fā)地勘招投標(biāo)文件
- 制造業(yè)總經(jīng)理聘用合同范本
- 農(nóng)業(yè)生產(chǎn)操作維護(hù)指南
- 醫(yī)療器械使用檔案移交標(biāo)準(zhǔn)
- 知識(shí)產(chǎn)權(quán)風(fēng)險(xiǎn)防范與內(nèi)部控制
- 冷鏈物流設(shè)備租賃協(xié)議
- 瀝青路面彎沉溫度修正
- 軟裝公司商業(yè)計(jì)劃書(shū)
- 湖北省武漢市硚口區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案)
- 重慶市墊江區(qū)2023-2024學(xué)年部編版七年級(jí)上學(xué)期期末歷史試卷
- 云南省昆明市呈貢區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末數(shù)學(xué)試卷+
- 云南省昭通市巧家縣2023-2024學(xué)年五年級(jí)上學(xué)期期末考試語(yǔ)文試卷
- 有趣的英語(yǔ)小知識(shí)講座
- 2024年擬攻讀博士學(xué)位期間研究計(jì)劃
- 國(guó)際知名高科技園區(qū)發(fā)展及對(duì)我國(guó)的經(jīng)驗(yàn)借鑒
- 財(cái)政投資評(píng)審項(xiàng)目造價(jià)咨詢(xún)服務(wù)方案審計(jì)技術(shù)方案
- 2023年民兵冬訓(xùn)總結(jié)
評(píng)論
0/150
提交評(píng)論