單片機控制電流源設(shè)計_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p> 題目:基于單片機控制的4~20mA直流電流源的設(shè)計與制作</p><p><b>  摘 要</b></p><p>  直流電流源作為穩(wěn)定電源的分支,在工程技術(shù)和測量領(lǐng)域中有著重要的實用價值。當(dāng)今社會,數(shù)控恒壓技術(shù)已經(jīng)很成熟,但是恒流源方面特別是數(shù)控恒流源的技術(shù)還有待發(fā)展,高性能的

2、數(shù)控恒流器件的開發(fā)和應(yīng)用存在巨大的發(fā)展空間。</p><p>  本設(shè)計直流電流源是以STC12C2052AD單片機為核心控制芯片,設(shè)計的直流電流源可以實時、準(zhǔn)確的輸出4~20mA范圍的穩(wěn)定直流電流。</p><p>  本直流電流源的硬件部分主要由中央控制模塊、人機界面模塊、濾波和電壓電流轉(zhuǎn)換模塊、恒流源模塊和采樣電路模塊組成。中央控制模塊以STC12C2052AD單片機為核心,該單片機

3、有很好的抗干擾能力、響應(yīng)速度快,基于此單片機的PWM脈寬調(diào)制技術(shù)控制實現(xiàn)高精度數(shù)控恒流源的設(shè)計,通過改變其內(nèi)部PWM控制寄存器的數(shù)值來實現(xiàn)占空比的相應(yīng)變化,實現(xiàn)核心控制作用。產(chǎn)生的PWM波經(jīng)濾波采樣電路輸出穩(wěn)定的直流電壓,經(jīng)過負(fù)載電阻轉(zhuǎn)化為直流電流。人機界面模塊以ZLG7289b芯片為核心,由鍵盤、數(shù)碼管電路實現(xiàn)電流數(shù)值設(shè)定和顯示功能。軟件部分采用C語言,編程特點簡潔緊湊、靈活方便。</p><p>  關(guān)鍵詞:

4、脈寬調(diào)制技術(shù) ;STC12C2052AD單片機 ;ZLG7289b ;電壓電流轉(zhuǎn)換 </p><p><b>  目錄</b></p><p>  1緒論(設(shè)計背景)1</p><p>  1.1直流電流源1</p><p>  1.2脈沖寬度調(diào)制(PWM)概述1</p><p>  1

5、.3單片機概述2</p><p>  2系統(tǒng)方案的選擇與論證4</p><p><b>  2.1功能要求4</b></p><p>  2.2系統(tǒng)總體方案選擇與論證4</p><p>  2.3系統(tǒng)各模塊方案選擇與論證6</p><p>  3系統(tǒng)的硬件電路設(shè)計與實現(xiàn)8</p&

6、gt;<p>  3.1系統(tǒng)的硬件組成部分8</p><p>  3.2 主要電路模塊設(shè)計9</p><p>  3.2.1中央控制模塊9</p><p>  3.2.2人機界面模塊11</p><p>  3.2.3低通濾波電路與電壓電流轉(zhuǎn)化電路模塊15</p><p>  3.2.4恒流源模

7、塊17</p><p>  4系統(tǒng)的軟件設(shè)計及實現(xiàn)17</p><p>  4.1系統(tǒng)的總體流程圖19</p><p>  4.2數(shù)碼管正常顯示子程序流程圖20</p><p>  4.3按鍵掃描子程序流程圖21</p><p>  4.4 PWM輸出子程序流程圖22</p><p>

8、;  5數(shù)據(jù)測試及分析23</p><p><b>  6結(jié)束語24</b></p><p>  7致謝錯誤!未定義書簽。</p><p><b>  參考文獻(xiàn)24</b></p><p><b>  附錄25</b></p><p><

9、b>  1緒論(設(shè)計背景)</b></p><p><b>  1.1直流電流源</b></p><p>  直流電流源作為穩(wěn)定電源的分支,在工程技術(shù)和測量領(lǐng)域中有著重要的實用價值?;谀M電路的電流源雖然可以實現(xiàn)高精度、寬電流范圍輸出,但其結(jié)構(gòu)復(fù)雜, 調(diào)整困難,指示不直觀。隨著單片機技術(shù)的發(fā)展,數(shù)字控制電流源開始出現(xiàn),其以控制靈活、調(diào)節(jié)方便等特點

10、展示了良好的應(yīng)用前景。當(dāng)今社會,數(shù)控恒壓技術(shù)已經(jīng)很成熟,但是恒流源方面特別是數(shù)控恒流源的技術(shù)還有待發(fā)展,高性能的數(shù)控恒流器件的開發(fā)和應(yīng)用存在巨大的發(fā)展空間。數(shù)控的目的是要用微處理器來代替?zhèn)鹘y(tǒng)直流穩(wěn)流電源中手動旋轉(zhuǎn)電位器,實現(xiàn)輸出電流的預(yù)置,精度要求高。數(shù)控直流恒流源要實現(xiàn)電流的鍵盤化輸入控制,同時具有顯示功能。</p><p>  1.2脈沖寬度調(diào)制(PWM)概述</p><p>  脈沖

11、寬度調(diào)制(PWM)是利用微處理器的數(shù)字輸出來對模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中。脈寬調(diào)制是開關(guān)型穩(wěn)壓電源中的術(shù)語。這是按穩(wěn)壓的控制方式分類的,除了PWM型,還有PFM型和PWM、PFM混合型。脈寬調(diào)制式開關(guān)型穩(wěn)壓電路是在控制電路輸出頻率不變的情況下,通過電壓反饋調(diào)整其占空比,從而達(dá)到穩(wěn)定輸出電壓的目的。</p><p>  PWM是一種模擬控制方式,根據(jù)

12、相應(yīng)載荷的變化來調(diào)制晶體管柵極或基極的偏置,來實現(xiàn)開關(guān)穩(wěn)壓電源輸出晶 體管或晶體管導(dǎo)通時間的改變,這種方式能使電源的輸出電壓在工作條件變化時保持恒定。</p><p>  PWM是一種對模擬信號電平進(jìn)行數(shù)字編碼的方法。通過高分辨率計數(shù)器的使用,方波的占空比被調(diào)制用來對一個具體模擬信號的電平進(jìn)行編碼。PWM信號仍然是數(shù)字的,因為在給定的任何時刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或

13、電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通的時候即是直流供電被加到負(fù)載上的時候,斷的時候即是供電被斷開的時候。只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼。 </p><p>  多數(shù)負(fù)載(無論是電感性負(fù)載還是電容性負(fù)載)需要的調(diào)制頻率高于10Hz,通常調(diào)制頻率為1kHz到200kHz之間。 </p><p>  許多微控制器內(nèi)部都包含有PWM

14、控制器。占空比是接通時間與周期之比;調(diào)制頻率為周期的倒數(shù)。執(zhí)行PWM操作之前,這種微處理器要求在軟件中完成以下工作: </p><p>  設(shè)置提供調(diào)制方波的片上定時器/計數(shù)器的周期 </p><p>  在PWM控制寄存器中設(shè)置接通時間 </p><p>  設(shè)置PWM輸出的方向,這個輸出是一個通用I/O管腳 </p><p>&

15、lt;b>  啟動定時器 </b></p><p>  使能PWM控制器 </p><p>  PWM的一個優(yōu)點是從處理器到被控系統(tǒng)信號都是數(shù)字形式的,無需進(jìn)行數(shù)模轉(zhuǎn)換。讓信號保持為數(shù)字形式可將噪聲影響降到最小。噪聲只有在強到足以將邏輯1改變?yōu)檫壿?或?qū)⑦壿?改變?yōu)檫壿?時,也才能對數(shù)字信號產(chǎn)生影響。對噪聲抵抗能力的增強是PWM相對于模擬控制的另外一個優(yōu)點,而且這也

16、是在某些時候?qū)WM用于通信的主要原因。從模擬信號轉(zhuǎn)向PWM可以極大地延長通信距離。在接收端,通過適當(dāng)?shù)腞C或LC網(wǎng)絡(luò)可以濾除調(diào)制高頻方波并將信號還原為模擬形式。 </p><p>  總之,PWM既經(jīng)濟(jì)、節(jié)約空間、抗噪性能強,是一種值得廣大工程師在許多設(shè)計應(yīng)用中使用的有效技術(shù)。</p><p><b>  1.3單片機概述</b></p><

17、p>  自1946年第一臺電子計算機誕生以來,經(jīng)過50多年的發(fā)展,計算機能夠?qū)π畔⑦M(jìn)行加工處理,并得到了各行各業(yè)的廣泛應(yīng)用。計算機對人類社會的發(fā)展起到了極大的推動作用。然而,使計算機的應(yīng)用能夠真正深入社會生活各個方面,促使人類社會大步跨入電腦時代的一個重要原因,是微型計算機和單片微型計算機的產(chǎn)生和發(fā)展。單片微型計算機(Single Chip Microcomputer)簡稱單片機,是指在一片芯片體上集成了中央處理器CPU、隨機存儲

18、器ROM或EPROM、定時器/計數(shù)器、中斷控制器及串行和并行I/O接口等部件,構(gòu)成一個完整的微型計算機。目前,新型單片機內(nèi)還有A/D及D/A轉(zhuǎn)換器、高速輸入/輸出部件、DMA通道、浮點運算等特殊功能部件。由于它的結(jié)構(gòu)和指令都是按工業(yè)控制要求設(shè)計的,特別適用與工業(yè)控制及數(shù)據(jù)處理場合。因此,確切的稱謂應(yīng)該是微控制器,單片機只是其習(xí)慣稱呼。</p><p><b>  單片機的特點和應(yīng)用</b>&

19、lt;/p><p>  (1)單片機的特點:</p><p>  體積小、使用靈活、成本低、易于產(chǎn)業(yè)化。它能方便地嵌入到各種智能式測控設(shè)備及各種智能儀器儀表中;</p><p>  可靠性好,適應(yīng)溫度范圍寬。由于單片機的生產(chǎn)廠商不斷地提高產(chǎn)品的抗干擾能力,單片機芯片本身也是按照工業(yè)測控設(shè)計的,能適應(yīng)各種惡劣的環(huán)境,其抗工業(yè)噪聲干擾的能力優(yōu)于一般通用的CPU;</p

20、><p>  易擴(kuò)展,很容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),控制功能強。I/O接口多,指令系統(tǒng)豐富,易于單片機的邏輯控制功能的實現(xiàn);</p><p>  系統(tǒng)內(nèi)無監(jiān)控或系統(tǒng)管理程序。單片機系統(tǒng)內(nèi)部一般無監(jiān)控或系統(tǒng)管理程序,使用簡單,只有用戶設(shè)計和調(diào)試好的應(yīng)用程序;</p><p>  (2)其主要應(yīng)用領(lǐng)域有:</p><p>  測控系統(tǒng)。 用單片機可構(gòu)

21、成各種工業(yè)控制系統(tǒng)、自適應(yīng)系統(tǒng)、數(shù)據(jù)采集系統(tǒng)等。例如,溫度人工氣候控制、水閘自動控制、電鍍生產(chǎn)線控制、汽輪機電調(diào)節(jié)系統(tǒng)、車輛檢測系統(tǒng)、機器人軸處理器等;</p><p>  智能儀表。 用單片機改造原有的測量、控制儀表,能促進(jìn)儀表向數(shù)字化、智能化、多功能化、綜合化、柔性化發(fā)展。如溫度、壓力、流量、濃度等的測量、顯示及儀表控制。通過采用單片機軟件編程技術(shù),使測量儀表中長期存在的誤差修正、線性化處理等難題迎刃而解;&

22、lt;/p><p>  機電一體化產(chǎn)品。 單片機與傳統(tǒng)的機械產(chǎn)品結(jié)合。是傳統(tǒng)機械產(chǎn)品結(jié)構(gòu)簡化,控制智能化。這類產(chǎn)品如:簡易數(shù)控機床,電腦繡花機,醫(yī)療器械等;</p><p>  智能接口。 在計算機控制系統(tǒng)(特別是較大型的工業(yè)測控系統(tǒng))中,普遍采用單片機進(jìn)行接口的控制與管理,因單片機與主機是并行工作,故大大提高了系統(tǒng)的運行速度。例如:在大型數(shù)據(jù)采集系統(tǒng)中,用單片機對ADC接口進(jìn)行控制不僅可提高

23、采集速度,而且還能對數(shù)據(jù)進(jìn)行預(yù)處理,如數(shù)字濾波,線性化處理,誤差修正等;</p><p>  智能民用產(chǎn)品。 在家用電器、玩具、游戲機、聲響設(shè)備、電子稱、收銀機、辦公設(shè)備、廚房設(shè)備等產(chǎn)品中引入單片機,不僅使產(chǎn)品的功能大大加強,而且獲得了良好的使用效果;</p><p>  多機應(yīng)用系統(tǒng)。A、功能集散系統(tǒng)。多功能集散系統(tǒng)是為了滿足工程系統(tǒng)多種外圍功能的要求而設(shè)置的多機系統(tǒng)。例如:一個加工中心

24、的計算機系統(tǒng)除了完成機床加工運行控制外,還要控制對刀系統(tǒng)、坐標(biāo)系統(tǒng)、狀態(tài)監(jiān)視、伺服驅(qū)動等工程應(yīng)用系統(tǒng)的快速問題,以便構(gòu)成大型實時工程應(yīng)用系統(tǒng)。典型的有快速并行數(shù)據(jù)采集、處理系統(tǒng)、實時圖象處理系統(tǒng)等;</p><p>  2系統(tǒng)方案的選擇與論證</p><p><b>  2.1功能要求</b></p><p>  設(shè)計使用單片機與數(shù)碼管鍵盤驅(qū)動

25、芯片為核心制作直流電流源設(shè)計,實現(xiàn)直流電流輸出與數(shù)值顯示功能,設(shè)計要求進(jìn)行硬件、軟件系統(tǒng)設(shè)計。</p><p>  2.2系統(tǒng)總體方案選擇與論證</p><p>  方案1:本設(shè)計采用AT89C51單片機作為整機的控制單元,通過改變AD的輸入數(shù)字量來改變輸出電壓值,從而使輸出功率管的基極電壓發(fā)生變化,間接地改變輸出電流的大小。為了能夠使系統(tǒng)具備檢測實際輸出電流值的大小,可以將電流轉(zhuǎn)換成電壓

26、,并經(jīng)過ADC進(jìn)行模數(shù)轉(zhuǎn)換,間接用單片機實時對電壓進(jìn)行采樣,然后進(jìn)行數(shù)據(jù)處理及顯示。此系統(tǒng)比較靈活,采用軟件方法來解決數(shù)據(jù)的設(shè)置以及電流的步進(jìn)控制,使系統(tǒng)硬件更加簡潔,各類功能易于實現(xiàn),能很好地滿足題目的要求。本方案的基本原理如圖2-1所示。</p><p>  方案2:采用STC12C2052AD單片機作為整機的控制單元,利用PWM脈寬調(diào)制技術(shù)來實現(xiàn)高精度數(shù)控恒流源的設(shè)計。本系統(tǒng)通過小鍵盤和LED實現(xiàn)人機交流,

27、小鍵盤負(fù)責(zé)設(shè)計輸入要實現(xiàn)的電流值,LED 負(fù)責(zé)顯示電流數(shù)值。單片機根據(jù)輸入的電流數(shù)值通過軟件控制產(chǎn)生對應(yīng)的PWM波,經(jīng)過濾波電路后對壓控恒流元件進(jìn)行控制,產(chǎn)生電流,電流再經(jīng)過采樣電阻到達(dá)負(fù)載。同時,對采樣電阻兩端信號進(jìn)行差分和放大,送入ADC。單片機根據(jù)采集到的值調(diào)整PWM輸出,從而調(diào)整了輸出電流。如此反復(fù),直到電流達(dá)到設(shè)定要求。本方案的基本原理如圖2-2所示。</p><p>  圖2-1 系統(tǒng)原理框圖<

28、;/p><p>  圖2-2 系統(tǒng)原理框圖</p><p><b>  方案論證:</b></p><p>  比較以上兩種方案的優(yōu)缺點,方案2簡潔、靈活,從精度和成本等方面考慮能達(dá)到題目的設(shè)計要求,因此本次畢業(yè)設(shè)計采用方案2來實現(xiàn)。</p><p>  2.3系統(tǒng)各模塊方案選擇與論證</p><p&g

29、t;<b> ?。?)中央控制模塊</b></p><p>  系統(tǒng)的核心控制模塊為STC12C2052AD單片機。主要使用了STC12C2052AD單片機的PWM脈寬調(diào)制功能和A/D功能。單片機片內(nèi)有一個PWM功能的定時/計數(shù)器。PWM波是數(shù)字向模擬轉(zhuǎn)換的一種重要方法,通常使用單片機的定時器做頻率發(fā)生器,含有數(shù)字比較器,當(dāng)設(shè)定值與定時器的值相等,引腳的電平發(fā)生翻轉(zhuǎn)??刂圃O(shè)定值,就控制了PW

30、M波占空比,通過濾波,輸出直流模擬量。PWM開關(guān)穩(wěn)流電源基本工作原理就是在輸入電壓變化、內(nèi)部參數(shù)變化、外接負(fù)載變化的情況下,控制電路通過被控制信號與基準(zhǔn)信號的差值進(jìn)行閉環(huán)反饋,調(diào)節(jié)主電路開關(guān)器件的導(dǎo)通脈沖寬度,使得開關(guān)電源的輸出電流等被控制信號穩(wěn)定。</p><p>  PWM波產(chǎn)生過程:單片機片內(nèi)有一個具有8位PWM功能的定時/計數(shù)器。在普通模式下,計數(shù)器不停地累加,計到最大值0xff后溢出,返回到最小值0x0

31、0重新開始。當(dāng)啟用PWM功能即在單片機的快速PWM模式下,通過調(diào)整CCAPNL的值x可實現(xiàn)輸出PWM波的占空比變化。產(chǎn)生PWM波形的機理是:PWM引腳電平在發(fā)生匹配時以及在計數(shù)器清零的那一個定時器時鐘周期內(nèi)發(fā)生跳變,即波形產(chǎn)生相應(yīng)變化。PWM占空比:(256-x)/256 * 100%。</p><p><b> ?。?)人機界面模塊</b></p><p><

32、b>  方案選擇:</b></p><p>  方案1:采用LCD顯示。特點:顯示內(nèi)容豐富,采用數(shù)字式接口,體積小、重量輕,功率消耗小,但編程復(fù)雜,且成本相對LED較高。</p><p>  方案2:采用LED并行動態(tài)顯示。即一位一位地輪流點亮各位顯示器,對每一位顯示器而言,每隔一段時間點亮一次。其硬件電路簡單,但同樣的功率驅(qū)動下,顯示亮度不及靜態(tài)顯示,且占用I/O口較多

33、。</p><p>  方案3:采用LED串行靜態(tài)顯示。即顯示某一字符時,相應(yīng)的發(fā)光二極管恒定導(dǎo) 通或截止,這種方式每一個顯示位都需要一個8位輸出口控制,占用硬件較多,但僅占用控制器串口的兩個I/O口,軟件實現(xiàn)簡單,顯示亮度高,成本低。</p><p>  LED數(shù)碼管顯示器由8個發(fā)光二極管組成,因此也稱之為8段LED數(shù)碼管,因為LED數(shù)碼管顯示成本較低,外加一個驅(qū)動芯片,所需單片機接口

34、較少,而且程序容易實現(xiàn)。考慮到本次設(shè)計的需要,只要顯示3位電流值,采用方案2,使用1個4位共陰極數(shù)碼管及1個驅(qū)動芯片ZLG7289b。</p><p>  本模塊以ZLG7289b數(shù)碼管顯示驅(qū)動及鍵盤掃描管理芯片為核心,包括鍵盤電路和數(shù)碼管顯示電路。鍵盤設(shè)計為1×4按鍵,由功能鍵“+”、“-”、“選擇”及“確認(rèn)”組成,輸入最小設(shè)定步進(jìn)等級為0.1mA,“選擇”完成顯示值數(shù)值切換功能。功能鍵“確定”完成確

35、定輸出顯示值并且產(chǎn)生對應(yīng)數(shù)值直流電流功能。通過驅(qū)動電路實現(xiàn)鍵值識別。數(shù)碼管采用4位共陰極數(shù)碼管。</p><p> ?。?)低通濾波電路模塊</p><p>  PWM波產(chǎn)生后不能直接用于控制場效應(yīng)晶體管,需把其變成能隨占空比變化而變化的直流電壓。本次設(shè)計采用有源濾波電路,主要由放大器與RC網(wǎng)絡(luò)組成。低通濾波電路模塊在電路中的作用:</p><p>  對PWM輸出

36、信號進(jìn)行調(diào)制,首先PWM模塊將輸入信號轉(zhuǎn)換成對時間進(jìn)行調(diào)制而幅度等于電源電壓的脈沖信號,PWM模塊內(nèi)的全橋放大器一般都利用反相鎖存調(diào)制,當(dāng)一個輸出為高,另一個輸出總是低。假如50%占空比,則意味著開關(guān)頻率的每個周期內(nèi)高和低的時間相等,脈沖信號必須通過低通功率濾波電路解調(diào)后,才能到達(dá)負(fù)載端其信號值為零。</p><p>  低通功率濾波電路抑制通過時間調(diào)制的方波載波信號,在濾波電路的輸出端上可以得到遠(yuǎn)低于PWM開關(guān)

37、頻率的負(fù)載載波信號,事實上占空比不斷變化的PWM信號參雜了很多高頻毛刺成分,會嚴(yán)重干擾反饋電路的參數(shù),同時過高的載波頻率可能會損壞負(fù)載本身。</p><p><b>  恒流源模塊</b></p><p>  基本的恒流源電路主要是由輸入級和輸出級構(gòu)成,輸入級提供參考電流,輸出級輸出需要的恒定電流。恒流源電路就是要能夠提供一個穩(wěn)定的電流以保證其它電路穩(wěn)定工作的基礎(chǔ),即

38、要求恒流源電路輸出恒定電流。因此作為輸出級的器件應(yīng)該是具有飽和輸出電流的伏安特性。這可以采用工作于輸出電流飽和狀態(tài)的BJT 或者M(jìn)OSFET來實現(xiàn)。</p><p>  為了保證輸出晶體管的電流穩(wěn)定,就必須要滿足兩個條件:</p><p><b>  其輸入電壓要穩(wěn)定</b></p><p>  輸出晶體管的輸出電阻盡量大(最好是無窮大)<

39、;/p><p><b>  方案選擇:</b></p><p>  方案1:采用恒流二極管或者恒流三極管。其特點精度比較高,但這種電路能實現(xiàn)的恒流范圍很小。</p><p>  方案2:采用四端可調(diào)恒流源。這種器件靠改變外圍電阻元件參數(shù),從而使電流達(dá)到可調(diào)的目的,這種器件能夠達(dá)到1~2000毫安的輸出電流。改變輸出電流,通常有兩種方法:一是通過手動

40、調(diào)節(jié)來改變輸出電流,這種方法不能滿足題目的數(shù)控調(diào)節(jié)要求;二是通過數(shù)字電位器來改變需要的電阻參數(shù),雖然可以達(dá)到數(shù)控的目的,但數(shù)字電位器的每一級步進(jìn)電阻比較大,所以很難調(diào)節(jié)輸出電流。</p><p>  方案3:壓控恒流源。通過改變恒流源的外圍電壓,利用電壓的大小來控制輸出電流的大小。電壓控制電路采用數(shù)控的方式,利用單片機送出數(shù)字量,經(jīng)過D/A轉(zhuǎn)換轉(zhuǎn)變成模擬信號,再送到大功率三極管進(jìn)行放大。單片機系統(tǒng)實時對輸出電流進(jìn)

41、行監(jiān)控,采用數(shù)字方式作為反饋調(diào)整環(huán)節(jié),由程序控制調(diào)節(jié)功率管的輸出電流恒定。當(dāng)改變負(fù)載大小時,基本上不影響電流的輸出,采用這樣一個閉路環(huán)節(jié)使得系統(tǒng)一直在設(shè)定值維持電流恒定。該方案通過軟件方法實現(xiàn)輸出電流穩(wěn)定,易于功能的實現(xiàn),便于操作,故選擇方案3。</p><p> ?。?)采樣電路 當(dāng)對采樣電阻兩端信號進(jìn)行差分后,可得到采樣電阻兩端的電壓值U,而在已知采樣電阻阻值情況下,很容易得到流經(jīng)采樣電阻的電流,即I

42、=U/R。由于負(fù)載與采樣電阻在同一條支路,故流經(jīng)負(fù)載的電流也為I。差分放大電路的放大倍數(shù)可根據(jù)采樣電阻阻值以及ADC的參考電壓來選擇,差分信號經(jīng)ADC口送入單片機進(jìn)行處理。 </p><p>  3系統(tǒng)的硬件電路設(shè)計與實現(xiàn)</p><p>  3.1系統(tǒng)的硬件組成部分</p><p>  系統(tǒng)硬件電路主要由中央控制模塊、人機界面模塊、低通濾波與電壓電流轉(zhuǎn)換模塊和恒流

43、源模塊組成。系統(tǒng)總原理圖如圖3-1所示。</p><p>  圖3-1 總系統(tǒng)原理圖</p><p>  3.2 主要電路模塊設(shè)計</p><p>  3.2.1 中央控制模塊</p><p>  本模塊設(shè)計主要以STC12C2052AD單片機最小系統(tǒng)為核心。ZLG7289b數(shù)碼管顯示驅(qū)動及鍵盤掃描管理芯片與單片機STC12C2052AD的接

44、口采用3線制SPI串行總線,由CS、CLK和DIO這3根信號線組成。CS和CLK是輸入信號,由STC12C2052AD提供。DIO信號是雙向的,必須接到STC12C2052AD上具有雙向功能的I/O上。STC12C2052AD單片機與ZLG7289b數(shù)碼管顯示驅(qū)動及鍵盤掃描管理芯片引腳對應(yīng)關(guān)系如表3.1所示。中央控制模塊系統(tǒng)原理圖如圖3-2所示。</p><p>  表3.1 STC12C2052AD與ZLG72

45、89b引腳對應(yīng)關(guān)系</p><p>  圖3-2中央控制模塊系統(tǒng)原理圖</p><p>  STC12C2052AD系列1T單片機簡介:</p><p>  STC12C2052AD系列單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1T)的高速/低功耗/超強抗干擾的新一代851單片機,指令代碼完全兼容傳統(tǒng)8051,單速度快8-12倍,內(nèi)部集成MAX810專用復(fù)位電路。2路

46、PWM,8路高速8位A/D轉(zhuǎn)換,針對電機控制,強干擾場合。STC12C2052AD引腳圖如圖3-3所示。</p><p>  STC12C2052AD系列1T單片機特點:</p><p>  增強型1T流水線/精簡指令集結(jié)構(gòu)8051CPU</p><p>  工作電壓:2.4V~3.8V/3.4V~5.5V</p><p>  工作頻率范圍:

47、0~35MHz,相當(dāng)于普通8051的0~420MHz</p><p>  用戶應(yīng)用程序空間512/1K/2K/3K/4K/5K字節(jié)</p><p>  片上集成256字節(jié)RAM</p><p>  15個通用I/O口復(fù)位后為:準(zhǔn)雙向口/弱上拉</p><p>  可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強上拉,僅為輸入/高阻,開漏</

48、p><p><b>  EEPROM功能</b></p><p>  共2個16位定時器/計數(shù)器</p><p>  PWM(2路)/PCA(可編程計數(shù)器陣列)</p><p>  ADC,8路8位精度</p><p>  通用異步串行口(UART)</p><p>  SPI

49、同步通信口,主模式/從模式</p><p><b>  看門狗</b></p><p>  內(nèi)部集成 R/C振蕩器,精度要求不高時可省外部晶體</p><p>  ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用仿真器可通過串口直接下載用戶程序,數(shù)秒即可完成一片</p><p>  工作溫度范圍:0~75℃/-4

50、0~+85℃</p><p>  封裝: PDIP-20</p><p>  圖3-3 STC12C2052AD引腳圖</p><p>  3.2.2人機界面模塊</p><p>  本模塊以ZLG7289b數(shù)碼管顯示驅(qū)動及鍵盤掃描管理芯片為核心,包括鍵盤電路和LED顯示電路。LED選用4位共陰極數(shù)碼管,實際只選通前3位使用。鍵盤電路設(shè)置4個

51、按鍵,通過驅(qū)動電路實現(xiàn)鍵值識別。4個按鍵分別為“+”、“-”、“選擇”和“確定”鍵。人機界面模塊系統(tǒng)原理圖如圖3-4所示。</p><p>  圖3-4人機界面模塊系統(tǒng)原理圖</p><p>  (1)ZLG7289b數(shù)碼管顯示驅(qū)動與鍵盤管理芯片</p><p>  ZLG7289b是廣州周立功單片機發(fā)展有限公司自行設(shè)計的數(shù)碼管顯示驅(qū)動及鍵盤掃描管理芯片,可直接驅(qū)動

52、8位共陰極數(shù)碼管(或64只獨立LED),同時還可以掃描管理多達(dá)64只按鍵,并自動消除抖動,可廣泛地應(yīng)用于儀器儀表、工業(yè)控制器、條形顯示器、控制面板等領(lǐng)域。 </p><p>  ZLG7289B內(nèi)部含有顯示譯碼器,可直接接受BCD碼或16進(jìn)制碼,并同時具有2種譯碼方式。此外,還具有多種控制指令,如消隱﹑閃爍﹑左移﹑右移﹑段尋址等。芯片采用SPI串行總線與微控制器接口,僅占用少數(shù)幾根I/O口線。利用片選信號,多片Z

53、LG7289b 還可以并接在一起使用,能夠方便地實現(xiàn)多于 8 位的顯示或多于 64只按鍵的應(yīng)用。</p><p>  芯片采用I2C總線方式,與微控制器的接口僅需兩根信號線。</p><p>  ZLG7289b引腳圖如圖3-5所示,ZLG7289b引腳功能說明如表3.2所示。</p><p>  ZLG7289b數(shù)碼管顯示驅(qū)動與鍵盤管理芯片特點:</p>

54、;<p>  串行接口,無需外圍元件可直接驅(qū)動LED</p><p>  各位獨立控制譯碼/不譯碼/及消隱和閃爍屬性</p><p> ?。ㄑh(huán))左移/(循環(huán))右移指令</p><p>  具有段尋址指令,方便控制獨立LED</p><p>  64鍵鍵盤控制器,內(nèi)含去抖動電路</p><p>  工作電

55、壓2.7V~6.0V</p><p>  圖3-5 ZLG7289b引腳圖</p><p>  表3.2 ZLG7289b引腳功能說明</p><p>  ZLG7289b SPI串行接口信號:</p><p>  ZLG7289b與STC12C2052AD的接口采用3線制SPI串行總線,由CS、CLK和DIO這3根信號線組成。CS和CLK是

56、輸入信號,由STC12C2052AD提供。DIO信號是雙向的,必須接到單片機STC12C2052AD上具有雙向功能的I/O上。SPI信號線的具體意義請參見表3.3。操作SPI總線的時序圖請參見圖3-6、圖3-7和圖3-8。其中圖3-8是讀按鍵值的時序圖,只有當(dāng)INT引腳出現(xiàn)下跳沿時才允許去讀取按鍵值,否則將得不到有意義的數(shù)據(jù)。</p><p>  表3.3 ZLG7289b的SPI串行接口信號</p>

57、<p>  SPI 總線時序圖(3個)</p><p>  圖3-6 純指令時序圖(單字節(jié)命令)</p><p>  圖3-7 帶數(shù)據(jù)指令時序圖(命令字在前,輸入數(shù)據(jù)在后)</p><p>  圖3-8讀鍵盤指令時序圖(命令字在前,鍵值在后)</p><p>  ZLG7289b下載數(shù)據(jù)并且按方式0 進(jìn)行譯碼</p>

58、<p>  在指令格式中,高 5 位的10000是命令字段;a2a1a0是數(shù)碼管顯示數(shù)據(jù)的位地址,位地址編號按從左到右的順序依次為0、1、2、3、4、5、6、7(以圖3-1為準(zhǔn))。dp控制小數(shù)點是否顯示,dp=0時該位的小數(shù)點被點亮,dp=1時該位的小數(shù)點被熄滅;xxx是無關(guān)地址位;d3d2d1d0是要顯示的數(shù)據(jù)。顯示數(shù)據(jù)按照3.4表中的規(guī)則進(jìn)行譯碼:</p><p>  表 3.4 下載數(shù)據(jù)命令譯

59、碼方式0</p><p> ?。?)4位共陰極數(shù)碼管</p><p>  共陰極數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰極數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮。本次設(shè)計采用4位共陰極數(shù)碼管,實際只選通3位使用。數(shù)碼管端選位與ZLG7289b的端選位

60、對應(yīng)連接。4位共陰極數(shù)碼管電路圖如3-9所示。</p><p>  圖3-9 4位共陰極數(shù)碼管</p><p>  數(shù)碼管動態(tài)顯示驅(qū)動技術(shù)簡介:</p><p>  數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM

61、增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余

62、輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。</p><p>  3.2.3低通濾波電路與電壓電流轉(zhuǎn)化電路模塊</p><p>  PWM波產(chǎn)生后不能直接用于控制場效應(yīng)晶體管,需把其變成能隨占空比變化而變化的直流電壓。濾波電路常用于濾去整流輸出電壓

63、中的紋波,本次設(shè)計采用有源濾波電路,主要由放大器LM324N和RC網(wǎng)絡(luò)組成,電路中LM324N起電壓跟隨器作用。直流電壓需經(jīng)過電阻R(250歐姆)才能轉(zhuǎn)換為相應(yīng)的直流電流。系統(tǒng)原理圖如圖3-10所示。</p><p>  圖3-10低通濾波電路與電壓電流轉(zhuǎn)化電路模塊系統(tǒng)原理圖</p><p>  LM324N是由四個獨立的運算放大器組成的電路。LM324N引腳說明如表3.5所示,LM324

64、N引腳圖如圖3-11所示。其特點如下:</p><p>  具有寬的單電源或雙電源工作電壓范圍;單電源3V~30V,雙電源±1.5V~±15V </p><p>  內(nèi)含相位校正回路, 外圍元件少</p><p>  消耗電流小:ICC=0.6mA (典型值, RL=∞)</p><p>  輸入失調(diào)電壓低:±

65、;2mV (典型值) </p><p>  電壓輸出范圍寬:0V~VCC </p><p>  共模輸入電壓范圍寬:0V~VCC</p><p>  封裝形式:DIP14 </p><p>  表3.5LM324N引腳說明</p><p>  圖3-11 LM324N引腳圖</p><p&

66、gt;  3.2.4恒流源模塊</p><p>  單片機引腳控制輸出電壓不能精確輸出0-5V,必須經(jīng)過恒流模塊控制才能近似達(dá)到控制效果。恒流源模塊采用場效應(yīng)管IRF3502與5V穩(wěn)壓管LM336-5組成。如圖3-12所示。</p><p>  圖3-12 恒流源模塊系統(tǒng)原理圖</p><p>  4系統(tǒng)的軟件設(shè)計及實現(xiàn)</p><p>  

67、本次設(shè)計軟件部分編程采用Keil C51軟件。Keil C51是美國keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(UVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WI

68、NXP等操作系統(tǒng)。使用C語言編程,Keil就是不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令使用者事半功倍。</p><p>  ZLG7289b芯片的51單片機C51驅(qū)動程序軟件包是由3個文件IC72X9.h、IC72X9_user.h和IC72X9v2.c組成。IC72X9_user.h包含IC72X9的I/O接口定義,用戶要根據(jù)實際電路修改。頭文件IC72X

69、9.h包括用戶指令集聲明。 C語言文件IC72X9v2.c是這些用戶指令的具體實現(xiàn)。用戶指令集如表4.1所示。 </p><p>  在keil C51中,該軟件包的具體用法是: </p><p>  將文件IC72X9v2.c、IC72x9.h和IC72X9_user.h一起復(fù)制到您的工程文件夾下,把文件IC72X9v2.c添加進(jìn)工程中。 </p><p>  根

70、據(jù)電路的實際情況,在文件IC72X9_user.h中重新定義片選、時鐘、數(shù)據(jù)和鍵盤申請接口。</p><p>  表4.1 IC72X9 的用戶指令集</p><p>  4.1系統(tǒng)的總體流程圖</p><p>  圖4-1系統(tǒng)的總體流程圖</p><p>  4.2數(shù)碼管正常顯示子程序流程圖</p><p>  系統(tǒng)

71、上電后,由于初始程序設(shè)定數(shù)碼管首先顯示數(shù)值4.0,此時iout的值是顯示值的十倍為40。因為設(shè)計的電流輸出范圍是4~20mA,即iout的值是40~200,如果輸入值不在其范圍內(nèi)就不能得到設(shè)計范圍內(nèi)要求輸出的電流,所以進(jìn)行第一次對iout值的判斷。當(dāng)iout大于等于200的時候,iout就等于200,對應(yīng)輸出電流大小20mA;當(dāng)iout小于等于40的時候,iout就等于40,對應(yīng)輸出電流大小4mA;iout在40到200之間,對應(yīng)正常范

72、圍內(nèi)的電流大小。然后進(jìn)行第二次對iout值的判斷。當(dāng)iout大于等于100的時候,數(shù)碼管正常顯示十位、個位和小數(shù)位;當(dāng)iout小于100的時候,數(shù)碼管值顯示個位和小數(shù)位。數(shù)碼管正常顯示子程序流程圖如圖4-2所示。</p><p>  圖4-2 數(shù)碼管正常顯示子程序流程圖</p><p>  4.3按鍵掃描子程序流程圖</p><p>  系統(tǒng)一共有4個按鍵分別為“+

73、”、“-”、“選擇”和確定鍵。系統(tǒng)上電后,進(jìn)入鍵盤掃描模式后,通過ZLG289b芯片鍵盤掃面指令進(jìn)行鍵值掃描。如果掃描到有鍵按下,首先判斷是否為選擇鍵被按下,如果按下的不是選擇鍵則不能進(jìn)入修改模式,修改鍵“+”、“-”都無效;如果按下的是選擇鍵,則進(jìn)入修改模式,選中的修改位閃爍,進(jìn)入修改模式可按“+”、“-”進(jìn)行數(shù)值修改。按下確定鍵后,退出修改模式,選中位數(shù)碼管停止閃爍。按鍵掃描子程序流程圖如圖4-3所示。</p><

74、;p>  圖4-3 按鍵掃描子程序流程圖</p><p>  4.4 PWM輸出子程序流程圖</p><p>  PWM輸出子程序是控制電流輸出大小的核心程序。由于硬件系統(tǒng)本身的缺陷,所以必須進(jìn)行軟件的修正,才能滿足設(shè)計題目的要求。軟件修正采用了分段線性修正。理論上PWM占空比變化對應(yīng)1~5V電壓,兩者是線性關(guān)系;1~5V電壓經(jīng)過250歐姆電阻對應(yīng)4~20mA也是線性關(guān)系。通過計算實

75、際電流值與PWM寄存器數(shù)值的函數(shù)關(guān)系為一次函數(shù),按鍵設(shè)定輸入的電流值通過計算函數(shù)關(guān)系修正后,控制輸出的電流大小基本能滿足要求。設(shè)置進(jìn)入PCA的輸入模式,賦值給寄存器CCAP1后輸出對應(yīng)關(guān)系的PWM波。PWM輸出子程序流程圖如圖4-4所示。</p><p>  圖4-4 PWM輸出子程序流程圖</p><p><b>  5數(shù)據(jù)測試及分析</b></p>

76、<p>  給電流源上電,通過按鍵設(shè)定輸出電流值,250歐姆負(fù)載電阻通過外部電流表測量的電流值,相關(guān)數(shù)據(jù)如表5.1所示。由于設(shè)計本身電子元器件的電壓線性關(guān)系不是很理想,盡管進(jìn)行了軟件修正對輸出進(jìn)行反饋調(diào)節(jié),但是部分輸出電流范圍內(nèi)的誤差偏大。</p><p>  本直流電流源能夠基本完成設(shè)定直流電流的輸出,但由于個人經(jīng)驗不足等因素,本設(shè)計還有一些不足之處,離產(chǎn)品實用還有一定的差距,還有一些方面需要進(jìn)一步完

77、善。</p><p>  表5.1 實驗相關(guān)數(shù)據(jù)</p><p><b>  6結(jié)束語</b></p><p>  在設(shè)計制作數(shù)控直流恒流源的過程中,我深切體會到,實踐是理論運用的最好檢驗。本次設(shè)計是對我四年所學(xué)知識的一次綜合性檢測和考驗,無論是動手能力還是理論知識運用能力都得到了提高,同時加深了我對網(wǎng)絡(luò)資源認(rèn)識,大大提高了查閱資料的效率,使我

78、有充足的時間投入到電路設(shè)計當(dāng)中。本系統(tǒng)的研制主要應(yīng)用到了模擬電子技術(shù)、數(shù)字電子技術(shù)、單片機控制技術(shù)、電子工藝等多方面的知識,所設(shè)計的基于單片機程序控制的數(shù)控恒流源,基本達(dá)到了題目要求。在數(shù)據(jù)測試和調(diào)試方面,由于儀表存在誤差和電路主要器件特性不是很理想產(chǎn)生的誤差,使得測量數(shù)據(jù)不是很精確,本系統(tǒng)就此通過軟件線性補償設(shè)計,減少誤差的存在,提高了系統(tǒng)的精度。</p><p><b>  參考文獻(xiàn)</b&g

79、t;</p><p>  [1]《單片機應(yīng)用技術(shù)》 劉守義 西安 西安電子科技大學(xué)出版社 2002</p><p>  [2]《單片微機測控系統(tǒng)設(shè)計大全》 王福瑞 北京 北京航空航天大學(xué)出版社 1998</p><p>  [3]《數(shù)控恒流源》 曾波 電子世界 第九期 2005</p><p>  [4]《電子電路》 何希才 北京 北京航空航

80、天大學(xué)出版社 2003</p><p>  [5]《模擬電子技術(shù)基礎(chǔ)》 李義府 長沙 國防科技大學(xué)出版社 2004</p><p>  [6]《單片機原理及接口技術(shù)》 李朝青 北京 北京航空航天大學(xué)出版社 1994</p><p>  [7]《單片機C語言編程與示例》 趙亮等 人民郵電出版社 2003.9</p><p>  [8]《C程序

81、設(shè)計(第二版)》 譚浩強 清華大學(xué)出版社 1999.12</p><p>  [9]《電子技術(shù)基礎(chǔ) 模擬部分》 康華光 高等教育出版社2004.7</p><p>  [10]《單片機應(yīng)用開發(fā)實例》 劉文濤 清華大學(xué)出版社 2005.9</p><p><b>  附錄</b></p><p><b&

82、gt;  系統(tǒng)總原理圖</b></p><p><b>  源程序:</b></p><p>  #include <STC12C2052AD.H></p><p>  #include <IC72X9.H></p><p>  #include <IC72X9_user.H&g

83、t;</p><p>  #define LED100 0</p><p>  #define LED10 1</p><p>  #define LED12</p><p>  #define IncKey 0</p><p>  #define DecKey 1</p><p>  

84、#define SKey 2</p><p>  #define EnKey3</p><p>  code unsigned char led_addr[ ] = {LED100, LED10, LED1};//顯示的百十個位對應(yīng)的數(shù)碼管位選信號編號</p><p>  unsigned char iout = 40;//設(shè)定電流大小,40表示4mA</

85、p><p>  unsigned char num[ ] = {0,4,0};//顯示的百十個位上的數(shù)字</p><p>  unsigned char flash_index;//標(biāo)志百十個位的閃爍狀態(tài)</p><p>  #define Flash 0</p><p>  #define NoFlash 1</p><p&

86、gt;  #define WaitFlash 2</p><p>  char state;//工作狀態(tài)指示</p><p>  void iout2num(void)</p><p><b>  {</b></p><p>  unsigned char x = iout;</p><p>&l

87、t;b>  char i;</b></p><p>  for(i=2;i>=0;i--)</p><p><b>  {</b></p><p>  num[i] = x % 10;</p><p>  x = x / 10;</p><p><b>  }

88、 </b></p><p><b>  }</b></p><p>  void num2iout(void)</p><p><b>  {</b></p><p>  int tmp = num[0] *100 + num[1] *10 + num[2];</p>&l

89、t;p>  if(tmp>200) tmp = 200;</p><p>  if(tmp<40) tmp = 40;</p><p>  iout = tmp;</p><p><b>  }</b></p><p>  //根據(jù)led_addr[flash_index]取值情況,閃爍顯示或不閃&l

90、t;/p><p>  void flash_display(unsigned char datum, bit flash)//flash=1表示閃爍</p><p><b>  {</b></p><p>  char i = led_addr[flash_index];</p><p>  if(flash_index

91、== 1) IC72X9_Download0(i, 1, datum);</p><p>  else IC72X9_Download0(i, 0, datum);</p><p><b>  if(flash)</b></p><p><b>  {</b></p><p>  char x =

92、0x01;</p><p>  for(; i>0;i--) x <<= 1;</p><p>  IC72X9_Flash(~x);</p><p><b>  }</b></p><p>  else IC72X9_Flash(0xff);</p><p><b>

93、  }</b></p><p>  //數(shù)碼管合理顯示,不閃爍</p><p>  void all_display(void)</p><p><b>  {</b></p><p>  num2iout( );</p><p>  iout2num( );</p>

94、<p>  if(iout>100) IC72X9_Download0(led_addr[0], 0, num[0]);</p><p>  else IC72X9_Download0(led_addr[0], 0, 0x0f);//不顯示</p><p>  IC72X9_Download0(led_addr[1], 1, num[1]);</p><

95、p>  IC72X9_Download0(led_addr[2], 0, num[2]);</p><p><b>  }</b></p><p>  void pwm_out(unsigned i)</p><p><b>  {</b></p><p><b>  char y;

96、</b></p><p>  if(i>=40&&i<=50) y=1.63*i-50.63;</p><p>  if(i>50&&i<=100) y=1.36*i-32.5;</p><p>  if(i>100&&i<=140) y=1.82*i-90;</p

97、><p>  if(i>140&&i<180) y=1.19*i+4;</p><p>  if(i>=180&&i<=200) y=1.39*i-25.17;</p><p><b>  {</b></p><p>  CMOD = 0x02; // Setup PC

98、A timer</p><p>  CL = 0x00;</p><p>  CH = 0x00;</p><p>  CCAP1L = y; //Set the initial value same as CCAP1H</p><p>  CCAP1H = y; // </p><p>  CCAPM1 = 0x42

99、; //0100,0010 Setup PCA module 1 in PWM mode</p><p>  CR = 1; //Start PCA Timer.</p><p><b>  }</b></p><p><b>  }</b></p><p>  void main( )<

100、/p><p><b>  {</b></p><p>  unsigned char key;</p><p>  IDLE_CLK = 0x3;</p><p>  state = NoFlash;</p><p>  IC72X9_InitPins( );</p><p>

101、<b>  while(1)</b></p><p><b>  {</b></p><p>  switch(state)</p><p><b>  {</b></p><p>  case WaitFlash:</p><p>  if (IC72

102、X9_pinKEY == 1) break;</p><p>  key = IC72X9_Key(0);</p><p>  if(key != SKey) break;</p><p>  state = Flash;</p><p>  flash_index = 2;</p><p>  flash_displ

103、ay( num[flash_index], 1);//閃爍個位</p><p><b>  break;</b></p><p>  case Flash:</p><p>  if (IC72X9_pinKEY == 1) break;</p><p>  key = IC72X9_Key(0);</p>

104、<p>  switch(key)</p><p><b>  {</b></p><p>  case IncKey:</p><p>  if (num[flash_index] <9) num[flash_index]++;</p><p>  else num[flash_index] = 0;

105、</p><p>  flash_display(num[flash_index], 1);</p><p><b>  break;</b></p><p>  case DecKey:</p><p>  if (num[flash_index] >0) num[flash_index]--;</p>

106、;<p>  else num[flash_index] = 9;</p><p>  flash_display(num[flash_index], 1);</p><p><b>  break;</b></p><p>  case SKey:</p><p>  flash_display(num[

107、flash_index], 0);</p><p>  if(flash_index>0) flash_index--;</p><p>  else flash_index = 2;</p><p>  flash_display(num[flash_index], 1);</p><p><b>  break;</

108、b></p><p>  case EnKey:</p><p><b>  default:</b></p><p>  flash_display(num[flash_index], 0);</p><p>  state = NoFlash;</p><p><b>  br

109、eak;</b></p><p><b>  }</b></p><p><b>  break;</b></p><p>  case NoFlash:</p><p><b>  default:</b></p><p>  all_di

110、splay( );</p><p>  pwm_out(iout);</p><p>  state = WaitFlash;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b>

溫馨提示

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

評論

0/150

提交評論