數(shù)控恒流源設(shè)計報告加程序_第1頁
數(shù)控恒流源設(shè)計報告加程序_第2頁
數(shù)控恒流源設(shè)計報告加程序_第3頁
數(shù)控恒流源設(shè)計報告加程序_第4頁
數(shù)控恒流源設(shè)計報告加程序_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)控恒流源設(shè)計報告 背 景數(shù)控恒流源是單片機運用數(shù)字控制技術(shù)控制恒流源的一種設(shè)計方案。當前,數(shù)字化數(shù)控恒流源的應(yīng)用,隨著電子技術(shù)的發(fā)展使用范圍越來越廣,在電子測量儀器、激光、傳感技術(shù)、超導(dǎo)、現(xiàn)代通信等高新技術(shù)領(lǐng)域,恒流源都被廣泛應(yīng)用,且發(fā)展前景較為良好。同時,也不僅局限于此。電子領(lǐng)域,數(shù)控恒壓技術(shù)已經(jīng)很成熟,但是恒流方面特別是數(shù)控恒流的技術(shù)是有待發(fā)展,高性能的數(shù)控恒流器件的開發(fā)和應(yīng)用存在巨大的發(fā)展空間。所以設(shè)計一個數(shù)控恒流源方案來提高恒流源的穩(wěn)定性、適用范圍以及精度很有必要。 目 錄第一章 設(shè)計方案 第二章 恒流電路 第三章 MSP430F149單片機及電源 第四章 AD模塊 第五章 DA模塊

2、 第六章 鍵盤模塊和顯示模塊 第七章 軟件設(shè)計 第八章 實驗總結(jié)第1章 設(shè)計方案本設(shè)計本設(shè)計是基于單片機控制的直流恒流源, 分為以下幾個組成部分: 單片機控制系統(tǒng)、 A/D和 D/A轉(zhuǎn)換模塊、 電源模塊、恒流源模塊、負載及鍵盤液晶顯示模塊, 系統(tǒng)框圖如圖所示。 系統(tǒng)框圖用430單片機作為整機的控制單元,通過改變/A轉(zhuǎn)換器的輸入數(shù)字量來改變輸出電壓值,從而間接地改變壓控恒流源的輸出電流大小。為了能夠使系統(tǒng)具備檢測實際輸出電流值的大小,可以將電流轉(zhuǎn)換成電壓,并經(jīng)過A/D轉(zhuǎn)換器進行模數(shù)轉(zhuǎn)換,用單片機實時對電壓進行采樣,與輸入預(yù)期值比較,并通過430單片機進行進行數(shù)據(jù)處理微調(diào)輸出,提高精度實時顯示。第

3、2章 恒流電路數(shù)控直流電流源可以采用電流輸出型D/A轉(zhuǎn)換器來實現(xiàn),單由于其輸出電流的幅值一般在uA數(shù)量級,因此需要進行電流放大若干倍才能達到所需要的要求電流值,電路實現(xiàn)很困難。若選擇電壓輸出型DAC,再通過V-I轉(zhuǎn)換電路變成與之成比例的電流信號,則電路實現(xiàn)相對簡單,因此設(shè)計直流電源時常采用該種方案實現(xiàn),在這種方案中,V/I轉(zhuǎn)換電路設(shè)計是關(guān)鍵。通常的V/I轉(zhuǎn)換有兩種方式,一種是負載共地的方式,一種是負載共電源的方式。我們選用的是負載共地的方式,因為有很多電路負載在連接的時候需要進行共地。R6為電流反饋采樣電阻,R5為限流電阻,RL為負載電阻。R7為A/D轉(zhuǎn)換采樣電阻,R6采樣到的電流信號加到電路

4、的輸入端,構(gòu)成電流并聯(lián)負反饋電路。由虛斷知,運算放大器輸入端沒有電流流過,則 (Vi V2)/R1= (V1 V4)/R2 a同理 (V3 V2)/R3 = V2/R4 b由虛短知 V1 = V2 c如果R1=R2=R4=R3,則由abc式得V3-V4=Vi上式說明R6兩端的電壓和輸入電壓Vi相等,則通過R7和RL的電流I=Vi/R6。如果負載RL<<100K,且運算放大器的放大增益足夠大時,通過負載RL的電流僅有輸入電壓Vi決定,并且I=Vi/R6。所以R1、R2、R3、R4選用100k。為了方便采樣,我們選擇R6為1電阻。Vi為01V,我們做的恒流源輸出電流在0100mA,R6

5、=1/0.1=10。為了擴大電流的輸出能力,在上電路的負反饋沒有通過電阻直接反饋,而是串聯(lián)了三極管的發(fā)射結(jié),進行電流放大。因為在恒流源電路中,MOSFET管的輸入電容太大,而一般運放的輸出 電阻都在幾十歐姆以上,會造成閉環(huán)的延遲,而高增益的閉環(huán)負反饋中的遲延很容易振蕩,三極管的放大倍數(shù)選大些,也可以用復(fù)合管,實際上電阻的誤差比三極管 基極電流的影響可能要大,還可以通過調(diào)節(jié)電阻的值來調(diào)節(jié).所以我們選用的是三級管而不是MOSFET管。第3章 MSP430F149單片機及電源3.1 MSP430F149單片機 MSP430F149單片機是一個 16 位的、具有精簡指令集的、超低功耗的混合型單片機。由

6、于它具有極低的功耗、達到60KB的FLASH容量、豐富的片內(nèi)外設(shè)和相對較小的體積及方便靈活的開發(fā)環(huán)境,已成為眾多單片機系列中一顆耀眼的“芯星”。開發(fā)板資源描述:【1】.板載MSP430F149芯片【2】.集成USB型BSL編程器(對自身或其他板子進行bsl編程)【3】.提供32.768KHZ和8MHZ兩種晶振連接方式【4】.采用USB供電和程序下載,優(yōu)質(zhì)電容濾波【5】.采用標準JTAG接口(14針),支持硬件仿真?!?】.所有IO口(包括AD電源等)均引出(未焊接排針,可自己向上或向下焊接)?!?】.4路彩色LED全部上拉,可以借此觀察程序運行狀態(tài)?!?】.2個優(yōu)質(zhì)獨立按鍵?!?】.板載手動復(fù)

7、位電路?!?0】.板載蜂鳴器電路,可做音樂實驗等?!?1】.提供NRF24L01+無線模塊接口?!?2】.板子集成USB轉(zhuǎn)串口功能?!?3】.向外提供3.3v和5v電源排針。 MSP430的端口有P1、P2、P3、P4、P5、P6、S和COM(型號不同,包含的端口也不僅相同,如MSP430X11X系列只有P1,P2端口,而MSP430X4XX系列則包含全部上述端口),它們都可以直接用于輸入/輸出。MSP430系統(tǒng)中沒有專門的輸入/輸出指令,輸入/輸出操作通過傳送指令來實現(xiàn)。端口P1P6的每一位都可以獨立用于輸入/輸出,即具有位尋址功能。常見的鍵盤接口可以直接用端口進行模擬,用查詢或者

8、中斷方式控制。由于MSP430的端口只有數(shù)據(jù)口,沒有狀態(tài)口或控制口,在實際應(yīng)用中,如在查詢式輸入/輸出傳送時,可以用端口的某一位或者幾位來傳送狀態(tài)信息,通過查詢對應(yīng)位的狀態(tài)來確定外設(shè)是否處于“準備好”狀態(tài)。 端口的功能。(1)P1,P2端口: I/O,中斷功能,其他片內(nèi)外設(shè)功能如定時器、比較器;(2)P3,P4P5P6端口:I/O,其他片內(nèi)外設(shè)功能如SPI、UART模式,A/D轉(zhuǎn)換等;(3)S,COM端口:I/O,驅(qū)動液晶。MSP430各端口具有豐富的控制寄存器供用戶實現(xiàn)相應(yīng)的操作。其中P1,P2具有7個寄存器,P3P6具有4個寄存器。通過設(shè)置寄存器我們可以實現(xiàn):(1)每個I/O位獨立編程;(

9、2)任意組合輸入,輸出和中斷;(3)P1,P2所有8個位全部可以用作外部中斷處理;(4)可以使用所以指令對寄存器操作;(5)可以按字節(jié)輸入、輸出,也可按位進行操作。端口P1,P2的功能可以通過它們的7個控制寄存器來實現(xiàn)。這里,Px代表P1或P2。(1)PxDIR:輸入/輸出方向寄存器。 8位相互獨立,可以分別定義8個引腳的輸入/輸出方向。8位再PUC后都被復(fù)位。使用輸入/輸出功能時,應(yīng)該先定義端口的方向 。作為輸入時只能讀,作為輸出時,可讀可寫。0:輸入模式;1:輸出模式。如:P1DIR|=BIT4; /P1.4輸出 ,P2DIR=0XF0; /高4位輸出,低4位輸入。(2)PXIN:輸入寄存

10、器,為只讀寄存器。用戶不能對它進行寫入,只能通過讀取其寄存器的內(nèi)容來知道I/O口的輸入信號。所以其引腳的方向要選為輸入。如再鍵盤鍵盤掃描程序中經(jīng)常要讀取行線或者列線的端口寄存器值來判斷案件情況。例如:unsigned char key;P1DIR&=BIT4; /P1.4輸入key=P1IN&0X10; /輸出端口P1.4的值(3)PXOUT:輸出寄存器。該寄存器為I/O端口的輸出緩沖寄存器,再讀取時輸出緩存的內(nèi)容與引腳方向定義無關(guān)。改變方向寄存器的內(nèi)容,輸出緩存的內(nèi)容不受影響。如:PIOUT|=0X01; /P1.0輸出1 , PIOUT&=0X01; /P1.0輸出

11、0 。(4)PXIFG:中斷標志寄存器。他的8個標志位標志相應(yīng)引腳是否有中斷請求有待處理。0:無中斷請求, 1:有中斷請求。其中斷標志分別為PXIFG.0PXIFG.7。應(yīng)該注意的是:PXIFG.0PXIFG.7共用一個中斷向量,為多源中斷。當任一事件引起的中斷進行處理時,PXIFG.0PXIFG.7不會自動復(fù)位,必須由軟件來判斷是對哪一個事件,并將相應(yīng)的標志復(fù)位。另外,外部中斷事件的時間必須保持不低于1.5倍的MCLK時間,以保證中斷請求被接受,且使相應(yīng)中斷標志位置位。(5)PXIES:中斷觸發(fā)沿選擇寄存器。如果允許PX口的某個引腳中斷,還需定義該引腳的中斷觸發(fā)方式。0:上升沿觸發(fā)使相應(yīng)標志

12、置位,1:下降沿觸發(fā)相應(yīng)標志置位。如:MOV.B #07H, &P1IES ;p1低3位下降沿觸發(fā)中斷。(6)PXIE:中斷使能寄存器。PX口的每一個引腳都有一位用以控制該引腳是否允許中斷。0:禁止中斷 ,1:允許中斷。MOV.B #0E0H, &P2IE ;P2高3位允許中斷。(7)PXSEL:功能選擇寄存器。P1,P2兩端口還具有其他片內(nèi)外設(shè)功能,將這些功能與芯片外的聯(lián)系通過復(fù)用P1,P2引腳的方式來實現(xiàn)。PXSEL用來選擇引腳的I/O端口功能與外圍模塊功能。0:選擇引腳為I/O端口,1:選擇引腳為外圍模塊功能。如:P1SEL|=0X10; /P1.4為外圍模塊功能。端口P

13、3、P4、P5、P6沒有中斷能力,其余功能同PI,P2。除掉端口P1,P2與中斷相關(guān)的3個寄存器,端口P3,P4,P5,P6的4個寄存器(用法同P1,P2)分別為PXDIR,PXIN,PXOUT,PXSEL可供用戶使用。端口COM和S,他們實現(xiàn)與液晶片的直接接口。COM為液晶片的公共端,S為液晶片的段碼端。液晶片輸出端也可經(jīng)軟件配置為數(shù)字輸出端口。 3.2 電源模塊:5v12v 佰嘉達 D-120A 雙組電源佰嘉達 D-120A 雙組電源是開關(guān)電源(英文:Switching Mode Power Supply),又稱交換式電源、開關(guān)變換器,是一種高頻化電能轉(zhuǎn)換裝置

14、。其功能是將一個位準的電壓,透過不同形式的架構(gòu)轉(zhuǎn)換為用戶端所需求的電壓或電流。開關(guān)電源體積小、重量輕:由于沒有工頻變壓器,所以體積和重量只有線性電源的2030%。功耗小、效率高:功率晶體管工作在開關(guān)狀態(tài),所以晶體管上的功耗小,轉(zhuǎn) 化效率高,一般為6070%,而線性電電源只有3040%。所以選擇開關(guān)電源轉(zhuǎn)化和提供12V和5V電壓。第4章 DA模塊 因為MSP430F149單片機內(nèi)部并沒有內(nèi)置DAC12模塊,所以必須外接DAC芯片進行DA轉(zhuǎn)換??紤]到恒流源的精度和步進的大小,我們決定使用12位的DAC芯片來進行DA轉(zhuǎn)換。經(jīng)過挑選,我們使用12位的TLV5618。其連接圖如下DA模塊電路圖特性雙通道

15、12位電壓輸出型 DAC 可編程設(shè)置時間:3uS10uS 兼容 TMS320和 SPI接口可直接代替TLC5618應(yīng)用數(shù)字電路控制 數(shù)字偏移及增益控制 工業(yè)生產(chǎn)控制 機器和自動控制裝第5章 AD模塊 這里采用的是MSP430F149單片機內(nèi)部的ADC12模塊,需在單片機外接如圖所示的一些元件輔助芯片。ADC12提供4種轉(zhuǎn)換模式:單通道單次轉(zhuǎn)換序列通道單次轉(zhuǎn)換單通道多次轉(zhuǎn)換序列通道多次轉(zhuǎn)換這里我們只用單通道單次轉(zhuǎn)換對選定的通道進行單次轉(zhuǎn)換要進行如下設(shè)置:x=CSStartAdd,指向轉(zhuǎn)換開始地址ADC12MEMx存放轉(zhuǎn)換結(jié)果ADC12IFG.x為對應(yīng)的中斷標志ADC12MCTLx寄存器中定義了通

16、道和參考電壓轉(zhuǎn)換完成時必須使ENC再次復(fù)位并置位(上升沿),以準備下一次轉(zhuǎn)換。在ENC復(fù)位并再次置位之前的輸入信號將被忽略。 AD模塊電路圖 不論用戶使用何種轉(zhuǎn)換模式,都要處理以下問題:設(shè)置具體模式輸入模擬信號關(guān)注轉(zhuǎn)換結(jié)束信號存放轉(zhuǎn)換數(shù)據(jù)以及采用查詢或者中斷方式讀取數(shù)據(jù)二、ADC12寄存器說明1ADC12CTL0 控制寄存器0,各位定義:151211876543210SHT1SHT0MSC2.5VREFONADC12ONADC12TOVIEADC12TVIEENCADC12SCADC12SC采樣/轉(zhuǎn)換控制位。在不同條件下,ADC12SC的含義如下所示:ENC轉(zhuǎn)換允許位。0:ADC12

17、為初始狀態(tài),不能啟動A/D轉(zhuǎn)換;1:首次轉(zhuǎn)換由SAMPCON上升沿啟動ADC12TVIE轉(zhuǎn)換時間溢出中斷允許位(當前轉(zhuǎn)換還沒完成時,又發(fā)生一次采樣請求,則會發(fā)生轉(zhuǎn)換時間溢出)0:沒發(fā)生轉(zhuǎn)換時間溢出1:發(fā)生轉(zhuǎn)換時間溢出ADC12OVIE溢出中斷允許位(當ADC12MEMx中原有數(shù)據(jù)還沒有讀出,而又有新的轉(zhuǎn)換結(jié)果數(shù)據(jù)要寫入時,則發(fā)生溢出)0:沒發(fā)生溢出1:發(fā)生溢出ADC12ONADC12內(nèi)核控制位0:關(guān)閉ADC12內(nèi)核1:打開ADC12內(nèi)核REFON參考電壓控制位0:內(nèi)部參考電壓發(fā)生器關(guān)閉1:內(nèi)部參考電壓發(fā)生器打開2.5V內(nèi)部參考電壓的電壓值選擇位0:選擇1.5V內(nèi)部參考電壓1:選擇2.5V內(nèi)部參

18、考電壓MSC多次采樣轉(zhuǎn)換位(CONSEQ<>0表示當前轉(zhuǎn)換模式不是單通道單次轉(zhuǎn)換)SHT1、SHT0采樣保持定時器1,采樣保持定時器0分別定義保存在轉(zhuǎn)換結(jié)果寄存器ADC12MEM8ADC12MEM15和ADC12MEM0ADC12MEM7中的轉(zhuǎn)換采樣時序與采樣時鐘ADC12CLK的關(guān)系。采樣周期是ADC12CLK周期乘4的整數(shù)倍。2ADC12CTL1 轉(zhuǎn)換控制寄存器1(大多數(shù)315位,只有在ENC=0時才可被修改),各位定義:1512111098754、32、10CSSTARTADDSHSSHPISSHADC12DIVADC12SSELCONSEQADC12BUSYCSS

19、TARTADD轉(zhuǎn)換存儲器地址位。該4位所表示的二進制數(shù)015分別對應(yīng)ADC12MEM015??梢远x單次轉(zhuǎn)換地址或序列轉(zhuǎn)換的首地址。SHS采樣觸發(fā)輸入源選擇位。SHP采樣信號(SAMPCON)選擇控制位。ISSH采樣輸入信號方向控制位ADC12DIVADC12時鐘源分頻因子選擇位。分頻因子為該3位二進制數(shù)加1ADC12SSELADC12內(nèi)核時鐘源選擇CONSEQ轉(zhuǎn)換模式選擇位ADC12BUSYADC12忙標志(只用于單通道單次轉(zhuǎn)換模式,在其它轉(zhuǎn)換模式下,該位無效)3ADC12MEM0ADC12MEM15 轉(zhuǎn)換存儲寄存器該組寄存器均為16位寄存器,用來存放A/D轉(zhuǎn)換結(jié)果。中用其中低12

20、位,高4位在讀出時為04ADC12MCTLx 轉(zhuǎn)換存儲控制寄存器(所有位只有在ENC為低電平時可修改,在POR時各位被復(fù)位)對于每個轉(zhuǎn)換存儲器有一個對應(yīng)的轉(zhuǎn)換存儲器控制寄存器,所以在進行CSSTARTADD轉(zhuǎn)換存儲器地址位設(shè)置的同時,也確定了ADC12MCTLx。5ADC12IFG 中斷標志寄存器 為16位,其中中斷標志位ADC12IFG.x對應(yīng)于轉(zhuǎn)換存儲寄存器ADC12MEMx:ADC12IFG.x置位:轉(zhuǎn)換結(jié)束,并且轉(zhuǎn)換結(jié)果已經(jīng)裝入轉(zhuǎn)換存儲寄存器。ADC12IFG.x復(fù)位:ADC12MEMx被訪問。6ADC12IE 中斷使能寄存器 為16位

21、,對應(yīng)于ADC12IFG寄存器:ADC12IE.x=1:允許相應(yīng)的中斷標志位ADC12IFG.x在置位時發(fā)生的中斷請求服務(wù)。ADC12IE.x=0:禁止相應(yīng)的中斷標志位ADC12IFG.x在置位時發(fā)生的中斷請求服務(wù)。7ADC12IV 中斷向量寄存器ADC12是一個多源中斷:有18個中斷標志(ADC12IFG.0ADC12IFG.15與ADC12TOV,ADC12OV),但只有一個中斷向量。所以需要設(shè)置這18個標志的優(yōu)先級順序,按照優(yōu)先級順序安排中斷標志的響應(yīng),高優(yōu)先級的請求可以中斷正在服務(wù)的低優(yōu)先級。各中斷標志會產(chǎn)生一個036的偶數(shù)。ADC12OV和ADC12TOV會在訪問ADC12

22、IV后自動復(fù)位。但在響應(yīng)了ADC12IFG.x標志對應(yīng)的中斷服務(wù)之后,相應(yīng)的標志不自動復(fù)位,用以保證能處理發(fā)生溢出的情況。第6章 鍵盤模塊和顯示器模塊6.1 鍵盤模塊4X4鍵盤電路圖鍵盤在單片機系統(tǒng)中用得非常廣泛。當按鍵多而且單片機的I/O口有限時,往往要考慮的是矩陣式鍵盤。其中有兩種方式可以實現(xiàn)矩陣式鍵盤:一種是利用純硬件完成解碼的稱為“編碼鍵盤”;另外一種是利用軟件實現(xiàn)解碼的稱為“非編碼鍵盤”。在單片機系統(tǒng)中,只要單片機有空余的時間來解碼時,我們往往利用的是軟件解碼的形式,即“非編碼鍵盤”來實現(xiàn)矩陣鍵盤。這樣可以節(jié)約成本。軟件原理為掃描鍵盤矩陣時,每次只有一行電平拉低。在逐次掃描拉低的這些

23、行的同時,去讀那些列的電平。;被拉低的行上,按下的鍵對應(yīng)的列的電平為0 ,其它為1. 用左移位的指令,在進位位CY里就可以檢測出是0還是1.為1表示無按下,;為0表示該鍵按下。在掃描按鍵時,如無按下,則取碼指針R1加1后,繼續(xù)掃描 。如有鍵按下,轉(zhuǎn)按鍵處理子程序,按鍵按下標志位;F0清0(表示按下)。此時,取碼指針的值,就是按鍵的鍵名。 隨后繼續(xù)進入按鍵檢測子程序重新掃描。 每個按鍵有它的行值和列值 ,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。每個按鍵的狀態(tài)同樣需變成數(shù)字量“0”和“1”,開關(guān)的一端(列線)通過電阻接VCC,而接地是通過程序輸出數(shù)字

24、“0”實現(xiàn)的。鍵盤處理程序的任務(wù)是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態(tài)接地,另一個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵的功能。 鍵盤連接成4×4的矩陣形式,占用單片機P1口的8根線,行信號是P5.0-5.3,列信號是P5.4-5.7。789復(fù)位456小數(shù)點123清除一位0輸出暫停確認按鍵對應(yīng)功能圖6.2 1602液晶顯示模塊工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)注:為了表示的方便 ,后文皆以1表示高電平,0表示低

25、電平。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。 1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。 目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型

26、液晶。管腳功能1602采用標準的16腳接口,其中:第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高。第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。第6腳:E(或EN)端為使能(enable)端,高電平(1)時讀取信息,負跳變時執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負極。特性3.3V或5V工作電壓,對比度可調(diào)內(nèi)含復(fù)位電路提供各種控制命令,如:

27、清屏、字符閃爍、光標閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM內(nèi)建有192個5X7點陣的字型的字符發(fā)生器CGROM8個可由用戶自定義的5X7的字符發(fā)生器CGRAM指令集1602通過D0D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置: (初始化)0011 0000 0x38 設(shè)置16×2顯示,5×7點陣,8位數(shù)據(jù)接口;顯示開關(guān)及光標設(shè)置: (初始化)0000 1DCB D顯示(1有效)、C光標顯示(1有效)、B光標閃爍(1有效)0000 01NS N=1(讀或?qū)懸粋€字符后地址指針加1 &光標加1),N=0(讀或?qū)懸粋€字符后地址指針減1 &光標減1

28、),S=1 且 N=1 (當寫一個字符后,整屏顯示左移)s=0 當寫一個字符后,整屏顯示不移動數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H)其他設(shè)置:01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車,數(shù)據(jù)指針=0)。第7章 軟件設(shè)計開始初始化鍵按下按下?沒有有按鍵按下讀取鍵值key_Flag標志位置1判斷是否按過確認鍵?AD轉(zhuǎn)換使能有按鍵按下有確認鍵按下輸出鍵按下?有輸出鍵按下DA轉(zhuǎn)換判斷電流是否為鍵入值步進加減1是否各鍵值功能執(zhí)行Flag是否為1是Flag清0否第8章 實驗總結(jié) 經(jīng)測試,此數(shù)控恒流源在0100mA時可適用負載的電阻范

29、圍為069.。在50mA時相對誤差為0,在10mA時顯示電流比電流表小1.5mA,在100mA時顯示電流比電流表大1.5mA。并且其誤差值近視拋物線。經(jīng)分析,我們認為是一方面因為DA采樣信號經(jīng)過LM358放大10倍時誤有一定的誤差,并不是絕對的十倍,故造成其輸出值不是理想狀態(tài)。另一方面是因為單片機的ADC模塊的參考電壓不是很準確,也造成一定影響。附錄1:實物圖 附錄2:程序清單#include <msp430x14x.h>#include "Keypad.h"#include "cry1602.h"#define uchar unsigned

30、 char#define uint unsigned int#define Num_of_Results 32uchar shuzi = "0123456789."static uint resultsNum_of_Results; /保存ADC轉(zhuǎn)換結(jié)果的數(shù)組 void Trans_val(uint Hex_Val); void DA_conver(uint dig);void shuzishuru(uint shuzi);void Write_A_B(uint data_a,uint data_b,uchar channal,uchar model);/提示語句: uch

31、ar Strings="Please enter the current value:" uchar ceshi1="No data" uchar ceshi2="Less than 100 mA" uchar ceshi3="A:" uchar ceshi4="B:" uchar ceshi5="mA"/引用外部變量的聲明 extern unsigned char key_val; extern unsigned char key_Flag; unsigned long D

32、ianliu2,Dianliu3;uint Dianliu1,zheng,daxiao, com,VV;uchar dianliu110,dianliu210,display10;/display要求輸出的電流,dianliu2實際輸出的電流,dianliu1鍵入的電流uint z,y,h,q,j,k,a;uint n,nn,m,mm;/電流值的位數(shù)(整數(shù)部分,小數(shù)部分)uint d,dd;/小數(shù)點標志1為有小數(shù) / 0為沒小數(shù) void main(void) z=1;/按鍵后清除,重新輸入標志 y=0;/y字符數(shù)字轉(zhuǎn)整型數(shù)字(使用后歸零) h=0;/0,1確認鍵標志符0:未按過;1按過 q=

33、0;/DA轉(zhuǎn)換結(jié)果輸出位數(shù) j=0;/AD輸出位 k=0;/AD轉(zhuǎn)換結(jié)束位 a=0;/AD顯示取平均 n=0; nn=0; m=0; mm=0; d=0; dd=0; Dianliu1=0; Dianliu2=0; Dianliu3=0; zheng=0; daxiao=0; com=0; VV=0; WDTCTL = WDTPW + WDTHOLD; /關(guān)閉看門狗 Init_Keypad(); LcdReset(); DispNChar(0,0,31,Strings); /AD初始化 P6SEL |= 0x01; / 使能ADC通道 ADC12CTL0 = ADC12ON+SHT0_8+MS

34、C+REFON+REF2_5V; ADC12CTL1 = SHP+CONSEQ_2; ADC12MCTL0 = SREF_1; ADC12IE = 0x01; / 使能ADC中斷 _EINT(); while(1) Key_Event(); /電流實時檢測 if(h=1) ADC12CTL0 |= ENC; / 使能轉(zhuǎn)換 ADC12CTL0 |= ADC12SC; / 開始轉(zhuǎn)換 while(k=0); k=0; if(q=1) if(Dianliu2<VV) if(com<2400)com=com+1; else if(Dianliu2>VV) if(com>0)com

35、=com-1; if(com<2400)Write_A_B(com,0x0000,1,0); /A通道,慢速模式 /調(diào)整da的輸出,注意是否接入負載,有電流 /* int qwe; qwe =Dianliu2%100/10; Disp1Char(0,1,shuziqwe);*/ if(key_Flag = 1) key_Flag = 0; if (key_val!=0)&&(z=1) LcdWriteCommand(0x01, 1); DispNChar(14,0,2,ceshi5); DispNChar(8-(m+n+d+1)/2,0,n+m+d,dianliu1);

36、z=0; /顯示清屏(z清屏標志) else if (key_val!=0)&&(z=2) LcdWriteCommand(0x01, 1); DispNChar(0,0,2,ceshi3); DispNChar(2,0,nn+2*mm,display); DispNChar(8,0,2,ceshi4); DispNChar(14,1,2,ceshi5); DispNChar(8-(m+n+d+1)/2,1,n+m+d,dianliu1); z=0; switch(key_val) case 1: Init_Keypad(); LcdReset(); DispNChar(0,0

37、,31,Strings); Dianliu1=0; Dianliu2=0; Dianliu3=0; zheng=0; daxiao=0; z=1; y=0; n=0; m=0; h=0; d=0; a=0; nn=0; mm=0; dd=0; com=0; VV=0; q=0; j=0;/AD輸出位 k=0;/AD轉(zhuǎn)換結(jié)束位 Write_A_B(com,0x0000,1,0); /A通道,慢速模式 break; case 2: if(n<3&&d=0)|(m<1&&d=1) shuzishuru(9); break; else break; case 3: if(n<3&&d=0)|(m<1&&d=1) shuzishuru(8); break; else break; case 4: if(n<3&&d=0)|(m<1&&d=1) shuzishuru(7); break; else break; case 5:/小數(shù)點 if(d=0) d=1; if(n!=0) dianliu1n='.' else dianliu1n='0' n

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論