版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機控制設(shè)計一個數(shù)控電流源【開題報告】
- 基于atmega16單片機閉環(huán)控制的數(shù)控電流源設(shè)計
- 基于單片機的數(shù)控直流電流源設(shè)計
- 基于單片機的數(shù)控電流源畢業(yè)論文設(shè)計
- 基于單片機的數(shù)控電流源設(shè)計【畢業(yè)論文】
- 基于單片機的數(shù)控電流源設(shè)計【任務(wù)書】
- 基于單片機的數(shù)控電流源畢業(yè)論文設(shè)計
- 單片機課程設(shè)計--單片機控制步進(jìn)電機
- 單片機課程設(shè)計-單片機控制步進(jìn)電機
- 單片機課程設(shè)計--單片機控制各種器件
- 基于單片機的數(shù)字直流電流源設(shè)計畢業(yè)論文
- 單片機課程設(shè)計——單片機控制步進(jìn)電機控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計報告——單片機控制步進(jìn)電機
- 單片機課程設(shè)計報告---單片機控制秒表系統(tǒng)
- 單片機畢業(yè)設(shè)計--汽車轉(zhuǎn)彎燈單片機控制
- 單片機畢業(yè)設(shè)計---單片機控制交通燈
- 單片機課程設(shè)計--基于單片機的控制循環(huán)燈設(shè)計
- 基于單片機的數(shù)控直流電流源的設(shè)計畢業(yè)論文
- 單片機畢業(yè)設(shè)計--單片機控制的led點陣顯示
- 單片機課程設(shè)計---單片機節(jié)日彩燈控制器
評論
0/150
提交評論