數(shù)控恒流源設(shè)計(jì)報(bào)告加程序樣本_第1頁
數(shù)控恒流源設(shè)計(jì)報(bào)告加程序樣本_第2頁
數(shù)控恒流源設(shè)計(jì)報(bào)告加程序樣本_第3頁
數(shù)控恒流源設(shè)計(jì)報(bào)告加程序樣本_第4頁
數(shù)控恒流源設(shè)計(jì)報(bào)告加程序樣本_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)控恒流源設(shè)計(jì)報(bào)告背景數(shù)控恒流源是單片機(jī)運(yùn)用數(shù)字控制技術(shù)控制恒流源一種設(shè)計(jì)方案。當(dāng)前,數(shù)字化數(shù)控恒流源應(yīng)用,隨著電子技術(shù)發(fā)展使用范疇越來越廣,在電子測量儀器、激光、傳感技術(shù)、超導(dǎo)、當(dāng)代通信等高新技術(shù)領(lǐng)域,恒流源都被廣泛應(yīng)用,且發(fā)展前景較為良好。同步,也不但局限于此。電子領(lǐng)域,數(shù)控恒壓技術(shù)已經(jīng)很成熟,但是恒流方面特別是數(shù)控恒流技術(shù)是有待發(fā)展,高性能數(shù)控恒流器件開發(fā)和應(yīng)用存在巨大發(fā)展空間。因此設(shè)計(jì)一種數(shù)控恒流源方案來提高恒流源穩(wěn)定性、合用范疇以及精度很有必要。目錄 第一章設(shè)計(jì)方案第二章恒流電路第三章MSP430F149單片機(jī)及電源第四章AD模塊第五章DA模塊第六章鍵盤模塊和顯示模塊第七章軟件設(shè)計(jì)第八章實(shí)驗(yàn)總結(jié)設(shè)計(jì)方案本設(shè)計(jì)本設(shè)計(jì)是基于單片機(jī)控制直流恒流源,分為如下幾種構(gòu)成某些:單片機(jī)控制系統(tǒng)、A/D和D/A轉(zhuǎn)換模塊、電源模塊、恒流源模塊、負(fù)載及鍵盤液晶顯示模塊,系統(tǒng)框圖如圖所示。系統(tǒng)框圖用430單片機(jī)作為整機(jī)控制單元,通過變化D/A轉(zhuǎn)換器輸入數(shù)字量來變化輸出電壓值,從而間接地變化壓控恒流源輸出電流大小。為了可以使系統(tǒng)具備檢測實(shí)際輸出電流值大小,可以將電流轉(zhuǎn)換成電壓,并通過A/D轉(zhuǎn)換器進(jìn)行模數(shù)轉(zhuǎn)換,用單片機(jī)實(shí)時(shí)對電壓進(jìn)行采樣,與輸入預(yù)期值比較,并通過430單片機(jī)進(jìn)行進(jìn)行數(shù)據(jù)解決微調(diào)輸出,提高精度實(shí)時(shí)顯示。恒流電路數(shù)控直流電流源可以采用電流輸出型D/A轉(zhuǎn)換器來實(shí)現(xiàn),單由于其輸出電流幅值普通在uA數(shù)量級,因而需要進(jìn)行電流放大若干倍才干達(dá)到所需要規(guī)定電流值,電路實(shí)現(xiàn)很困難。若選取電壓輸出型DAC,再通過V-I轉(zhuǎn)換電路變成與之成比例電流信號,則電路實(shí)現(xiàn)相對簡樸,因而設(shè)計(jì)直流電源時(shí)常采用該種方案實(shí)現(xiàn),在這種方案中,V/I轉(zhuǎn)換電路設(shè)計(jì)是核心。普通V/I轉(zhuǎn)換有兩種方式,一種是負(fù)載共地方式,一種是負(fù)載共電源方式。咱們選用是負(fù)載共地方式,由于有諸多電路負(fù)載在連接時(shí)候需要進(jìn)行共地。R6為電流反饋采樣電阻,R5為限流電阻,RL為負(fù)載電阻。R7為A/D轉(zhuǎn)換采樣電阻,R6采樣到電流信號加到電路輸入端,構(gòu)成電流并聯(lián)負(fù)反饋電路。由虛斷知,運(yù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。如果負(fù)載RL<<100KΩ,且運(yùn)算放大器放大增益足夠大時(shí),通過負(fù)載RL電流僅有輸入電壓Vi決定,并且I=Vi/R6。因此R1、R2、R3、R4選用100kΩ。為了以便采樣,咱們選取R6為1Ω電阻。Vi為0~1V,咱們做恒流源輸出電流在0~100mA,R6=1/0.1=10Ω。為了擴(kuò)大電流輸出能力,在上電路負(fù)反饋沒有通過電阻直接反饋,而是串聯(lián)了三極管發(fā)射結(jié),進(jìn)行電流放大。由于在恒流源電路中,MOSFET管輸入電容太大,而普通運(yùn)放輸出電阻都在幾十歐姆以上,會導(dǎo)致閉環(huán)延遲,而高增益閉環(huán)負(fù)反饋中遲延很容易振蕩,三極管放大倍數(shù)選大些,也可以用復(fù)合管,事實(shí)上電阻誤差比三極管基極電流影響也許要大,還可以通過調(diào)節(jié)電阻值來調(diào)節(jié).因此咱們選用是三級管而不是MOSFET管。MSP430F149單片機(jī)及電源3.1MSP430F149單片機(jī)MSP430F149單片機(jī)是一種16位、具備精簡指令集、超低功耗混合型單片機(jī)。由于它具備極低功耗、達(dá)到60KBFLASH容量、豐富片內(nèi)外設(shè)和相對較小體積及以便靈活開發(fā)環(huán)境,已成為眾多單片機(jī)系列中一顆耀眼“芯星”。開發(fā)板資源描述:【1】.板載MSP430F149芯片【2】.集成USB型BSL編程器(對自身或其她板子進(jìn)行bsl編程)【3】.提供32.768KHZ和8MHZ兩種晶振連接方式【4】.采用USB供電和程序下載,優(yōu)質(zhì)電容濾波【5】.采用原則JTAG接口(14針),支持硬件仿真?!?】.所有IO口(涉及AD電源等)均引出(未焊接排針,可自己向上或向下焊接)?!?】.4路彩色LED所有上拉,可以借此觀測程序運(yùn)營狀態(tài)?!?】.2個(gè)優(yōu)質(zhì)獨(dú)立按鍵?!?】.板載手動復(fù)位電路?!?0】.板載蜂鳴器電路,可做音樂實(shí)驗(yàn)等?!?1】.提供NRF24L01+無線模塊接口。【12】.板子集成USB轉(zhuǎn)串口功能?!?3】.向外提供3.3v和5v電源排針。

MSP430端口有P1、P2、P3、P4、P5、P6、S和COM(型號不同,包括端口也不但相似,如MSP430X11X系列只有P1,P2端口,而MSP430X4XX系列則包括所有上述端口),它們都可以直接用于輸入/輸出。MSP430系統(tǒng)中沒有專門輸入/輸出指令,輸入/輸出操作通過傳送指令來實(shí)現(xiàn)。端口P1`P6每一位都可以獨(dú)立用于輸入/輸出,即具備位尋址功能。常用鍵盤接口可以直接用端口進(jìn)行模仿,用查詢或者中斷方式控制。由于MSP430端口只有數(shù)據(jù)口,沒有狀態(tài)口或控制口,在實(shí)際應(yīng)用中,如在查詢式輸入/輸出傳送時(shí),可以用端口某一位或者幾位來傳送狀態(tài)信息,通過查詢相應(yīng)位狀態(tài)來擬定外設(shè)與否處在“準(zhǔn)備好”狀態(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各端口具備豐富控制寄存器供顧客實(shí)現(xiàn)相應(yīng)操作。其中P1,P2具備7個(gè)寄存器,P3~P6具備4個(gè)寄存器。通過設(shè)立寄存器咱們可以實(shí)現(xiàn):(1)每個(gè)I/O位獨(dú)立編程;(2)任意組合輸入,輸出和中斷;(3)P1,P2所有8個(gè)位所有可以用作外部中斷解決;(4)可以使用因此指令對寄存器操作;(5)可以按字節(jié)輸入、輸出,也可按位進(jìn)行操作。端口P1,P2功能可以通過它們7個(gè)控制寄存器來實(shí)現(xiàn)。這里,Px代表P1或P2。(1)PxDIR:輸入/輸出方向寄存器。8位互相獨(dú)立,可以分別定義8個(gè)引腳輸入/輸出方向。8位再PUC后都被復(fù)位。使用輸入/輸出功能時(shí),應(yīng)當(dāng)先定義端口方向。作為輸入時(shí)只能讀,作為輸出時(shí),可讀可寫。0:輸入模式;1:輸出模式。如:P1DIR|=BIT4;//P1.4輸出,P2DIR=0XF0;//高4位輸出,低4位輸入。(2)PXIN:輸入寄存器,為只讀寄存器。顧客不能對它進(jìn)行寫入,只能通過讀取其寄存器內(nèi)容來懂得I/O口輸入信號。因此其引腳方向要選為輸入。如再鍵盤鍵盤掃描程序中經(jīng)常要讀取行線或者列線端口寄存器值來判斷案件狀況。例如:unsignedcharkey;P1DIR&=~BIT4;//P1.4輸入……key=P1IN&0X10;//輸出端口P1.4值……(3)PXOUT:輸出寄存器。該寄存器為I/O端口輸出緩沖寄存器,再讀取時(shí)輸出緩存內(nèi)容與引腳方向定義無關(guān)。變化方向寄存器內(nèi)容,輸出緩存內(nèi)容不受影響。如:PIOUT|=0X01;//P1.0輸出1,PIOUT&=~0X01;//P1.0輸出0。(4)PXIFG:中斷標(biāo)志寄存器。她8個(gè)標(biāo)志位標(biāo)志相應(yīng)引腳與否有中斷祈求有待解決。0:無中斷祈求,1:有中斷祈求。其中斷標(biāo)志分別為PXIFG.0~PXIFG.7。應(yīng)當(dāng)注意是:PXIFG.0~PXIFG.7共用一種中斷向量,為多源中斷。當(dāng)任一事件引起中斷進(jìn)行解決時(shí),PXIFG.0~PXIFG.7不會自動復(fù)位,必要由軟件來判斷是對哪一種事件,并將相應(yīng)標(biāo)志復(fù)位。此外,外部中斷事件時(shí)間必要保持不低于1.5倍MCLK時(shí)間,以保證中斷祈求被接受,且使相應(yīng)中斷標(biāo)志位置位。(5)PXIES:中斷觸發(fā)沿選取寄存器。如果容許PX口某個(gè)引腳中斷,還需定義該引腳中斷觸發(fā)方式。0:上升沿觸發(fā)使相應(yīng)標(biāo)志置位,1:下降沿觸發(fā)相應(yīng)標(biāo)志置位。如: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引腳方式來實(shí)現(xiàn)。PXSEL用來選取引腳I/O端口功能與外圍模塊功能。0:選取引腳為I/O端口,1:選取引腳為外圍模塊功能。如:P1SEL|=0X10;//P1.4為外圍模塊功能。端口P3、P4、P5、P6沒有中斷能力,別的功能同PI,P2。除掉端口P1,P2與中斷有關(guān)3個(gè)寄存器,端口P3,P4,P5,P64個(gè)寄存器(用法同P1,P2)分別為PXDIR,PXIN,PXOUT,PXSEL可供顧客使用。端口COM和S,她們實(shí)現(xiàn)與液晶片直接接口。COM為液晶片公共端,S為液晶片段碼端。液晶片輸出端也可經(jīng)軟件配備為數(shù)字輸出端口。3.2電源模塊:5v12v佰嘉達(dá)D-120A雙組電源佰嘉達(dá)D-120A雙組電源是開關(guān)電源(英文:Switching

Mode

Power

Supply),又稱互換式電源、開關(guān)變換器,是一種高頻化電能轉(zhuǎn)換裝置。其功能是將一種位準(zhǔn)電壓,透過不同形式架構(gòu)轉(zhuǎn)換為顧客端所需求電壓或電流。開關(guān)電源體積小、重量輕:由于沒有工頻變壓器,因此體積和重量只有線性電源20~30%。功耗小、效率高:功率晶體管工作在開關(guān)狀態(tài),因此晶體管上功耗小,轉(zhuǎn)化效率高,普通為60~70%,而線性電電源只有30~40%。因此選取開關(guān)電源轉(zhuǎn)化和提供12V和5V電壓。DA模塊由于MSP430F149單片機(jī)內(nèi)部并沒有內(nèi)置DAC12模塊,因此必要外接DAC芯片進(jìn)行DA轉(zhuǎn)換。考慮到恒流源精度和步進(jìn)大小,咱們決定使用12位DAC芯片來進(jìn)行DA轉(zhuǎn)換。通過挑選,咱們使用12位TLV5618。其連接圖如下DA模塊電路圖特性雙通道12位電壓輸出型DAC可編程設(shè)立時(shí)間:3uS—10uS兼容TMS320和SPI接口可直接代替TLC5618應(yīng)用數(shù)字電路控制數(shù)字偏移及增益控制工業(yè)生產(chǎn)控制機(jī)器和自動控制裝AD模塊這里采用是MSP430F149單片機(jī)內(nèi)部ADC12模塊,需在單片機(jī)外接如圖所示某些元件輔助芯片。ADC12提供4種轉(zhuǎn)換模式:單通道單次轉(zhuǎn)換序列通道單次轉(zhuǎn)換單通道多次轉(zhuǎn)換序列通道多次轉(zhuǎn)換這里咱們只用單通道單次轉(zhuǎn)換對選定通道進(jìn)行單次轉(zhuǎn)換要進(jìn)行如下設(shè)立:

x=CSStartAdd,指向轉(zhuǎn)換開始地址

ADC12MEMx存儲轉(zhuǎn)換成果

ADC12IFG.x為相應(yīng)中斷標(biāo)志

ADC12MCTLx寄存器中定義了通道和參照電壓

轉(zhuǎn)換完畢時(shí)必要使ENC再次復(fù)位并置位(上升沿),以準(zhǔn)備下一次轉(zhuǎn)換。在ENC復(fù)位并再次置位之前輸入信號將被忽視。AD模塊電路圖無論顧客使用何種轉(zhuǎn)換模式,都要解決如下問題:設(shè)立詳細(xì)模式

輸入模仿信號

關(guān)注轉(zhuǎn)換結(jié)束信號

存儲轉(zhuǎn)換數(shù)據(jù)以及采用查詢或者中斷方式讀取數(shù)據(jù)二、ADC12寄存器闡明1.ADC12CTL0

控制寄存器0,各位定義:15~1211~876543210SHT1SHT0MSC2.5VREF

ONADC12

ONADC12

TOVIEADC12

TVIEENCADC12

SCADC12SC——采樣/轉(zhuǎn)換控制位。在不同條件下,ADC12SC含義如下所示:ENC——轉(zhuǎn)換容許位。0:ADC12為初始狀態(tài),不能啟動A/D轉(zhuǎn)換;

1:初次轉(zhuǎn)換由SAMPCON上升沿啟動ADC12TVIE——轉(zhuǎn)換時(shí)間溢出中斷容許位(當(dāng)前轉(zhuǎn)換還沒完畢時(shí),又發(fā)生一次采樣祈求,則會發(fā)生轉(zhuǎn)換時(shí)間溢出)0:沒發(fā)生轉(zhuǎn)換時(shí)間溢出

1:發(fā)生轉(zhuǎn)換時(shí)間溢出ADC12OVIE——溢出中斷容許位(當(dāng)ADC12MEMx中原有數(shù)據(jù)還沒有讀出,而又有新轉(zhuǎn)換成果數(shù)據(jù)要寫入時(shí),則發(fā)生溢出)0:沒發(fā)生溢出

1:發(fā)生溢出ADC12ON——ADC12內(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)部參照電壓MSC——多次采樣轉(zhuǎn)換位(CONSEQ<>0表達(dá)當(dāng)前轉(zhuǎn)換模式不是單通道單次轉(zhuǎn)換)SHT1、SHT0——采樣保持定期器1,采樣保持定期器0分別定義保存在轉(zhuǎn)換成果寄存器ADC12MEM8~ADC12MEM15和ADC12MEM0~ADC12MEM7中轉(zhuǎn)換采樣時(shí)序與采樣時(shí)鐘ADC12CLK關(guān)系。采樣周期是ADC12CLK周期乘4整數(shù)倍。2.ADC12CTL1

轉(zhuǎn)換控制寄存器1(大多數(shù)3~15位,只有在ENC=0時(shí)才可被修改),各位定義:15~1211~10987~54、32、10CSSTARTADDSHSSHPISSHADC12

DIVADC12

SSELCONSEQADC12

BUSYCSSTARTADD——轉(zhuǎn)換存儲器地址位。該4位所示二進(jìn)制數(shù)0~15分別相應(yīng)ADC12MEM0~15。可以定義單次轉(zhuǎn)換地址或序列轉(zhuǎn)換首地址。SHS——采樣觸發(fā)輸入源選取位。SHP——采樣信號(SAMPCON)選取控制位。ISSH——采樣輸入信號方向控制位ADC12DIV——ADC12時(shí)鐘源分頻因子選取位。分頻因子為該3位二進(jìn)制數(shù)加1ADC12SSEL——ADC12內(nèi)核時(shí)鐘源選取CONSEQ——轉(zhuǎn)換模式選取位ADC12BUSY——ADC12忙標(biāo)志(只用于單通道單次轉(zhuǎn)換模式,在其他轉(zhuǎn)換模式下,該位無效)3.ADC12MEM0~ADC12MEM15

轉(zhuǎn)換存儲寄存器該組寄存器均為16位寄存器,用來存儲A/D轉(zhuǎn)換成果。中用其中低12位,高4位在讀出時(shí)為04.ADC12MCTLx

轉(zhuǎn)換存儲控制寄存器(所有位只有在ENC為低電平時(shí)可修改,在POR時(shí)各位被復(fù)位)對于每個(gè)轉(zhuǎn)換存儲器有一種相應(yīng)轉(zhuǎn)換存儲器控制寄存器,因此在進(jìn)行CSSTARTADD轉(zhuǎn)換存儲器地址位設(shè)立同步,也擬定了ADC12MCTLx。5.ADC12IFG

中斷標(biāo)志寄存器

為16位,其中中斷標(biāo)志位ADC12IFG.x相應(yīng)于轉(zhuǎn)換存儲寄存器ADC12MEMx:ADC12IFG.x置位:轉(zhuǎn)換結(jié)束,并且轉(zhuǎn)換成果已經(jīng)裝入轉(zhuǎn)換存儲寄存器。

ADC12IFG.x復(fù)位:ADC12MEMx被訪問。6.ADC12IE

中斷使能寄存器

為16位,相應(yīng)于ADC12IFG寄存器:ADC12IE.x=1:容許相應(yīng)中斷標(biāo)志位ADC12IFG.x在置位時(shí)發(fā)生中斷祈求服務(wù)。

ADC12IE.x=0:禁止相應(yīng)中斷標(biāo)志位ADC12IFG.x在置位時(shí)發(fā)生中斷祈求服務(wù)。7.ADC12IV

中斷向量寄存器ADC12是一種多源中斷:有18個(gè)中斷標(biāo)志(ADC12IFG.0~ADC12IFG.15與ADC12TOV,ADC12OV),但只有一種中斷向量。因此需要設(shè)立這18個(gè)標(biāo)志優(yōu)先級順序,按照優(yōu)先級順序安排中斷標(biāo)志響應(yīng),高優(yōu)先級祈求可以中斷正在服務(wù)低優(yōu)先級。各中斷標(biāo)志會產(chǎn)生一種0~36偶數(shù)。ADC12OV和ADC12TOV會在訪問ADC12IV后自動復(fù)位。但在響應(yīng)了ADC12IFG.x標(biāo)志相應(yīng)中斷服務(wù)之后,相應(yīng)標(biāo)志不自動復(fù)位,用以保證能解決發(fā)生溢出狀況。鍵盤模塊和顯示屏模塊6.1鍵盤模塊4X4鍵盤電路圖鍵盤在單片機(jī)系統(tǒng)中用得非常廣泛。當(dāng)按鍵多并且單片機(jī)I/O口有限時(shí),往往要考慮是矩陣式鍵盤。其中有兩種方式可以實(shí)現(xiàn)矩陣式鍵盤:一種是運(yùn)用純硬件完畢解碼稱為“編碼鍵盤”;此外一種是運(yùn)用軟件實(shí)現(xiàn)解碼稱為“非編碼鍵盤”。在單片機(jī)系統(tǒng)中,只要單片機(jī)有空余時(shí)間來解碼時(shí),咱們往往運(yùn)用是軟件解碼形式,即“非編碼鍵盤”來實(shí)現(xiàn)矩陣鍵盤。這樣可以節(jié)約成本。軟件原理為掃描鍵盤矩陣時(shí),每次只有一行電平拉低。在逐次掃描拉低這些行同步,去讀那些列電平。;被拉低行上,按下鍵相應(yīng)列電平為0,其他為1.用左移位指令,在進(jìn)位位CY里就可以檢測出是0還是1.為1表達(dá)無按下,;為0表達(dá)該鍵按下。在掃描按鍵時(shí),如無按下,則取碼指針R1加1后,繼續(xù)掃描。如有鍵按下,轉(zhuǎn)按鍵解決子程序,按鍵按下標(biāo)志位;F0清0(表達(dá)按下)。此時(shí),取碼指針值,就是按鍵鍵名。隨后繼續(xù)進(jìn)入按鍵檢測子程序重新掃描。每個(gè)按鍵有它行值和列值,行值和列值組合就是辨認(rèn)這個(gè)按鍵編碼。矩陣行線和列線分別通過兩并行接口和CPU通信。每個(gè)按鍵狀態(tài)同樣需變成數(shù)字量“0”和“1”,開關(guān)一端(列線)通過電阻接VCC,而接地是通過程序輸出數(shù)字“0”實(shí)現(xiàn)。鍵盤解決程序任務(wù)是:擬定有無鍵按下,判斷哪一種鍵按下,鍵功能是什么;還要消除按鍵在閉合或斷開時(shí)抖動。兩個(gè)并行口中,一種輸出掃描碼,使按鍵逐行動態(tài)接地,另一種并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而辨認(rèn)按鍵,通過軟件查表,查出該鍵功能。鍵盤連接成4×4矩陣形式,占用單片機(jī)P1口8根線,行信號是P5.0-5.3,列信號是P5.4-5.7。789復(fù)位456小數(shù)點(diǎn)123清除一位0輸出暫停確認(rèn)按鍵相應(yīng)功能圖6.21602液晶顯示模塊工業(yè)字符型液晶,可以同步顯示16x02即32個(gè)字符。(16列2行)

注:為了表達(dá)以便,后文皆以1表達(dá)高電平,0表達(dá)低電平。

1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位構(gòu)成,每個(gè)點(diǎn)陣字符位都可以顯示一種字符,每位之間有一種點(diǎn)距間隔,每行之間也有間隔,起到了字符間距和行間距作用,正由于如此因此它不能較好地顯示圖形(用自定義CGRAM,顯示效果也不好)。

1602LCD是指顯示內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。

當(dāng)前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片,控制原理是完全相似,因而基于HD44780寫控制程序可以很以便地應(yīng)用于市面上大某些字符型液晶。⑵管腳功能1602采用原則16腳接口,其中:第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示屏對比度調(diào)節(jié)端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高。第4腳:RS為寄存器選取,高電平1時(shí)選取數(shù)據(jù)寄存器、低電平0時(shí)選取指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端,高電平(1)時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。⑶特性3.3V或5V工作電壓,對比度可調(diào)內(nèi)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等各種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM內(nèi)建有192個(gè)5X7點(diǎn)陣字型字符發(fā)生器CGROM8個(gè)可由顧客自定義5X7字符發(fā)生器CGRAM指令集1602通過D0~D78位數(shù)據(jù)端傳播數(shù)據(jù)和指令。

顯示模式設(shè)立:(初始化)

00110000[0x38]設(shè)立16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口;

顯示開關(guān)及光標(biāo)設(shè)立:(初始化)

00001DCBD顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效)

000001NSN=1(讀或?qū)懸环N字符后地址指針加1&光標(biāo)加1),

N=0(讀或?qū)懸环N字符后地址指針減1&光標(biāo)減1),

S=1且N=1(當(dāng)寫一種字符后,整屏顯示左移)

s=0當(dāng)寫一種字符后,整屏顯示不移動

數(shù)據(jù)指針設(shè)立:

數(shù)據(jù)首地址為80H,因此數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H)

其她設(shè)立:

01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車,數(shù)據(jù)指針=0)。軟件設(shè)計(jì)開始初始化鍵按下按下?沒有有按鍵按下讀取鍵值開始初始化鍵按下按下?沒有有按鍵按下讀取鍵值key_Flag標(biāo)志位置1判斷與否按過確認(rèn)鍵?AD轉(zhuǎn)換使能有按鍵按下有確認(rèn)鍵按下輸出鍵按下?有輸出鍵按下DA轉(zhuǎn)換判斷電流與否為鍵入值步進(jìn)加減1是否各鍵值功能執(zhí)行Flag與否為1是Flag清0否實(shí)驗(yàn)總結(jié)經(jīng)測試,此數(shù)控恒流源在0~100mA時(shí)可合用負(fù)載電阻范疇為0~69.Ω。在50mA時(shí)相對誤差為0,在10mA時(shí)顯示電流比電流表小1.5mA,在100mA時(shí)顯示電流比電流表大1.5mA。并且其誤差值近視拋物線。經(jīng)分析,咱們以為是一方面由于DA采樣信號通過LM358放大10倍時(shí)誤有一定誤差,并不是絕對十倍,故導(dǎo)致其輸出值不是抱負(fù)狀態(tài)。另一方面是由于單片機(jī)ADC模塊參照電壓不是很精確,也導(dǎo)致一定影響。附錄1:實(shí)物圖附錄2:程序清單#include<msp430x14x.h>#include"Keypad.h"#include"cry1602.h"#defineucharunsignedchar#defineuintunsignedint#defineNum_of_Results32ucharshuzi[]={"."};staticuintresults[Num_of_Results];//保存ADC轉(zhuǎn)換成果數(shù)組voidTrans_val(uintHex_Val);voidDA_conver(uintdig);voidshuzishuru(uintshuzi);voidWrite_A_B(uintdata_a,uintdata_b,ucharchannal,ucharmodel);//提示語句:ucharStrings[]={"Pleaseenterthecurrentvalue:"};ucharceshi1[]={"Nodata"};ucharceshi2[]={"Lessthan100mA"};ucharceshi3[]={"A:"};ucharceshi4[]={"B:"};ucharceshi5[]={"mA"};//引用外部變量聲明externunsignedcharkey_val;externunsignedcharkey_Flag;unsignedlongDianliu2,Dianliu3;uintDianliu1,zheng,daxiao,com,VV;uchardianliu1[10],dianliu2[10],display[10];//display規(guī)定輸出電流,dianliu2實(shí)際輸出電流,dianliu1鍵入電流uintz,y,h,q,j,k,a;uintn,nn,m,mm;//電流值位數(shù)(整數(shù)某些,小數(shù)某些)uintd,dd;//小數(shù)點(diǎn)標(biāo)志1為有小數(shù)//0為沒小數(shù)voidmain(void){z=1;//按鍵后清除,重新輸入標(biāo)志y=0;//y字符數(shù)字轉(zhuǎn)整型數(shù)字(使用后歸零)h=0;//0,1確認(rèn)鍵標(biāo)志符0:未按過;1按過q=0;//DA轉(zhuǎn)換成果輸出位數(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+MSC+REFON+REF2_5V;ADC12CTL1=SHP+CONSEQ_2;;ADC12MCTL0=SREF_1;ADC12IE=0x01;//使能ADC中斷_EINT();while(1){Key_Event();//電流實(shí)時(shí)檢測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;}elseif(Dianliu2>VV){if(com>0)com=com-1;}if(com<2400)Write_A_B(com,0x0000,1,0);//A通道,慢速模式}//調(diào)節(jié)da輸出,注意與否接入負(fù)載,有電流/*intqwe;qwe=Dianliu2%100/10;Disp1Char(0,1,shuzi[qwe]);*/}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);z=0;//顯示清屏(z清屏標(biāo)志)}elseif((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) { case1:Init_Keypad();LcdReset();DispNChar(0,0,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; case2:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(9);break;}elsebreak;case3:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(8);break;}elsebreak;case4:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(7);break;}elsebreak; case5://小數(shù)點(diǎn)if(d==0){d=1;if(n!=0)dianliu1[n]='.';else{dianliu1[n]='0';n++;dianliu1[n]='.';}if(h==0){DispNChar(8-(m+n+d+1)/2,0,n+m+d,dianliu1);DispNChar(14,0,2,ceshi5);}elseDispNChar(8-(m+n+d+1)/2,1,n+m+d,dianliu1);break;} elsebreak; case6:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(6);break;}elsebreak;case7:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(5);break;}elsebreak;case8:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(4);break;}elsebreak;case9://清除if((n!=0)&&(d==0))//清除整數(shù){y=dianliu1[--n]-'0';Dianliu1=(Dianliu1-y)/10;y=0;if(h==0){LcdWriteCommand(0x01,1);DispNChar(14,0,2,ceshi5);DispNChar(8-(m+n+d+1)/2,0,n+m+d,dianliu1);}else{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);}}elseif((d!=0)&&(m!=0))//清除小數(shù){y=dianliu1[m+n]-'0';Dianliu1=(Dianliu1-y)/10;m--;y=0;if(h==0){LcdWriteCommand(0x01,1);DispNChar(14,0,2,ceshi5);DispNChar(8-(m+n+d+1)/2,0,n+m+d,dianliu1);}else{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);}}elseif((d!=0)&&(m==0))//清除小數(shù)點(diǎn){d=0;if(h==0){LcdWriteCommand(0x01,1);DispNChar(14,0,2,ceshi5);DispNChar(8-(m+n+d+1)/2,0,n+m+d,dianliu1);}else{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);}}else{DispNChar(4,1,7,ceshi1);if(h==0)z=1;elsez=2;}break;case10:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(3);break;}elsebreak;case11:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(2);break;}elsebreak;case12:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(1);break;}elsebreak;case13://擬定if((n!=0)){if(m==0)daxiao=Dianliu1*10;elsedaxiao=Dianliu1;if(daxiao>1000){DispNChar(0,1,16,ceshi2);m=0;n=0;d=0;Dianliu1=0;dianliu1[0]='\0';if(h==1)z=2;elsez=1;break;}h=1;//確認(rèn)標(biāo)志mm=m;nn=n;dd=d;zheng=daxiao;for(y=0;y<(n+m+d);y++)display[y]=dianliu1[y];y=0;m=0;n=0;d=0;Dianliu1=0;dianliu1[0]='\0';LcdWriteCommand(0x01,1);DispNChar(0,0,2,ceshi3);DispNChar(2,0,nn+2*mm,display);DispNChar(8,0,2,ceshi4);DispNChar(13,1,2,ceshi5);//ADC12CTL0|=ENC;//使能轉(zhuǎn)換//ADC12CTL0|=ADC12SC;//開始轉(zhuǎn)換}break;case14://暫停//jiaif(h==1){VV=0;com=(uint)(VV*2);//com=(uint)(VV/(2*REF)*4096);Write_A_B(com,0x0000,1,0);//A通道,慢速模式q=0;//轉(zhuǎn)換輸出確認(rèn)位置0break;}elsebreak;case15://輸出//jianif(h==1){VV=zheng;com=(uint)(VV*2);//com=(uint)(VV/(2*REF)*4096);if(com<2400)Write_A_B(com,0x0000,1,0);//A通道,慢速模式q=1;//轉(zhuǎn)換輸出確認(rèn)位break;}elsebreak;case16:if((n<3&&d==0)||(m<1&&d==1)){shuzishuru(0);break;}elsebreak; }}}}voidshuzishuru(uintshuzi)//數(shù)字輸入{dianliu1[n+m+d]='0'+shuzi;Dianliu1=10*Dianliu1+shuzi;if(d==0)n++;elsem++;if(h==0){DispNChar(8-(m+n+d+1)/2,0,n+m+d,dianliu1);DispNChar(14,0,2,ceshi5);

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論