Σ-ΔA/D技術(shù)具有高分辨率、高線性度和低成本的特點(diǎn)。本文基于TI公司的MSP430F1121單片機(jī),介紹了采用內(nèi)置比較器和外圍電路構(gòu)成類似于Σ-△的高精度A/D實(shí)現(xiàn)方案,適合用于對(duì)溫度、壓力和電壓等緩慢變化信號(hào)的采集應(yīng)用。 在各種A/D轉(zhuǎn)換器中,最常用是逐次逼近法(SAR)A/D,該類器件具有轉(zhuǎn)換時(shí)間固定且快速的特點(diǎn),但難以顯著提高分辨率;積分型A/D 有較強(qiáng)的抗干擾能力,但轉(zhuǎn)換時(shí)間較長(zhǎng);過(guò)采樣Σ-ΔA/D由于其高分辨率,高線性度及低成本的特點(diǎn),正得到越來(lái)越多的應(yīng)用。根據(jù)這些特點(diǎn),本文以TI公司的MSP430F1121單片機(jī)實(shí)現(xiàn)了一種類似于Σ-ΔA/D技術(shù)的高精度轉(zhuǎn)換器方案。 MSP430F1121是16位RISC結(jié)構(gòu)的FLASH型單片機(jī),該芯片有14個(gè)雙向I/O口并兼有中斷功能,一個(gè)16位定時(shí)器兼有計(jì)數(shù)和定時(shí)功能。I/O口輸出高電平時(shí)電壓接近Vcc,低電平時(shí)接近Vss,因此,一個(gè)I/O口可以看作一位DAC,具有PWM功能。 該芯片具有一個(gè)內(nèi)置模擬電壓比較器,只須外接一只電阻和電容即可構(gòu)成一個(gè)類似于Σ-Δ技術(shù)的高精度單斜率A/D。一般而言,比較器在使用過(guò)程中會(huì)受到兩種因素的影響,一種是比較器輸入端的偏置電壓的積累;另一種是兩個(gè)輸入端電壓接近到一程度時(shí),輸出端會(huì)產(chǎn)生振蕩。 MSP430F1121單片機(jī)在比較器兩輸入端對(duì)應(yīng)的單片機(jī)端口與片外輸入信號(hào)的連接線路保持不變的情況下,可通過(guò)軟件將比較器兩輸入端與對(duì)應(yīng)的單片機(jī)端口的連接線路交換,并同時(shí)將比較器的輸出極性變換,這樣抵消了比較器的輸入端累積的偏置電壓。通過(guò)在內(nèi)部將輸出連接到低通濾波器后,即使在比較器輸入端兩比較電壓非常接近,經(jīng)過(guò)濾波后也不會(huì)出現(xiàn)輸出端的振蕩現(xiàn)象,從而消除了輸出端震蕩的問(wèn)題。利用內(nèi)置比較器實(shí)現(xiàn)高精度A/D圖1是一個(gè)可直接使用的A/D轉(zhuǎn)換方案,該方案是一個(gè)高精度的積分型A/D轉(zhuǎn)換器。其基本原理是用單一的I/O端口,執(zhí)行1位的數(shù)模轉(zhuǎn)換,以比較器的輸出作反饋,來(lái)維持Vout與Vin相等。圖1:利用MSP430F1121實(shí)現(xiàn)的實(shí)用A/D轉(zhuǎn)換器電路方案。
標(biāo)簽: 用單片機(jī) 內(nèi)置 比較器 變換器
上傳時(shí)間: 2013-11-10
上傳用戶:lliuhhui
九.輸入/輸出保護(hù)為了支持多任務(wù),80386不僅要有效地實(shí)現(xiàn)任務(wù)隔離,而且還要有效地控制各任務(wù)的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護(hù)。 這里下載本文源代碼。 <一>輸入/輸出保護(hù)80386采用I/O特權(quán)級(jí)IPOL和I/O許可位圖的方法來(lái)控制輸入/輸出,實(shí)現(xiàn)輸入/輸出保護(hù)。 1.I/O敏感指令輸入輸出特權(quán)級(jí)(I/O Privilege Level)規(guī)定了可以執(zhí)行所有與I/O相關(guān)的指令和訪問(wèn)I/O空間中所有地址的最外層特權(quán)級(jí)。IOPL的值在如下圖所示的標(biāo)志寄存器中。 標(biāo) 志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O許可位圖規(guī)定了I/O空間中的哪些地址可以由在任何特權(quán)級(jí)執(zhí)行的程序所訪問(wèn)。I/O許可位圖在任務(wù)狀態(tài)段TSS中。 I/O敏感指令 指令 功能 保護(hù)方式下的執(zhí)行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設(shè)置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數(shù)據(jù) CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫(xiě)數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫(xiě)字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿足所列條件時(shí)才可以執(zhí)行,所以把它們稱為I/O敏感指令。從表中可見(jiàn),當(dāng)前特權(quán)級(jí)不在I/O特權(quán)級(jí)外層時(shí),可以正常執(zhí)行所列的全部I/O敏感指令;當(dāng)特權(quán)級(jí)在I/O特權(quán)級(jí)外層時(shí),執(zhí)行CLI和STI指令將引起通用保護(hù)異常,而其它四條指令是否能夠被執(zhí)行要根據(jù)訪問(wèn)的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執(zhí)行,那么將引起出錯(cuò)碼為0的通用保護(hù)異常。 由于每個(gè)任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個(gè)任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實(shí)模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿足實(shí)際要求需要。因?yàn)檫@樣做會(huì)使得在特權(quán)級(jí)3執(zhí)行的應(yīng)用程序要么可訪問(wèn)所有I/O地址,要么不可訪問(wèn)所有I/O地址。實(shí)際需要與此剛好相反,只允許任務(wù)甲的應(yīng)用程序訪問(wèn)部分I/O地址,只允許任務(wù)乙的應(yīng)用程序訪問(wèn)另一部分I/O地址,以避免任務(wù)甲和任務(wù)乙在訪問(wèn)I/O地址時(shí)發(fā)生沖突,從而避免任務(wù)甲和任務(wù)乙使用使用獨(dú)享設(shè)備時(shí)發(fā)生沖突。 因此,在IOPL的基礎(chǔ)上又采用了I/O許可位圖。I/O許可位圖由二進(jìn)制位串組成。位串中的每一位依次對(duì)應(yīng)一個(gè)I/O地址,位串的第0位對(duì)應(yīng)I/O地址0,位串的第n位對(duì)應(yīng)I/O地址n。如果位串中的第位為0,那么對(duì)應(yīng)的I/O地址m可以由在任何特權(quán)級(jí)執(zhí)行的程序訪問(wèn);否則對(duì)應(yīng)的I/O地址m只能由在IOPL特權(quán)級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)。如果在I/O外層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)位串中位值為1的位所對(duì)應(yīng)的I/O地址,那么將引起通用保護(hù)異常。 I/O地址空間按字節(jié)進(jìn)行編址。一條I/O指令最多可涉及四個(gè)I/O地址。在需要根據(jù)I/O位圖決定是否可訪問(wèn)I/O地址的情況下,當(dāng)一條I/O指令涉及多個(gè)I/O地址時(shí),只有這多個(gè)I/O地址所對(duì)應(yīng)的I/O許可位圖中的位都為0時(shí),該I/O指令才能被正常執(zhí)行,如果對(duì)應(yīng)位中任一位為1,就會(huì)引起通用保護(hù)異常。 80386支持的I/O地址空間大小是64K,所以構(gòu)成I/O許可位圖的二進(jìn)制位串最大長(zhǎng)度是64K個(gè)位,即位圖的有效部分最大為8K字節(jié)。一個(gè)任務(wù)實(shí)際需要使用的I/O許可位圖大小通常要遠(yuǎn)小于這個(gè)數(shù)目。 當(dāng)前任務(wù)使用的I/O許可位圖存儲(chǔ)在當(dāng)前任務(wù)TSS中低端的64K字節(jié)內(nèi)。I/O許可位圖總以字節(jié)為單位存儲(chǔ),所以位串所含的位數(shù)總被認(rèn)為是8的倍數(shù)。從前文中所述的TSS格式可見(jiàn),TSS內(nèi)偏移66H的字確定I/O許可位圖的開(kāi)始偏移。由于I/O許可位圖最長(zhǎng)可達(dá)8K字節(jié),所以開(kāi)始偏移應(yīng)小于56K,但必須大于等于104,因?yàn)門(mén)SS中前104字節(jié)為T(mén)SS的固定格式,用于保存任務(wù)的狀態(tài)。 1.I/O訪問(wèn)許可檢查細(xì)節(jié)保護(hù)模式下處理器在執(zhí)行I/O指令時(shí)進(jìn)行許可檢查的細(xì)節(jié)如下所示。 (1)若CPL<=IOPL,則直接轉(zhuǎn)步驟(8);(2)取得I/O位圖開(kāi)始偏移;(3)計(jì)算I/O地址對(duì)應(yīng)位所在字節(jié)在I/O許可位圖內(nèi)的偏移;(4)計(jì)算位偏移以形成屏蔽碼值,即計(jì)算I/O地址對(duì)應(yīng)位在字節(jié)中的第幾位;(5)把字節(jié)偏移加上位圖開(kāi)始偏移,再加1,所得值與TSS界限比較,若越界,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(6)若不越界,則從位圖中讀對(duì)應(yīng)字節(jié)及下一個(gè)字節(jié);(7)把讀出的兩個(gè)字節(jié)與屏蔽碼進(jìn)行與運(yùn)算,若結(jié)果不為0表示檢查未通過(guò),則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(8)進(jìn)行I/O訪問(wèn)。設(shè)某一任務(wù)的TSS段如下: TSSSEG SEGMENT PARA USE16 TSS <> ;TSS低端固定格式部分 DB 8 DUP(0) ;對(duì)應(yīng)I/O端口00H—3FH DB 10000000B ;對(duì)應(yīng)I/O端口40H—47H DB 01100000B ;對(duì)用I/O端口48H—4FH DB 8182 DUP(0ffH) ;對(duì)應(yīng)I/O端口50H—0FFFFH DB 0FFH ;位圖結(jié)束字節(jié)TSSLen = $TSSSEG ENDS 再假設(shè)IOPL=1,CPL=3。那么如下I/O指令有些能正常執(zhí)行,有些會(huì)引起通用保護(hù)異常: in al,21h ;(1)正常執(zhí)行 in al,47h ;(2)引起異常 out 20h,al ;(3)正常實(shí)行 out 4eh,al ;(4)引起異常 in al,20h ;(5)正常執(zhí)行 out 20h,eax ;(6)正常執(zhí)行 out 4ch,ax ;(7)引起異常 in ax,46h ;(8)引起異常 in eax,42h ;(9)正常執(zhí)行 由上述I/O許可檢查的細(xì)節(jié)可見(jiàn),不論是否必要,當(dāng)進(jìn)行許可位檢查時(shí),80386總是從I/O許可位圖中讀取兩個(gè)字節(jié)。目的是為了盡快地執(zhí)行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個(gè)字節(jié)。例如,上面的第(8)條指令要對(duì)I/O位圖中的兩個(gè)位進(jìn)行檢查,其低位是某個(gè)字節(jié)的最高位,高位是下一個(gè)字節(jié)的最低位。可見(jiàn)即使只要檢查兩個(gè)位,也可能需要讀取兩個(gè)字節(jié)。另一方面,最多檢查四個(gè)連續(xù)的位,即最多也只需讀取兩個(gè)字節(jié)。所以每次要讀取兩個(gè)字節(jié)。這也是在判別是否越界時(shí)再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節(jié)時(shí)產(chǎn)生越界,必須在I/O許可位圖的最后填加一個(gè)全1的字節(jié),即0FFH。此全1的字節(jié)應(yīng)填加在最后一個(gè)位圖字節(jié)之后,TSS界限范圍之前,即讓填加的全1字節(jié)在TSS界限之內(nèi)。 I/O許可位圖開(kāi)始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當(dāng)TSS的界限大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖的有效部分就有8K字節(jié),I/O許可檢查全部根據(jù)全部根據(jù)該位圖進(jìn)行。當(dāng)TSS的界限不大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖有效部分就不到8K字節(jié),于是對(duì)較小I/O地址訪問(wèn)的許可檢查根據(jù)位圖進(jìn)行,而對(duì)較大I/O地址訪問(wèn)的許可檢查總被認(rèn)為不可訪問(wèn)而引起通用保護(hù)故障。因?yàn)檫@時(shí)會(huì)發(fā)生字節(jié)越界而引起通用保護(hù)異常,所以在這種情況下,可認(rèn)為不足的I/O許可位圖的高端部分全為1。利用這個(gè)特點(diǎn),可大大節(jié)約TSS中I/O許可位圖占用的存儲(chǔ)單元,也就大大減小了TSS段的長(zhǎng)度。 <二>重要標(biāo)志保護(hù)輸入輸出的保護(hù)與存儲(chǔ)在標(biāo)志寄存器EFLAGS中的IOPL密切相關(guān),顯然不能允許隨便地改變IOPL,否則就不能有效地實(shí)現(xiàn)輸入輸出保護(hù)。類似地,對(duì)EFLAGS中的IF位也必須加以保護(hù),否則CLI和STI作為敏感指令對(duì)待是無(wú)意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對(duì)EFLAGS中的這三個(gè)字段的處理比較特殊,只有在較高特權(quán)級(jí)執(zhí)行的程序才能執(zhí)行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權(quán)級(jí)下對(duì)這三個(gè)字段的處理情況。 不同特權(quán)級(jí)對(duì)標(biāo)志寄存器特殊字段的處理 特權(quán)級(jí) VM標(biāo)志字段 IOPL標(biāo)志字段 IF標(biāo)志字段 CPL=0 可變(初POPF指令外) 可變 可變 0 不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見(jiàn),只有在特權(quán)級(jí)0執(zhí)行的程序才可以修改IOPL位及VM位;只能由相對(duì)于IOPL同級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序才可以修改IF位。與CLI和STI指令不同,在特權(quán)級(jí)不滿足上述條件的情況下,當(dāng)執(zhí)行POPF指令和IRET指令時(shí),如果試圖修改這些字段中的任何一個(gè)字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標(biāo)志中的VM位總為0。 <三>演示輸入輸出保護(hù)的實(shí)例(實(shí)例九)下面給出一個(gè)用于演示輸入輸出保護(hù)的實(shí)例。演示內(nèi)容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權(quán)指令引起的異常;使用段間調(diào)用指令CALL通過(guò)任務(wù)門(mén)調(diào)用任務(wù),實(shí)現(xiàn)任務(wù)嵌套。 1.演示步驟實(shí)例演示的內(nèi)容比較豐富,具體演示步驟如下:(1)在實(shí)模式下做必要準(zhǔn)備后,切換到保護(hù)模式;(2)進(jìn)入保護(hù)模式的臨時(shí)代碼段后,把演示任務(wù)的TSS段描述符裝入TR,并設(shè)置演示任務(wù)的堆棧;(3)進(jìn)入演示代碼段,演示代碼段的特權(quán)級(jí)是0;(4)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)1。測(cè)試任務(wù)1能夠順利進(jìn)行;(5)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)2。測(cè)試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)3。測(cè)試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)4。測(cè)試任務(wù)4演示特權(quán)指令如何引起通用保護(hù)異常;(8)從演示代碼轉(zhuǎn)臨時(shí)代碼,準(zhǔn)備返回實(shí)模式;(9)返回實(shí)模式,并作結(jié)束處理。
上傳時(shí)間: 2013-12-11
上傳用戶:nunnzhy
用單片機(jī)實(shí)現(xiàn)溫度遠(yuǎn)程顯示摘 要:文章介紹了用AT89S8252單片機(jī)的串行接口與智能溫度巡回檢測(cè)儀(XJ-08S)通過(guò)RS—485總線相互通訊實(shí)現(xiàn)熱水溫度遠(yuǎn)程顯示的一種低成本解決方案,內(nèi)容涉及RS—485總線通訊、單片機(jī)驅(qū)動(dòng)數(shù)碼管顯示、數(shù)據(jù)轉(zhuǎn)換以及鍵盤(pán)處理軟硬件設(shè)計(jì)等內(nèi)容。關(guān)鍵詞:?jiǎn)纹瑱C(jī) RS—485總線 數(shù)碼管顯示 數(shù)據(jù)轉(zhuǎn)換 鍵盤(pán)處理一、前 言目前檢測(cè)溫度一般采用熱電偶或熱敏電阻作為傳感器,這種傳感器至儀表之間一般都要用專用的溫度補(bǔ)償導(dǎo)線,而溫度補(bǔ)償導(dǎo)線價(jià)格很貴,并且線路太長(zhǎng)也會(huì)影響測(cè)量精度。在實(shí)際應(yīng)用中往往需要對(duì)較遠(yuǎn)處(1KM左右)的溫度信號(hào)進(jìn)行監(jiān)視。現(xiàn)有的解決方案有很多,例如:1、 在現(xiàn)場(chǎng)用智能儀表對(duì)溫度信號(hào)進(jìn)行測(cè)量,用計(jì)算機(jī)作上位機(jī)與智能儀表進(jìn)行通訊來(lái)實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)(采用這種方案要增加計(jì)算機(jī)設(shè)備及相關(guān)計(jì)算機(jī)軟件)。2、 NCU+DDC實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)。用兩個(gè)DDC,一個(gè)安裝在現(xiàn)場(chǎng)測(cè)量溫度,另一個(gè)安裝在監(jiān)視地,兩個(gè)DDC通過(guò)NCU進(jìn)行通訊從而實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)。但以上方案都存在成本高的問(wèn)題,有沒(méi)有低成本的解決方案呢?其實(shí),在單片機(jī)應(yīng)用日益廣泛的今天,完全可以用單片機(jī)以極低的成本來(lái)實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)。二、問(wèn)題的提出我單位管理的鍋爐房同時(shí)給兩棟建筑物內(nèi)的兩家酒店供應(yīng)蒸汽,由安裝在兩棟建筑物地下室的熱交換器進(jìn)行熱交換后產(chǎn)生熱水送給客房。從鍋爐房至兩個(gè)熱交換站的距離分別約600米,值班人員要不停地奔波于兩個(gè)熱交換站與鍋爐房之間進(jìn)行設(shè)備巡視,檢查熱水溫度是否控制在規(guī)定的范圍,這樣不僅增加了值班人員的勞動(dòng)強(qiáng)度,同時(shí)也使鍋爐房經(jīng)常無(wú)人(因每班1人值班)。如果能在鍋爐房顯示兩個(gè)熱交換站內(nèi)各熱交換器的熱水溫度,則值班人員僅在熱水溫度異常時(shí)才需到各熱交換站檢查設(shè)備,這樣便可解決上述問(wèn)題。我公司曾就此問(wèn)題找專業(yè)公司作過(guò)方案,其報(bào)價(jià)在人民幣10萬(wàn)元左右,后因種種原因該項(xiàng)目未實(shí)施。經(jīng)過(guò)分析,本人發(fā)現(xiàn)可以用單片機(jī)+智能儀表以低成本實(shí)現(xiàn)溫度遠(yuǎn)程顯示,并且經(jīng)過(guò)實(shí)驗(yàn)取得了成功,現(xiàn)將設(shè)計(jì)方案簡(jiǎn)述如下:三、控制要求及解決方案選擇 1、 兩個(gè)熱交換站分高低區(qū)共安裝有8個(gè)熱交換器,正常水溫在45oC至65oC之間;兩個(gè)熱交換站與鍋爐房的距離分別為500米和600米左右。2、 要求在鍋爐房能以巡回及定點(diǎn)兩種方式顯示8個(gè)熱交換器的熱水溫度,巡回方式以3秒為周期輪流更新及顯示各熱交換器熱水溫度。定點(diǎn)方式時(shí)每按上鍵或下鍵一次則顯示上或下一個(gè)熱交換器熱水溫度,每3秒自動(dòng)更新數(shù)據(jù)一次。3、 根據(jù)控制要求選擇單片機(jī)+智能儀表的解決方案:用帶通訊接口的智能儀表安裝在現(xiàn)場(chǎng)測(cè)量溫度,設(shè)計(jì)制作一個(gè)單片機(jī)裝置完成與智能儀表的通訊及數(shù)據(jù)顯示。四、通訊協(xié)議、智能儀表選擇及其參數(shù)介紹因熱水溫度信號(hào)變化較慢,因而對(duì)通信的速度要求不高,對(duì)于這種低速率遠(yuǎn)距離的通訊選用RS-485總線適宜。RS-485是EIA(美國(guó)電子工業(yè)聯(lián)合會(huì))在1983年公布的新的平衡傳輸標(biāo)準(zhǔn),是工業(yè)界使用最為廣泛的雙向、平衡傳輸線標(biāo)準(zhǔn)接口,它以半雙工方式通信,支持多點(diǎn)連接,傳統(tǒng)驅(qū)動(dòng)器允許創(chuàng)建多達(dá)32個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò),且其具有傳輸距離遠(yuǎn)(最大傳輸距離為1200M),傳輸速度快(1200M時(shí)為100KBPS)等優(yōu)點(diǎn)。其連接方法如下圖所示。
標(biāo)簽: 用單片機(jī) 溫度 遠(yuǎn)程顯示
上傳時(shí)間: 2013-10-12
上傳用戶:luopoguixiong
PLC 以 其 可靠性高、抗干擾能力強(qiáng)、配套齊全、功能完善、適應(yīng)性強(qiáng)等特點(diǎn),廣泛應(yīng)用于各種控制領(lǐng)域。PLC作為通用工業(yè)控制計(jì)算機(jī),是面向工礦企業(yè)的工控設(shè)備,使用梯形圖符號(hào)進(jìn)行編程,與繼電器電路相當(dāng)接近,被廣大工程技術(shù)人員接受。但是在實(shí)際應(yīng)用中,如何編程能夠提高PLC程序運(yùn)行速度是一個(gè)值得我們思考研究的問(wèn)題。1 PLC工作原理PLC 與 計(jì) 算機(jī)的工作原理基本相同,即在系統(tǒng)程序的管理下,通過(guò)運(yùn)行應(yīng)用程序完成用戶任務(wù)。但兩者的工作方式有所不同。計(jì)算機(jī)一般采用等待命令的工作方式,而PLC在確定了工作任務(wù)并裝人了專用程序后成為一種專用機(jī),它采用循環(huán)掃描工作方式,系統(tǒng)工作任務(wù)管理及應(yīng)用程序執(zhí)行都是用循環(huán)掃描方式完成的。PLC 有 兩 種基本的工作狀態(tài),即運(yùn)行(RUN)與停止(STOP)狀態(tài)。在這兩種狀態(tài)下,PLC的掃描過(guò)程及所要完成的任務(wù)是不盡相同的,如圖1所示。 PLC在RUN工作狀態(tài)時(shí),執(zhí)行一次掃描操作所的時(shí)間稱為掃描周期,其典型值通常為1一100nis,不同PLC廠家的產(chǎn)品則略有不同。掃描周期由內(nèi)部處理時(shí)間、輸A/ 輸出處理執(zhí)行時(shí)間、指令執(zhí)行時(shí)間等三部分組成。通常在一個(gè)掃描過(guò)程中,執(zhí)行指令的時(shí)間占了絕大部分,而執(zhí)行指令的時(shí)間與用戶程序的長(zhǎng)短有關(guān)。用戶 程 序 是根據(jù)控制要求由用戶編制,由許多條PLC指令所組成。不同的指令所對(duì)應(yīng)的程序步不同,以三菱FX2N系列的PLC為例,PLC對(duì)每一個(gè)程序步操作處理時(shí)間為:基本指令占0.741s/步,功能指令占幾百微米/步。完成一個(gè)控制任務(wù)可以有多種編制程序的方法,因此,選擇合理、巧妙的編程方法既可以大大提高程序運(yùn)行速度,又可以保證可靠性。 提高PLC程序運(yùn)行速度的幾種編程方法2.1 用數(shù)據(jù)傳送給位元件組合的方法來(lái)控制輸出在 PL C應(yīng) 用編程中,最后都會(huì)有一段輸出控制程序,一般都是用邏輯取及輸出指令來(lái)編寫(xiě),如圖2所示。在圖2所示的程序中,邏輯取的程序步為1,輸出的程序步為2,執(zhí)行上述程序共需3個(gè)程序步。通常情況下,PLC要控制的輸出都不會(huì)是少量的,比如,有8個(gè)輸出,在條件滿足時(shí)要同時(shí)輸出。此時(shí),執(zhí)行圖2所示的程序共需17個(gè)程序步。若我們通過(guò)位元件的組合并采用數(shù)據(jù)傳送的方法來(lái)完成圖2所示的程序,就會(huì)大大減少程序步驟。在三 菱 PLC中,只處理ON/OFF狀態(tài)的元件(如X,Y,M和S),稱為位元件。但將位元件組合起來(lái)也可以處理數(shù)據(jù)。位元件組合由Kn加首元件號(hào)來(lái)表示。位元件每4bit為一組組合成單元。如KYO中的n是組數(shù),當(dāng)n=1時(shí),K,Yo 對(duì)應(yīng)的是Y3一Yo。當(dāng)n二2時(shí),KZYo對(duì)應(yīng)的是Y7一Yo。通過(guò)位元件組合,就可以用處理數(shù)據(jù)的方式來(lái)處理位元件,圖2程序所示的功能可用圖3所示的傳送數(shù)據(jù)的方式來(lái)完成。
標(biāo)簽: PLC 程序 運(yùn)行速度 編程方法
上傳時(shí)間: 2013-11-11
上傳用戶:幾何公差
三種方法讀取鍵值 使用者設(shè)計(jì)行列鍵盤(pán)介面,一般常採(cǎi)用三種方法讀取鍵值。 中斷式 在鍵盤(pán)按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,並由中斷處理程式通過(guò)不同位址讀資料線上的狀態(tài)判斷哪個(gè)按鍵被按下。 本實(shí)驗(yàn)採(cǎi)用中斷式實(shí)現(xiàn)使用者鍵盤(pán)介面。 掃描法 對(duì)鍵盤(pán)上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對(duì)應(yīng)列的鍵被按下。否則掃描下一行。 反轉(zhuǎn)法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據(jù)讀到的值組合就可以查表得到鍵碼。4x4鍵盤(pán)按4行4列組成如圖電路結(jié)構(gòu)。按鍵按下將會(huì)使行列連成通路,這也是見(jiàn)的使用者鍵盤(pán)設(shè)計(jì)電路。 //-----------4X4鍵盤(pán)程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時(shí)去抖動(dòng) if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復(fù)位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開(kāi) { display(data); } i=4; //計(jì)算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤(pán)碼 } } else return 17; //沒(méi)有按鍵按下 }
上傳時(shí)間: 2013-11-12
上傳用戶:a673761058
用單片機(jī)配置FPGA—PLD設(shè)計(jì)技巧 Configuration/Program Method for Altera Device Configure the FLEX Device You can use any Micro-Controller to configure the FLEX device–the main idea is clocking in ONE BITof configuration data per CLOCK–start from the BIT 0The total Configuration time–e.g. 10K10 need 15K byte configuration file•calculation equation–10K10* 1.5= 15Kbyte–configuration time for the file itself•15*1024*8*clock = 122,880Clock•assume the CLOCK is 4MHz•122,880*1/4Mhz=30.72msec
標(biāo)簽: FPGA PLD 用單片機(jī) 設(shè)計(jì)技巧
上傳時(shí)間: 2013-10-09
上傳用戶:a67818601
I2C 總線包括了兩條串行總線(時(shí)鐘線SCL 和數(shù)據(jù)線SDA),通過(guò)這兩條總線能實(shí)現(xiàn)多個(gè)芯片之間的通信。在互相連接的芯片中,至少有一個(gè)芯片作為總線控制器,而其它芯片則作為從控制器。在本應(yīng)用說(shuō)明中,介紹了用Holtek 的八位RISC 結(jié)構(gòu)的單片機(jī)作為單總線控制器的軟件實(shí)現(xiàn)的方法。在本文的示例中,采用了一片EEPROM(型號(hào)HT24LC02,2Kbit)作為從控制器參與測(cè)試。電路說(shuō)明:HT24LC02 的A0、A1、A2、VSS、WP 引腳接地,VCC 接+5V,SCL 接PA3,SDA 接PA2使用說(shuō)明:例程中先向eeprom 中寫(xiě)數(shù)據(jù),寫(xiě)完后,再將eeprom 中內(nèi)容讀出來(lái),并將讀出數(shù)據(jù)進(jìn)行比較,若數(shù)據(jù)不相等程序跳到fail_out 中;若相等,最后程序跳到ok_end 中。本說(shuō)明中提供了一個(gè)源文件OP_HT24.ASM 和一個(gè)包含文件HT24.ASM。在應(yīng)用時(shí),要將OP_HT24.ASM 文件添加到用戶的project 中,并修改HT24.INC 文件中的變量設(shè)置,以建立SCL/SDA引腳來(lái)與用戶的應(yīng)用電路相匹配。
上傳時(shí)間: 2013-10-19
上傳用戶:ming52900
摘要: 本文介紹了L ED 顯示屏常規(guī)型驅(qū)動(dòng)電路的設(shè)計(jì)方式及其存在的缺陷, 提出了簡(jiǎn)單的L ED 顯示屏恒流驅(qū)動(dòng)方式及電路的實(shí)現(xiàn)。關(guān)鍵詞:L ED 顯示屏 動(dòng)態(tài)掃描 驅(qū)動(dòng)電路中圖分類號(hào): TN 873+ . 93 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào): 1005- 9490(2001) 03- 0252- 051 引 言 L ED 顯示屏是80 年代后期在全球迅速發(fā)展起來(lái)的新型信息顯示媒體, 它利用發(fā)光二極管構(gòu)成的點(diǎn)陣模塊或像素單元, 組成大面積顯示屏幕, 以其可靠性高、使用壽命、環(huán)境適應(yīng)能力強(qiáng)、性能價(jià)格比高、使用成本低等特點(diǎn), 在信息顯示領(lǐng)域已經(jīng)得到了非常廣泛的應(yīng)用[ 1 ]。L ED 顯示屏主要包括發(fā)光二極管構(gòu)成的陣列、驅(qū)動(dòng)電路、控制系統(tǒng)及傳輸接口和相應(yīng)的應(yīng)用軟件等, 其中驅(qū)動(dòng)電路設(shè)計(jì)的好壞, 對(duì)L ED 顯示屏的顯示效果、制作成本及系統(tǒng)的運(yùn)行性能起著很重要的作用。所以, 設(shè)計(jì)一種既能滿足控制驅(qū)動(dòng)的要求, 同時(shí)使用器件少、成本低的控制驅(qū)動(dòng)電路是很有必要的。本文就常規(guī)型驅(qū)動(dòng)電路的設(shè)計(jì)作些分析并提出恒流驅(qū)動(dòng)電路的設(shè)計(jì)方式。2 L ED 顯示屏常規(guī)驅(qū)動(dòng)電路的設(shè)計(jì) L ED 顯示屏驅(qū)動(dòng)電路的設(shè)計(jì), 與所用控制系統(tǒng)相配合, 通常分為動(dòng)態(tài)掃描型驅(qū)動(dòng)及靜態(tài)鎖存型驅(qū)動(dòng)二大類。以下就動(dòng)態(tài)掃描型驅(qū)動(dòng)電路的設(shè)計(jì)為例為進(jìn)行分析:動(dòng)態(tài)掃描型驅(qū)動(dòng)方式是指顯示屏上的4 行、8 行、16 行等n 行發(fā)光二極管共用一組列驅(qū)動(dòng)寄存器, 通過(guò)行驅(qū)動(dòng)管的分時(shí)工作, 使得每行L ED 的點(diǎn)亮?xí)r間占總時(shí)間的1ön , 只要每行的刷新速率大于50 Hz, 利用人眼的視覺(jué)暫留效應(yīng), 人們就可以看到一幅完整的文字或畫(huà)面[ 2 ]。常規(guī)型驅(qū)動(dòng)電路的設(shè)計(jì)一般是用串入并出的通用集成電路芯片如74HC595 或MC14094 等作為列數(shù)據(jù)鎖存, 以8050 等小功率N PN 三極管為列驅(qū)動(dòng), 而以達(dá)林頓三極管如T IP127 等作為行掃描管, 其電路如圖1 所示。
標(biāo)簽: LED 顯示屏 恒流驅(qū)動(dòng) 電路設(shè)計(jì)
上傳時(shí)間: 2014-02-19
上傳用戶:lingzhichao
用VHDL語(yǔ)言進(jìn)行MCS-51兼容單片機(jī)ip核開(kāi)發(fā)
標(biāo)簽: VHDL MCS 51兼容 語(yǔ)言
上傳時(shí)間: 2013-10-28
上傳用戶:nem567397
用c5402構(gòu)建的聲回波對(duì)消器
上傳時(shí)間: 2014-12-28
上傳用戶:pei5
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1