2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  專業(yè)課程設(shè)計(jì)報告</b></p><p><b>  題目:單片機(jī)應(yīng)用</b></p><p><b>  目錄</b></p><p>  1、課程設(shè)計(jì)功能描述3</p><p>  2、課程設(shè)計(jì)分析3</p><p>

2、;  3、課程設(shè)計(jì)用資料4</p><p>  3.1、數(shù)字調(diào)節(jié)器介紹4</p><p>  3.2、SPI總線簡介5</p><p>  3.3、74HC595、TLC1543、TLC5615芯片簡介6</p><p>  3.3.1、74HC595簡介6</p><p>  3.3.2、TLC1543的簡

3、介8</p><p>  3.3.3、TLC5615的簡介10</p><p>  4、硬件電路原理圖設(shè)計(jì)12</p><p>  5、硬件電路PCB板圖設(shè)計(jì)13</p><p>  6、數(shù)字PID控制算法14</p><p>  6.1、抗積分飽和數(shù)字PID控制算法原理14</p><

4、p>  6.2、抗積分飽和數(shù)字PID控制算法流程圖17</p><p>  6.3積分飽和數(shù)字PID控制算法源程序18</p><p>  7、調(diào)試運(yùn)行結(jié)果及分析19</p><p>  8、課程設(shè)計(jì)經(jīng)驗(yàn)教訓(xùn)和心得體會19</p><p><b>  附錄22</b></p><p&g

5、t;  1、課程設(shè)計(jì)功能描述</p><p>  設(shè)計(jì)一個用于過程控制的通用數(shù)字調(diào)節(jié)器。數(shù)字調(diào)節(jié)器接收變送器提供的標(biāo)準(zhǔn)的4~20mA反饋信號,與標(biāo)準(zhǔn)的4~20mA給定值或直接設(shè)置的給定值進(jìn)行比較,對其誤差進(jìn)行數(shù)字PID運(yùn)算,輸出標(biāo)準(zhǔn)的4~20mA控制信號給執(zhí)行機(jī)構(gòu)。</p><p>  圖1、數(shù)字調(diào)節(jié)器使用圖</p><p>  圖2、數(shù)字調(diào)節(jié)器硬件系統(tǒng)框圖<

6、/p><p><b>  2、課程設(shè)計(jì)分析</b></p><p><b>  要求:</b></p><p>  1、數(shù)字調(diào)節(jié)器采用8位靜態(tài)LED顯示:高四位顯示給定值或參數(shù)名,低四位顯示反饋值或參數(shù)值。</p><p>  2、數(shù)字調(diào)節(jié)器采用4個按鍵的組合進(jìn)行參數(shù)設(shè)置和控制。</p>

7、<p>  3、數(shù)字調(diào)節(jié)器有一路4~20mA的輸入端:用于在串級控制時接收上一級的給定信號。</p><p>  4、數(shù)字調(diào)節(jié)器有一路4~20mA的輸出端:用于輸出控制器的控制信號給執(zhí)行機(jī)構(gòu)。</p><p>  5、數(shù)字調(diào)節(jié)器采用485通訊:可以與上位機(jī)進(jìn)行組態(tài)通訊。</p><p>  6、數(shù)字調(diào)節(jié)器采用抗積分飽和數(shù)字PID控制算法。</p>

8、;<p>  7、數(shù)字調(diào)節(jié)器采用DC12V供電,采用10位A/D轉(zhuǎn)換器TLC1543,采用10位D/A傳感器TLC5615,采用74HC595進(jìn)行靜態(tài)顯示的設(shè)計(jì)。</p><p>  數(shù)字調(diào)節(jié)器的工作都是在硬件環(huán)境下,由微處理器執(zhí)行程序完成。數(shù)字調(diào)節(jié)器的軟件包括監(jiān)控管理程序和應(yīng)用程序兩大部分。通用數(shù)字調(diào)節(jié)器的設(shè)計(jì)主要核心是單片機(jī),通過單片機(jī)來控制輸入和輸出量。由圖1-2可知:考慮帶單片機(jī)的管腳是有限

9、的,所以要采用總線技術(shù)。在此設(shè)計(jì)中我們采用了SPI總線技術(shù)。要想符合設(shè)計(jì)要求,就要盡可能的節(jié)省管腳,A/D轉(zhuǎn)換和D/A轉(zhuǎn)換都要用串行的。8位LED顯示采用的是串口的74HC595芯片。進(jìn)而使單片機(jī)的資源得到充分的利用。</p><p>  給定量和變送器輸出的都是標(biāo)準(zhǔn)的電流量,要通過電流轉(zhuǎn)成A/D可以處理的電壓量。由于單片機(jī)處理的是數(shù)字量,我們要將標(biāo)準(zhǔn)的模擬量通過A/D轉(zhuǎn)換,把已知的模擬量轉(zhuǎn)成單片機(jī)可以處理的數(shù)字

10、量。調(diào)節(jié)器輸出要控制執(zhí)行器,而執(zhí)行器所需要的是模擬量,通過D/A轉(zhuǎn)換把單片處理后的數(shù)字量裝換成標(biāo)準(zhǔn)的模擬量給執(zhí)行器。但是D/A輸出的是電壓量,所以采用電壓轉(zhuǎn)換成電流電路,把A/D輸出的電壓量轉(zhuǎn)換成執(zhí)行機(jī)構(gòu)所需要的標(biāo)準(zhǔn)的電流量。</p><p>  單片機(jī)的供電電壓是DC5V,給定的電源是DC12V。通過穩(wěn)壓芯片把DC12V變成DC5V。需要用7805芯片整定成DC5V來給單片機(jī)供電。</p><

11、;p><b>  3、課程設(shè)計(jì)用資料</b></p><p>  3.1、數(shù)字調(diào)節(jié)器介紹</p><p>  用數(shù)字技術(shù)和微電子技術(shù)實(shí)現(xiàn)閉環(huán)控制的調(diào)節(jié)器,又稱數(shù)字調(diào)節(jié)儀表,是數(shù)字控制器的一種。它接受來自生產(chǎn)過程的測量信號,由內(nèi)部的數(shù)字電路或微處理機(jī)作數(shù)字處理,按一定調(diào)節(jié)規(guī)律產(chǎn)生輸出數(shù)字信號或模擬信號驅(qū)動執(zhí)行器,完成對生產(chǎn)過程的閉環(huán)控制。</p>&

12、lt;p>  數(shù)字調(diào)節(jié)器分為數(shù)字式混合比率調(diào)節(jié)器、多回路調(diào)節(jié)器和單回路調(diào)節(jié)器三類。  ?、佟?shù)字式混合比率調(diào)節(jié)器 它是控制組分混合比的儀表。它與流量計(jì)、執(zhí)行器配套構(gòu)成混合比率控制系統(tǒng)和混合-批量控制系統(tǒng),用于液料混合配比和混合產(chǎn)品的批量發(fā)貨系統(tǒng)。  ?、凇《嗷芈氛{(diào)節(jié)器 用微處理機(jī)實(shí)現(xiàn)多回路調(diào)節(jié)功能的儀表。它可獨(dú)立應(yīng)用于單元性生產(chǎn)裝置(如工業(yè)爐窯、精餾塔等)中,完成裝置的全部或大部分控制作用。由于單元性裝置的類型很多,多回路調(diào)節(jié)器的

13、品種和類型也很繁雜。一臺多回路調(diào)節(jié)器可控制 8~16個調(diào)節(jié)回路,有的還可完成簡單的程序控制或批量控制。  ?、邸位芈氛{(diào)節(jié)器 用微處理機(jī)實(shí)現(xiàn)一個回路調(diào)節(jié)功能的儀表。它只有一個可送到執(zhí)行器去完成閉環(huán)控制的輸出。單回路調(diào)節(jié)器有兩種主要用途:一是用于系統(tǒng)的重要回路,以提高系統(tǒng)的可靠性和安全性;一是取代模擬調(diào)節(jié)器,以減少盤裝儀表的數(shù)量或提高原有回路的功能,如實(shí)現(xiàn)單回路的高級控制、順序控制、批量控制。</p><p>  

14、3.2、SPI總線簡介</p><p>  MOTOROLA公司的SPI總線的基本信號線為3根傳輸線,即SI、SO、SCK。傳輸?shù)乃俾视蓵r鐘信號SCK決定,SI為數(shù)據(jù)輸入、SO為數(shù)據(jù)輸出。采用SPI總線的系統(tǒng)如圖8-27所示,它包含了一個主片和多個從片,主片通過發(fā)出片選信號-CS來控制對哪個從片進(jìn)行通信,當(dāng)某個從片的-CS信號有效時,能通過SI接收指令、數(shù)據(jù),并通過SO發(fā)回?cái)?shù)據(jù)。而未被選中的從片的SO端處于高阻狀

15、態(tài)。</p><p>  主片在訪問某一從片時,必須使該從片的片選信號有效;主片在SCK信號的同步下,通過SI線發(fā)出指令、地址信息;如需將數(shù)據(jù)輸出,則接著寫指令,由SCK同步在SI線上發(fā)出數(shù)據(jù);如需讀回?cái)?shù)據(jù),則接著讀指令,由主片發(fā)出SCK,從片根據(jù)SCK的節(jié)拍通過SO發(fā)回?cái)?shù)據(jù)。</p><p>  因而對具有SPI接口的從片器件來講,SCK、SI是輸入信號,SO是輸出信號。SCK用于主片和

16、從片通信的同步。SI用于將信息傳輸?shù)狡骷斎氲男畔ㄖ噶?、地址和?shù)據(jù),指令、地址和數(shù)據(jù)的變化在SCK的低電平期間進(jìn)行,并由SCK信號的上升沿鎖存。SO 用于將信息從器件傳出,傳出的信息包括狀態(tài)和數(shù)據(jù),信息在SCK信號的下降沿移出。</p><p>  器件的讀操作。當(dāng)-CS信號有效時,在SCK信號的同步下,8位的讀指令送入器件,接著送入16位地址(由于25XX320只使用地址信號 A0~A11,地址的高4位無

17、效)。在讀指令和地址發(fā)出后,SCK繼續(xù)發(fā)出時鐘信號,此時存儲在該地址的數(shù)據(jù)由SCK控制從SO引腳移出。在每個數(shù)據(jù)移出后,內(nèi)部的地址指針自動加1,如繼續(xù)對器件發(fā)送SCK信號,可讀出下一個數(shù)據(jù)。當(dāng)?shù)刂分羔樣?jì)到0FFFH之后,將回到0000H。讀操作的結(jié)束由-CS信號變高實(shí)現(xiàn)。 25XX系列的串行EEPROM的寫操作通過寫允許及禁止指令控制,寫操作必須在器件處于寫允許狀態(tài)時進(jìn)行。</p

18、><p>  寫允許及禁止指令均為8位的指令,指令的操作過程為:將-CS信號置為低電平,在SCK信號的作用下,通過SI引腳輸入上述指令,在8位的指令送入器件之后,將-CS信號置為高電平,使器件鎖存于寫允許或?qū)懡範(fàn)顟B(tài)。如在輸入寫允許指令后未將-CS信號置為高電平,則寫允許狀態(tài)未鎖存,此時如直接進(jìn)行寫操作,數(shù)據(jù)將不能寫入存儲器。在上電、寫禁止指令、寫狀態(tài)寄存器指令、寫數(shù)據(jù)指令執(zhí)行之后,器件的寫允許狀態(tài)將被復(fù)位,即處于寫

19、禁止?fàn)顟B(tài)。</p><p>  寫操作通常在寫允許指令之后進(jìn)行,其時序如圖8-30所示。在寫允許狀態(tài)鎖存后,將-CS變高;再將-CS變低,在SCK的同步下輸入寫操作指令并送入16位地址,緊接著發(fā)送需寫入的數(shù)據(jù),寫入的數(shù)據(jù)一次最多可達(dá)32個,但必須保證在同一頁內(nèi)。一頁數(shù)據(jù)的地址從XXXX XXXX XXX0 0000 開始,到XXXX XXXX XXX1 1111結(jié)束,當(dāng)內(nèi)部的地址指針計(jì)數(shù)器達(dá)到XXXX XXXX

20、XXX1 1111后,繼續(xù)發(fā)送時鐘信號將使地址計(jì)數(shù)器回復(fù)到該頁的第一個地址,即XXXX XXXX XXX0 0000H。</p><p>  為了使數(shù)據(jù)有效寫入,-CS信號只能在寫入數(shù)據(jù)的最后一個字節(jié)的最低位寫入后變高。如-CS信號在其他時間變高,將無法保證數(shù)據(jù)的完整寫入。在寫操作的過程中,能通過讀狀態(tài)指令將狀態(tài)寄存器的內(nèi)容讀回,當(dāng)寫操作完成后,寫允許鎖存狀態(tài)將被復(fù)位。</p><p> 

21、 3.3、74HC595、TLC1543、TLC5615芯片簡介</p><p>  3.3.1、74HC595簡介</p><p>  74HC595是硅結(jié)構(gòu)的CMOS器件, 兼容低電壓TTL電路,遵守JEDEC標(biāo)準(zhǔn)。 74HC595是具有8位移位寄存器和一個存儲器,三態(tài)輸出功能。 移位寄存器和存儲器是分別的時鐘。 數(shù)據(jù)在SHcp的上升沿輸入到移位寄存器中,在STcp的上升沿輸入到存儲寄

22、存器中去。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖。移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7’),和一個異步的低電平復(fù)位,存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(為低電平),存儲寄存器的數(shù)據(jù)輸出到總線。8位串行輸入/輸出或者并行輸出移位寄存器,具有高阻關(guān)斷狀態(tài)。三態(tài)。將串行輸入的8位數(shù)字,轉(zhuǎn)變?yōu)椴⑿休敵龅?位數(shù)字,例如控制一個8位數(shù)碼管,將不會有閃爍。</p>&

23、lt;p>  74HC595的特點(diǎn);8位串行輸入 /8位串行或并行輸出 存儲狀態(tài)寄存器,三種狀態(tài)   輸出寄存器(三態(tài)輸出:就是具有高電平、低電平和高阻抗三種輸出狀態(tài)的門電路。)可以直接清除 100MHz的移位頻率。</p><p>  74HC595的輸出能力;并行輸出,總線驅(qū)動; 串行輸出;標(biāo)準(zhǔn)中等規(guī)模集成電路595移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7’),和一個異步的低電平復(fù)位,

24、存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(為低電平),存儲寄存器的數(shù)據(jù)輸出到總線。   參考數(shù)據(jù)   Cpd決定動態(tài)的能耗,   Pd=Cpd×VCC×f1+∑(CL×VCC^2×f0)   F1=輸入頻率,CL=輸出電容 f0=輸出頻率(MHz) Vcc=電源電壓。</p><p>  74HC595的引腳說明;</p><p>

25、;  符號 引腳 描述   </p><p>  Q0…Q7 第15腳, 1, 7 并行數(shù)據(jù)輸出   </p><p>  GND 第8腳 地   </p><p>  Q7’ 第9腳 串行數(shù)據(jù)輸出   </p><p>  MR 第10腳 主復(fù)位(低電平)   </p><p>  SHCP 第11腳 移位寄存器時鐘

26、輸入   </p><p>  STCP 第12腳 存儲寄存器時鐘輸入   </p><p>  OE 第13腳 輸出有效(低電平)   </p><p>  DS 第14腳 串行數(shù)據(jù)輸入   </p><p>  VCC 第16腳 電源</p><p><b>  。</b></p>

27、<p>  74HC595的功能表;  </p><p>  74HC595的注釋;</p><p>  H=高電平狀態(tài)   </p><p>  L=低電平狀態(tài)   </p><p><b>  ↑=上升沿   </b></p><p><b>  ↓=下降沿   <

28、;/b></p><p><b>  Z=高阻   </b></p><p><b>  NC=無變化   </b></p><p><b>  ×=無效   </b></p><p>  當(dāng)MR為高電平,OE為低電平時,數(shù)據(jù)在SHCP上升沿進(jìn)入移位寄存器,在S

29、TCP上升沿輸出到并行端口。</p><p>  3.3.2、TLC1543的簡介</p><p>  TLC1543 是由TI 公司開發(fā)的開關(guān)電容式AD 轉(zhuǎn)換器,該芯片具有如下的一些特點(diǎn):10 位精度、11 通道、三種內(nèi)建的自測模式、提供EOC(轉(zhuǎn)換完成)信號等。該芯片與單片機(jī)的接口采用串行接口方式,引線很少,與單片機(jī)連接簡單。圖1 是TLC1543 的引腳示意圖,其中A0~A10 是1

30、1路輸入,Vcc 和GND 分別是電源引腳,REF+和REF-分別是參考電源的正負(fù)引腳,使用時一般將REF-接到系統(tǒng)的地,達(dá)到一點(diǎn)接地的要求,以減少干擾。其余的引腳是TLC1543 與CPU 的接口,其中CS 為片選端,如不需選片,可直接接地。I/O Clock 是芯片的時鐘端,Adress 是地址選擇端,Data Out 是數(shù)據(jù)輸出端,這三根引腳分別接到CPU 的三個I/O 端即可。EOC 用于指示一次AD 轉(zhuǎn)換已完成,CPU 可以讀

31、取數(shù)據(jù),該引腳是低電平有效,根據(jù)需要,該引腳可接入CPU 的中斷引腳,一旦數(shù)據(jù)轉(zhuǎn)換完成,向CPU 提出中斷請求;此外,也可將該引腳接入一個普通的I/O 引腳,CPU 通過查詢該引腳的狀態(tài)來了解當(dāng)前的狀態(tài),甚至該引腳也可以不接,在CPU 向TLC1543發(fā)出轉(zhuǎn)換命令后,過一</p><p>  TLC1543的硬件結(jié)構(gòu)</p><p>  單片機(jī)與TLC1543 芯片的接口如圖3,從圖中可以

32、看出,這里使用了TLC1543 作為基準(zhǔn)電壓源,將REF-直接接地,P1.0、P1.1、P1.2、P1.3 和P1.4 分別與EOC、時鐘、地址、數(shù)據(jù)、片選端分別相連。</p><p>  在六位數(shù)碼管的后四位數(shù)碼管上輪流顯示TLC1543 各通道的測量值,同時用十六進(jìn)制表示的通道號顯示在第1 位數(shù)碼管上。</p><p>  圖3 使用TLC1543 制作的多路輸入電壓表電路圖</

33、p><p>  TLC1543的軟件設(shè)計(jì)</p><p>  由于采用串行接口,在硬件電路簡單的同時,帶來了軟件編制的復(fù)雜性,初學(xué)單片機(jī)的入門者很難掌握這類芯片的編程方法,這給此類芯片的應(yīng)用帶來一定的限制。為解決這一問題,我們在實(shí)際應(yīng)用該芯片的基礎(chǔ)上寫出了該芯片的驅(qū)動程序,有了驅(qū)動程序,使用者不必再關(guān)心TLC1543 數(shù)據(jù)手冊中的時序圖之類不易懂的部份,只要了解清楚驅(qū)動程序的用法,即可使用該芯

34、片。TLC1543 共有11 條輸入通道,這11 條通道的編號從0~10,讀取時根</p><p>  據(jù)編號來獲得想應(yīng)通道的數(shù)據(jù)。</p><p>  3.3.3、TLC5615的簡介</p><p>  TLC5615 為美國德州儀器公司 1999 年推出的產(chǎn)品,是具有串行接口的數(shù)模轉(zhuǎn)換器,其輸出為電壓型,最大輸出電壓是基準(zhǔn)電壓值的兩倍。帶有上電復(fù)位功能,即把

35、DAC 寄存器復(fù)位至全零。性能比早期電流型輸出的 DAC 要好。只需要通過 3 根串行總線就可以完成 10 位數(shù)據(jù)的串行輸入, 易于和工業(yè)標(biāo)準(zhǔn)的微處理器或微控制器(單片機(jī)) 接口, 適用于電池供電的測試儀表、移動電話,也適用于數(shù)字失調(diào)與增益調(diào)整以及工業(yè)控制場合。</p><p>  TLC5615器件的引腳圖及各引腳功能</p><p>  DIN: 串行數(shù)據(jù)輸入端; </p>

36、<p>  SCLK: 串行時鐘輸入端;   </p><p>  /CS: 芯片選用通端,低電平有效;   </p><p>  DOUT: 用于級聯(lián)時的串行數(shù)據(jù)輸出端;   </p><p>  AGND: 模擬地;   </p><p>  REFIN:基準(zhǔn)電壓輸入端, 2V~ (VDD - 2);   </p>

37、;<p>  OUT: DAC 模擬電壓輸出端;   </p><p>  VDD: 正電源端,4.5~5.5V ,通常取 5V。</p><p>  TLC5615的功能框圖</p><p>  TLC5615 的內(nèi)部功能框圖如下圖所示,它主要由以下幾部分組成:   1、 10 位 DAC 電路;   2、 一個 16 位移位寄存器, 接受串行移入的

38、二進(jìn)制數(shù),并且有一個級聯(lián)的數(shù)據(jù)輸出端DOUT ;   3、 并行輸入輸出的 10 位 DAC 寄存器, 為 10 位 DAC 電路提供待轉(zhuǎn)換的二進(jìn)制數(shù)據(jù);   4、電壓跟隨器為參考電壓端REFIN提供很高的輸入阻抗,大約10MΩ;   5、×2 電路提供最大值為 2 倍于 REFIN 的輸出;   6、上電復(fù)位電路和控制電路。 </p><p>  TLC5615功能框圖</p><

39、p>  兩種工作方式: (A)從上圖可以看出,16 位移位寄存器分為高 4 位虛擬位、低兩位填充位以及 10位有效位。在單片 TLC5615 工作時,只需要向 16 位移位寄存器按先后輸入 10位有效位和低 2 位填充位, 2 位填充位數(shù)據(jù)任意,這是第一種方式,即 12 位數(shù)據(jù)序列。 (B)第二種方式為級聯(lián)方式, 即 16 位數(shù)據(jù)列,可以將本片的 DOU T 接到下一片的 DIN , 需要向 16 位移位寄存器按先后輸入高 4 位

40、虛擬位、10 位有效位和低 2 位填充位, 由于增加了高 4 位虛擬位, 所以需要 16 個時鐘脈沖。</p><p>  TLC5615的工作時序</p><p>  TLC5615 工作時序如上圖所示。 可以看出,只有當(dāng)片選 CS 為低電平時, 串行輸入數(shù)據(jù)才能被移入16位 </p><p>  TLC5615工作時序</p><p> 

41、 移位寄存器。當(dāng) CS 為低電平時,在每一個 SCLK 時鐘的上升沿將 DIN 的一位數(shù)據(jù)移入 16 位移寄存器。注意, 二進(jìn)制最高有效位被導(dǎo)前移入。接著,CS 的上升沿將 16 位移位寄存器的 10 位有效數(shù)據(jù)鎖存于 10 位 DAC 寄存器, 供 DAC 電路進(jìn)行轉(zhuǎn)換; 當(dāng)片選 CS 為高電平時,串行輸入數(shù)據(jù)不能被移入 16 位移位寄存器。注意, CS 的上升和下降都必須發(fā)生在 SCL K 為低電平期間。</p>&l

42、t;p>  3.4、電壓轉(zhuǎn)電流電路介紹</p><p>  常用電壓轉(zhuǎn)換電流的電路:</p><p><b>  電壓轉(zhuǎn)電流電路</b></p><p>  如圖3所示的電路是電壓轉(zhuǎn)電流電路的一種,其工作原理為:</p><p><b>  (1)</b></p><p&g

43、t;  由運(yùn)算放大器的工作原理可知:</p><p><b>  (2)</b></p><p><b>  (3)</b></p><p>  聯(lián)合公式1、2、3得到:</p><p>  電阻R2兩端的電壓為:</p><p>  電阻R2兩端的電流為:</p>

44、;<p>  因?yàn)檫\(yùn)算放大器輸入的高阻狀態(tài):</p><p>  因此,如果:為1~5V,,則輸出電流為4~20mA。</p><p>  4、硬件電路原理圖設(shè)計(jì)</p><p>  在Protel99SE中,在使用鼠標(biāo)右鍵功能時,必須非??焖俚卦谑髽?biāo)右鍵Click,才能彈出右鍵菜單。稍慢一些菜單就彈不出來,這與一般軟件不同,要特別注意。 在Pro

45、tel99SE中,為方便使用自定義畫圖HotKeys和工具條及菜單, 可在原理圖編輯界面下分別定義SDC_SchHotKeys,SDC_SchToolbars,SDC_SchMenus, 而在原理圖庫文件編輯中可通過在Customize中的Menu功能中直接Import前面在原理圖編輯中定義的SDC_SchHotKeys,SDC_SchToolbars,SDC_SchMenus. 同

46、樣, 在PCB編輯界面下分別定義SDC_PcbHotKeys,SDC_PcbToolbars,SDC_PcbMenus, 而在原理圖庫文件編輯中可通過在Customize中的Menu功能中直接Import前面在PCB圖編輯中定義的SDC_PcbHotKeys,SDC_PcbToolbars,SDC_PcbMenus.</p><p>  5、硬件電路PCB板圖設(shè)計(jì)</p><p>  在P

47、CB中, 當(dāng)某些元件的Pad用手工定義的方法賦以NetLabels時, 當(dāng)在SCH中重新UPDATE PCB后, 自定義的網(wǎng)絡(luò)標(biāo)號被清掉。但有一好方法可快速恢復(fù)被清掉的手式網(wǎng)絡(luò)標(biāo)號,即用F8刪除此元件,然后緊接著按恢復(fù)鍵,則不僅被刪掉的元件被恢復(fù)了,并且被Update PCB清掉的網(wǎng)絡(luò)標(biāo)號也被恢復(fù)了。</p><p>  特別注意:在PROTEL 99SE自定義的快捷鍵、工具欄等信息均保存在C:\WINDOWS

48、\下的CLIENT99SE.RCS文件中,所以,只要經(jīng)常保存CLIENT99SE.RCS文件, 則在重裝系統(tǒng)后, 在安裝PROTEL 99SE后, 將此CLIENT99SE.RCS文件再拷貝到C:\WINDOEWS\下, 即可恢復(fù)以前設(shè)置的各種快捷鍵等。注意: 在恢復(fù)自定義工具欄時, 用到的自定義的圖標(biāo)文件*.bmp, 必須要拷貝到C:\Program Files\Design Explorer 99 SE\System\But

49、tons\子目錄下。by Dancheng Shen, January 14, 2006. Nanjing</p><p>  注意:在安裝PCB中文輸入功能后, 有可能影響菜單的設(shè)置, 一些功能少了, 一些功能變了. 如Print/Preview. 要恢復(fù). 菜單,工具欄和快捷鍵的設(shè)置存放在C:\Windows\CLIENT99SE.rcs文件中. 應(yīng)先保存原英文菜單.熱鍵和菜單及工具欄的自定義方法類似,

50、 都是在Customsize中找出相關(guān)功能的PROCESSING.</p><p>  重要的快捷鍵,HotKey: Q - 切換坐標(biāo)單位mil和mm。 L - 設(shè)置Design/Options, 主要經(jīng)常用于在Imperial和Metric下定義Visible Grid和Snap Grid。 一般為,英制:Visible grid=25mil,1000mil, Snap grid=25mil; 公制

51、:Visible grid=0.1mm,1mm, Snap grid=0.05mm(對顯示模塊PCB)。 Edit/Origin/Set - 可將當(dāng)前坐標(biāo)設(shè)置為Current Origin。這樣的好處是,坐標(biāo)原點(diǎn)是(0,0),可對稱布局,在設(shè)計(jì)顯示模塊PCB時特別有用,因?yàn)閷τ⒅坪凸贫际窃c(diǎn)。在設(shè)計(jì)模塊PCB時,將(10000mil,10000mil)設(shè)置為新的原點(diǎn)(0,0)。在用Reset可恢復(fù)原來的坐標(biāo)系統(tǒng),即左下角坐標(biāo)為

52、(0,0)。 Edit/Jump/Current Origin - 可使圖直接跳回到(0,0)。這個功能會經(jīng)常使用,所以可以設(shè)一個快捷鍵F2,直接跳回到當(dāng)前原點(diǎn)。 按住鼠標(biāo)右鍵可移動屏幕。 元件和Track均可在屬性</p><p>  6、數(shù)字PID控制算法</p><p>  6.1、抗積分飽和數(shù)字PID控制算法原理</p><p>  模擬PI

53、D控制系統(tǒng)組成</p><p>  圖4-1模擬PID控制系統(tǒng)原理框圖</p><p>  PID調(diào)節(jié)器的微分方程 </p><p><b>  (1)</b></p><p>  式中 (2)</p><p>  PID調(diào)節(jié)器的

54、傳遞函數(shù)</p><p><b>  (3)</b></p><p>  由于數(shù)字PID控制是一種采樣控制,他只能根據(jù)采樣時刻的誤差來計(jì)算控制量。在采樣的時刻(T為采樣周期,為正整數(shù)),經(jīng)歷離散化后可得位置式算法公式</p><p><b>  (4)</b></p><p>  式中:k為采樣序號

55、,k=0,1,2,……;u(k)為第k次采樣時刻的計(jì)算機(jī)輸出值:e(k)為第k次采樣時刻輸入的偏差值;微積分系數(shù),;為微分系數(shù),。</p><p>  積分飽和現(xiàn)象是指如果系統(tǒng)存在一個方向的偏差,PID控制器的輸出由于積分作用的不斷累加而加大,從而導(dǎo)致執(zhí)行機(jī)構(gòu)達(dá)到極限位置,若控制器輸出繼續(xù)增大,執(zhí)行器開度不可能再增大,此時計(jì)算機(jī)輸出控制量超出了正常運(yùn)行范圍而進(jìn)入飽和區(qū)。一旦系統(tǒng)出現(xiàn)反向偏差,逐漸從飽和區(qū)退出。進(jìn)入

56、飽和區(qū)越深則退出飽和區(qū)時間越長。在這段時間里,執(zhí)行機(jī)構(gòu)仍然停留在極限位置而不隨偏差反向而立即做出相應(yīng)的改變,這時系統(tǒng)就像失控一樣,造成控制性能惡化,這種現(xiàn)象稱為積分飽和現(xiàn)象或積分失控現(xiàn)象。    防止積分飽和的方法之一就是抗積分飽和法,該方法的思路是在計(jì)算時,首先判斷上一時刻的控制量是否已經(jīng)超出了極限范圍: 如果,則只累加負(fù)偏差; 如果,則只累加正偏差。從而避免控制量長時間停留在飽和區(qū)。</p>&l

57、t;p>  6.2、抗積分飽和數(shù)字PID控制算法流程圖</p><p>  6.3積分飽和數(shù)字PID控制算法源程序</p><p>  float u1;// 當(dāng)前輸出量</p><p>  float u2;//上一時刻輸出量</p><p>  float e1;//當(dāng)前誤差</p><p>  float

58、e2;//上一時刻的誤差</p><p>  float k=0.2,i=0.1,d=0.2;//初始化三個控制參數(shù)</p><p>  float PID()</p><p><b>  {</b></p><p>  float pd,ee;</p><p>  char flag;</

59、p><p>  pd=k*e1+d*(e1-e2);</p><p>  ee=ee+e1; //積分項(xiàng)累加</p><p>  if(u2≥Umax)</p><p><b>  {</b></p><p><b>  if(e1>0)</b></p>&l

60、t;p><b>  {</b></p><p><b>  flag=0;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

61、<p><b>  flag=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p

62、><p>  if(u2≤Umin)</p><p><b>  {</b></p><p><b>  if(e1>0)</b></p><p><b>  {</b></p><p><b>  flag=0;</b><

63、/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  flag=1;</b></p><p><b>  }</b>

64、</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  flag=1;</b></p><p><b>  }</b

65、></p><p><b>  }</b></p><p>  u1=pd+flag*ee;</p><p><b>  u2=u1;</b></p><p>  e2=e1; //參數(shù)更新</p><p>  return u1;</p><p&g

66、t;<b>  }</b></p><p>  7、調(diào)試運(yùn)行結(jié)果及分析</p><p>  數(shù)字調(diào)節(jié)器的變成相對的是簡單的,通過4個按鍵的組合進(jìn)行參數(shù)設(shè)置和控制。采用8位靜態(tài)LED顯示:高四位顯示給定值或參數(shù)名,低四位顯示反饋值或參數(shù)值。通過485通訊可以與上位機(jī)進(jìn)行通訊。</p><p>  這里面最難得是PID控制,進(jìn)行對三個參數(shù)的整定是最

67、麻煩的。要做到最好就要有足夠的耐心,而且還要要求上升時間最小、超調(diào)量不能太大、調(diào)整時間不要太長等等。要實(shí)現(xiàn)這樣的功能要不斷的調(diào)試。</p><p>  8、課程設(shè)計(jì)經(jīng)驗(yàn)教訓(xùn)和心得體會</p><p>  作為一名自動化專業(yè)的大三學(xué)生,我覺得做單片機(jī)課程設(shè)計(jì)是十分有意義的,而且是十分必要的。在已度過的大學(xué)時間里,我們大多數(shù)接觸的是專業(yè)課。我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去鍛煉我

68、們的實(shí)踐能力?如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識運(yùn)用到實(shí)踐中去呢?我想做類似的課程設(shè)計(jì)就為我們提供了良好的實(shí)踐平臺。 這次單片機(jī)課程設(shè)計(jì)我們歷時兩個星期,在我班里算是倒數(shù)幾組完成的吧,但經(jīng)過這兩個星期的實(shí)踐和體驗(yàn)下來,我們又怎么會去在乎那個先后問題呢,因?yàn)閷ξ襾碚f學(xué)到的不僅是那些知識,更多的是團(tuán)隊(duì)和合作?,F(xiàn)在想來,也許學(xué)校安排的課程設(shè)計(jì)有著它更深層的意義吧,它不僅僅讓我們綜合那些理論知識來運(yùn)用到設(shè)計(jì)和創(chuàng)新,還讓我們知道了

69、一個團(tuán)隊(duì)凝聚在一起時所能發(fā)揮出的巨大潛能! 單片機(jī)作為我們的主要專業(yè)課之一,雖然在大三開學(xué)初我對這門課并沒有什么興趣,覺得那些程序枯燥乏味,但在這次課程設(shè)計(jì)后我發(fā)現(xiàn)自己在一點(diǎn)一滴的努力中對單片機(jī)的興趣也在逐漸增加。 幾個星期前我們還在為到底選那個課題而發(fā)生分歧,最后還是在老師的耐心分析和指導(dǎo)下完成了課題的選定,但是隨之而來的問題卻遠(yuǎn)比我們想想的要困</p><p><b>  附錄

70、</b></p><p>  附錄1、數(shù)字調(diào)節(jié)器原理圖</p><p>  附錄2.、數(shù)字調(diào)節(jié)器PCB板圖</p><p>  附錄3、數(shù)字調(diào)節(jié)器部分源程序(A/D采集、D/A輸出,靜態(tài)顯示)</p><p>  1、 1543A/D采集源程序</p><p>  ADC: MOV A,#0&

71、lt;/p><p><b>  MOV R2,A</b></p><p><b>  CLR P1.2</b></p><p><b>  CLR P1.4</b></p><p><b>  MOV A,R2</b></p><p&g

72、t;<b>  RLC A</b></p><p><b>  MOV R7,#4</b></p><p>  C_L1: RLC A</p><p>  MOV P1.0,C</p><p><b>  SETB P1.2</b></p><p

73、><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  CLR P1.2</b></p><p>  DJNZ R7,C_L1</p><p><b>  MOV R7,#6</b></p>

74、<p>  C_L2: SETB P1.2</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p&

75、gt;<p><b>  CLR ADClk</b></p><p>  DJNZ R7,C_L2</p><p><b>  SETB P1.4</b></p><p><b>  NOP</b></p><p><b>  NOP</b>

76、</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  CLR P1.4</b></p><p><b>  NOP</b></p><p><b>  NOP

77、</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  SETB P1.1</b></p><p><b>  SETB P1.2</b></p><p&

78、gt;<b>  MOV P1.1</b></p><p>  MOV ACC.1,C</p><p><b>  CLR P1.2</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p>&l

79、t;p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  SETB P1.1</b></p><p><b>  SETB P1.2</b></p><p>  MOV C,P1.1</p>

80、;<p>  MOV ACC.0,C</p><p><b>  CLR P1.2</b></p><p>  ANL A,#00000011B </p><p><b>  MOV R0,A</b></p><p><b>  MOV R7,#8</b><

81、/p><p>  C_L3: NOP</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  SETB P1.1</b>

82、</p><p><b>  SETBP1.2</b></p><p>  MOV C,P1.1</p><p>  MOV ACC.0,C</p><p><b>  RLC A</b></p><p><b>  CLR P1.2</b></p

83、><p>  DJNZ R7,C_L3</p><p><b>  SETB P1.4</b></p><p><b>  MOV R1,A</b></p><p><b>  RET</b></p><p>  2、D/A輸出程序:</p>

84、<p>  #include<reg52.h></p><p>  #include<intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit clk=P1^0;<

85、;/p><p>  sbit addr=P1^1;</p><p>  sbit cs2=P1^3;</p><p>  void DA(uint dd)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><

86、p>  uint temp;</p><p><b>  temp=dd;</b></p><p><b>  temp<<=6;</b></p><p><b>  clk=0;</b></p><p><b>  cs2=0;</b>

87、</p><p>  for(i=0;i<12;i++)</p><p><b>  {</b></p><p>  addr=(bit)(temp&0x80);</p><p><b>  clk=1;</b></p><p><b>  temp&

88、lt;<=1;</b></p><p><b>  clk=0;</b></p><p><b>  }</b></p><p><b>  cs2=1;</b></p><p><b>  }</b></p><p&

89、gt;  3、 靜態(tài)顯示源程序</p><p>  #include <reg51.h></p><p>  #include <intrins.h></p><p>  #define  NOP() _nop_()</p><p>  void delay(

90、unsigned int i);</p><p>  Unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};</p><

91、p><b>  main()</b></p><p><b>  {  </b></p><p>  unsigned int LedNumVal=1 ,C ;</p><p><b>  while(1)</b></p>

92、<p><b>  {      </b></p><p>  if (++C>= 300) </p><p>  { LedNumVal++ ;</p><p>  C =0;  

93、60;                   }     </p><p>  P0 = LED7Code[LedNumVal%10]&0x7f;&l

94、t;/p><p>  delay(150);            }   </p><p>  }            &

95、#160;                       </p><p>  void delay(unsigned int i)</p>&

96、lt;p><b>  {</b></p><p><b>  char j;</b></p><p>  for(i; i > 0; i--)</p><p>  for(j = 200; j > 0;&#

97、160;j--);</p><p><b>  }</b></p><p>  unsigned int ADCSelChannel(unsigned char Channel)</p><p><b>  {</b></p><p>  unsigned&#

98、160;int ConvertValue;</p><p>  unsigned char i, Chan;</p><p>  unsigned char ConvertValueL, ConvertValueH;</p><p>  unsigned char delay;

99、</p><p>  ConvertValueL = ConvertValueH = 0; </p><p>  delay = 0;</p><p><b>  if (EOC)</b></p><p><b>  {</b

100、></p><p>  Clock = 0;</p><p>  ChipSelect = 1;</p><p><b>  Wait2us;</b></p><p>  ChipSelect = 0;</p><p><b&

101、gt;  Wait2us;</b></p><p>  Channel = Channel << 4;</p><p>  for (i = 0; i < 4; i ++) </p><p><b>

102、;  {</b></p><p>  Chan = Channel;</p><p>  Chan = Chan >> 7;</p><p>  DataIn = (bit)Chan;</p><p><b>  Wait2us;

103、</b></p><p>  Clock = 1;</p><p>  Clock = 0;</p><p>  Channel = Channel << 1;</p><p><b>  }</b></p>

104、;<p>  for (i = 0; i < 6;i ++)</p><p><b>  {</b></p><p>  Clock = 1;</p><p>  Clock = 0;</p><

105、p><b>  }</b></p><p>  ChipSelect = 1;</p><p>  while ((!EOC) && (delay < 10))</p><p><b>  {</b></p>&

106、lt;p><b>  Wait10us;</b></p><p><b>  delay ++;</b></p><p><b>  }</b></p><p>  if (delay == 10)</p><p><b>

107、;  {</b></p><p>  return (0xFFFF);</p><p><b>  }</b></p><p><b>  Else</b></p><p><b>  Wait10us;</b></p><p> 

108、 Clock = 0;</p><p>  ChipSelect = 1;</p><p><b>  Wait1us;</b></p><p>  ChipSelect = 0;</p><p><b>  Wait1us;</b><

109、;/p><p>  for (i = 0; i < 2; i ++) </p><p>  Clock = 1;</p><p>  DataOut = 1;</p><p>  ConvertValueH

110、60;<<= 1;</p><p>  if (DataOut)</p><p>  ConvertValueH |= 0x1;</p><p>  Clock = 0;</p><p><b>  Wait1us;</b></p>&

111、lt;p><b>  } </b></p><p>  for (i = 0; i < 8; i ++) </p><p><b>  {</b></p><p>  Clock = 1;&l

112、t;/p><p>  DataOut = 1;</p><p>  ConvertValueL <<= 1;</p><p>  ConvertValueL |= 0x1;</p><p>  Clock = 0;</p><p>

113、<b>  Wait1us;</b></p><p><b>  } </b></p><p>  ChipSelect=1;</p><p>  ConvertValue = ConvertValueH;</p><p>  ConvertValue <

114、;<= 8;</p><p>  ConvertValue |= ConvertValueL;</p><p>  return (ConvertValue);</p><p><b>  }</b></p><p><b>  }</b></p&

溫馨提示

  • 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

提交評論