單片機(jī)開(kāi)發(fā)中除必要的硬件外,同樣離不開(kāi)軟件,我們寫的匯編語(yǔ)言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過(guò)匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51 單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開(kāi)發(fā),單片機(jī)的開(kāi)發(fā)軟件也在不斷發(fā)展,Keil 軟件是目前最流行開(kāi)發(fā)MCS-51 系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠商紛紛宣布全面支持Keil 即可看出。Keil 提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil 軟件需要Pentium 或以上的CPU,16MB或更多RAM、20M 以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對(duì)于使用51 系列單片機(jī)的愛(ài)好者來(lái)說(shuō)是十分必要的,如果你使用C 語(yǔ)言編程,那么Keil 幾乎就是你的不二之選(目前在國(guó)內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C 語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。我們將通過(guò)一些實(shí)例來(lái)學(xué)習(xí)Keil 軟件的使用,在這一部份我們將學(xué)習(xí)如何輸入源程序,建立工程、對(duì)工程進(jìn)行詳細(xì)的設(shè)置,以及如何將源程序變?yōu)槟繕?biāo)代碼。圖1 所示電路圖使用89C51 單片機(jī)作為主芯片,這種單片機(jī)性屬于MCS-51 系列,其內(nèi)部有4K 的FLASH ROM,可以反復(fù)擦寫,非常適于做實(shí)驗(yàn)。89C51 的P1 引腳上接8 個(gè)發(fā)光二極管,P3.2~P3.4 引腳上接4 個(gè)按鈕開(kāi)關(guān),我們的第一個(gè)任務(wù)是讓接在P1 引腳上的發(fā)光二極管依次循環(huán)點(diǎn)亮。 一、Keil 工程的建立首先啟動(dòng)Keil 軟件的集成開(kāi)發(fā)環(huán)境,這里假設(shè)讀者已正確安裝了該軟件,可以從桌面上直接雙擊uVision 的圖標(biāo)以啟動(dòng)該軟件。UVison啟動(dòng)后,程序窗口的左邊有一個(gè)工程管理窗口,該窗口有3 個(gè)標(biāo)簽,分別是Files、Regs、和Books,這三個(gè)標(biāo)簽頁(yè)分別顯示當(dāng)前項(xiàng)目的文件結(jié)構(gòu)、CPU 的寄存器及部份特殊功能寄存器的值(調(diào)試時(shí)才出現(xiàn))和所選CPU 的附加說(shuō)明文件,如果是第一次啟動(dòng)Keil,那么這三個(gè)標(biāo)簽頁(yè)全是空的。
上傳時(shí)間: 2013-12-26
上傳用戶:liulinshan2010
子程序庫(kù)的使用方法如下:1.將子程序庫(kù)全部?jī)?nèi)容鏈接在應(yīng)用程序之后,統(tǒng)一編譯即可。優(yōu)點(diǎn)是簡(jiǎn)單方便,缺點(diǎn)是程序太長(zhǎng),大量無(wú)關(guān)子程序也包含在其中。 2.僅將子程序庫(kù)中的有關(guān)部分內(nèi)容鏈接在應(yīng)用程序之后,統(tǒng)一編譯即可。有些子程序需要調(diào)用一些低級(jí)子程序,這些低級(jí)子程序也應(yīng)該包含在內(nèi)。優(yōu)點(diǎn)是程序緊湊,缺點(diǎn)是需要對(duì)子程序庫(kù)進(jìn)行仔細(xì)刪節(jié)。MCS-51 浮點(diǎn)運(yùn)算子程序庫(kù)及其使用說(shuō)明本浮點(diǎn)子程序庫(kù)有三個(gè)不同層次的版本,以便適應(yīng)不同的應(yīng)用場(chǎng)合: 1.小型庫(kù)(FQ51A.ASM):只包含浮點(diǎn)加、減、乘、除子程序。 2.中型庫(kù)(FQ51B.ASM):在小型庫(kù)的基礎(chǔ)上再增加絕對(duì)值、倒數(shù)、比較、平方、開(kāi)平方、 數(shù)制轉(zhuǎn)換等子程序。 3.大型庫(kù)(FQ51.ASM):包含本說(shuō)明書中的全部子程序。 為便于讀者使用本程序庫(kù),先將有關(guān)約定說(shuō)明如下: 1.雙字節(jié)定點(diǎn)操作數(shù):用[R0]或[R1]來(lái)表示存放在由R0或R1指示的連續(xù)單元中的數(shù) 據(jù),地址小的單元存放高字節(jié)。如果[R0]=1234H,若(R0)=30H,則(30H)=12H,(31H)=34H。 2.二進(jìn)制浮點(diǎn)操作數(shù):用三個(gè)字節(jié)表示,第一個(gè)字節(jié)的最高位為數(shù)符,其余七位為 階碼(補(bǔ)碼形式),第二字節(jié)為尾數(shù)的高字節(jié),第三字節(jié)為尾數(shù)的低字節(jié),尾數(shù)用雙字節(jié) 純小數(shù)(原碼)來(lái)表示。
標(biāo)簽: 51單片機(jī) 浮點(diǎn) 程序庫(kù)
上傳時(shí)間: 2013-10-15
上傳用戶:wmwai1314
很多單片機(jī)初學(xué)者與我交流時(shí)總說(shuō)的一句話是我現(xiàn)在是單片機(jī)初學(xué)者,我怎樣才能更快的學(xué)好單片機(jī),我該從哪方便入手。對(duì)于這個(gè)問(wèn)題,現(xiàn)在就我自己如何學(xué)單片機(jī),如何入門,如何熟練談?wù)勏敕ā? 先說(shuō)單片機(jī),現(xiàn)在用的比較多的以51為內(nèi)核的8位單片機(jī)(考慮到成本及引腳資源在實(shí)際開(kāi)發(fā)中用的51單片機(jī)型號(hào)不一),它的學(xué)習(xí)資料非常多,且學(xué)習(xí)成本非常低,可能有些初學(xué)者會(huì)說(shuō)企業(yè)里用的不是51單片機(jī),更多的是松翰、義隆什么,但是我想說(shuō)的是那些單片機(jī)的輔助開(kāi)發(fā)工具你有嗎。51單片機(jī)對(duì)于智能電子技術(shù)的入門學(xué)習(xí)是非常有優(yōu)勢(shì),成本低,開(kāi)發(fā)簡(jiǎn)單,一線下載程序,ARM太神秘,PLC太高貴,想來(lái)想去還是51,曾經(jīng)有過(guò)AVR和PIC,但是現(xiàn)在51也不賴。 那怎樣才能更快更好的學(xué)好單片機(jī)呢? 單片機(jī)作為集電子技術(shù)與計(jì)算機(jī)編程技術(shù)為一體是一項(xiàng)非常重視動(dòng)手實(shí)踐的科目,如果你是單片機(jī)高手,那么說(shuō)明你也是計(jì)算機(jī)編程和電子技術(shù)高手。
標(biāo)簽: 工程師 單片機(jī)學(xué)習(xí) 經(jīng)驗(yàn)
上傳時(shí)間: 2014-03-24
上傳用戶:丶灬夏天
Σ-Δ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
C51單片機(jī)是我們生活中最常用的系列,MCS-51系列單片機(jī)有4個(gè)并行口(P0,P1,P2,P3口),但對(duì)一個(gè)稍微復(fù)雜的應(yīng)用系統(tǒng)來(lái)說(shuō),真正可供用戶使用的并行口,只有P1口可用,況且常常因擴(kuò)展I2C和SPI的器件需占用某些P1口,迫使用戶不得不擴(kuò)展并行口以滿足實(shí)際的需要。習(xí)慣上,常用的并行口接口芯片有8255、8155,這兩種芯片功能比較齊全,可以使用在相對(duì)比較復(fù)雜的系統(tǒng)中,但如是對(duì)一般的系統(tǒng)而言,這些功能往往閑置不用。那么就可以選用一些本來(lái)閑置不用的口線作為選通信號(hào)來(lái)進(jìn)行并行口的擴(kuò)展,這樣就能充分利用單片機(jī)有限的I/O資源,在本設(shè)計(jì)中是將P1口擴(kuò)展成一個(gè)或幾個(gè)8位并行口,在每一個(gè)八位口上接入8個(gè)發(fā)光二極管做為輸出,二極管是做開(kāi)關(guān)量來(lái)使用的,在這里設(shè)計(jì)了跑馬燈和流水燈程序,做到對(duì)開(kāi)關(guān)量的開(kāi)斷控制;配合開(kāi)關(guān)量的控制筆者設(shè)計(jì)了一個(gè)共陽(yáng)LED數(shù)碼管,用來(lái)顯示當(dāng)前發(fā)光二極管發(fā)亮的序號(hào),做到更加直觀的雙重控制效果,然后再將P0口通過(guò)D/A轉(zhuǎn)換器和一放大器輸出一個(gè)模擬信號(hào),其結(jié)果可以通過(guò)示波器看出。這樣整個(gè)系統(tǒng)即有了數(shù)字信號(hào)輸出和模擬信號(hào)輸出,也有數(shù)碼管顯示功能,實(shí)用性能大提高了。2、 基于89C51的系統(tǒng)硬件設(shè)計(jì)2.1 并行口的擴(kuò)展的電路設(shè)計(jì) 眾所周知,C51系列的單片機(jī)都有四個(gè)I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我們通常僅僅使用P1口作為并行口,而令其余口(P2、P3)處于閑置狀態(tài),所以這次設(shè)計(jì),我們就是使用閑置不用的P3口做為選能信號(hào)線來(lái)將P1口進(jìn)行并行口擴(kuò)展。 (1) 種方式的并行口擴(kuò)展優(yōu)點(diǎn) 連線簡(jiǎn)單; 不占用存儲(chǔ)器空間; (2) 編程也方便靈活。但也有很大的缺點(diǎn) 并行口擴(kuò)展能力有限,(如使用74LS573(74LS373)且不進(jìn)行驅(qū)動(dòng)處理,則最多可擴(kuò)展4個(gè)同樣類型的并行輸出端口,當(dāng)然還需要與之對(duì)應(yīng)的四個(gè)選通信號(hào)。) 如擴(kuò)展較多,選通信號(hào)占用并行口位數(shù)太多,例如欲擴(kuò)展8個(gè)并行輸出端口,則需要8個(gè)選能信號(hào),此時(shí),僅選能信號(hào)就占用了一個(gè)8位并行口,這對(duì)在I/O端口線有限的單片機(jī)系統(tǒng)中,如此浪費(fèi)資源的現(xiàn)象是不能容忍的。在本次的設(shè)計(jì)中,采用芯片74HC573(帶三態(tài)輸出的八進(jìn)制透明D型鎖存器)對(duì)P1口進(jìn)行了一個(gè)8位并行口的擴(kuò)展,選通信號(hào)選用P3口的P3.3引腳。原理圖如圖1所示:
標(biāo)簽: C51 單片機(jī) 并行口 擴(kuò)展設(shè)計(jì)
上傳時(shí)間: 2013-11-18
上傳用戶:dbs012280
用單片機(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)換以及鍵盤處理軟硬件設(shè)計(jì)等內(nèi)容。關(guān)鍵詞:?jiǎn)纹瑱C(jī) RS—485總線 數(shù)碼管顯示 數(shù)據(jù)轉(zhuǎ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
隨著 微 電 子技術(shù)的飛速發(fā)展,電子產(chǎn)品越來(lái)越微型化,集成化,自動(dòng)化,低廉化,進(jìn)而推動(dòng)著其它許多產(chǎn)業(yè)的發(fā)展。特別進(jìn)人21世紀(jì)以來(lái),生物技術(shù)與電子技術(shù)的結(jié)合,成為高科技領(lǐng)域的研究熱點(diǎn)。199()年由瑞士的Manz和Widmer首先提出的“微全分析系統(tǒng)”〔’〕(microto talan alysissy stems,即ptTAS),通俗地稱為“建在芯片上的實(shí)驗(yàn)室”(Lab on a chip)或簡(jiǎn)稱芯片實(shí)驗(yàn)室(Lab chip),主要組成部分為電泳芯片,同時(shí)是進(jìn)樣,分離和檢測(cè)為一體的微型裝置,其在電泳實(shí)驗(yàn)中的高效檢測(cè)性能為生物化學(xué)分析儀器發(fā)展提供了一種借鑒。p.TAS廣泛應(yīng)用于生物醫(yī)學(xué)、環(huán)境檢測(cè)、食品衛(wèi)生、科學(xué)以及國(guó)防等眾多領(lǐng)域。目前 應(yīng) 用 的大多為多通道的毛細(xì)管電泳芯片,這也是芯片發(fā)展的一個(gè)必然趨勢(shì)。這不僅對(duì)電泳芯片本身的設(shè)計(jì)和制作提出了更高的要求,也對(duì)傳感器和數(shù)據(jù)處理技術(shù)提出了新的挑戰(zhàn)。考慮成本,集成度,控制能力以及可靠性方面的因素,本系統(tǒng)采用單片機(jī)作為實(shí)時(shí)數(shù)據(jù)處理、控制以及通訊的硬件平臺(tái)。如果系統(tǒng)中既有實(shí)時(shí)的通信任務(wù),同時(shí)又有其他實(shí)時(shí)任務(wù),采用一個(gè)廉價(jià)的單片機(jī),資源會(huì)比較緊張,不僅實(shí)現(xiàn)困難,結(jié)構(gòu)復(fù)雜,而且效果可能不滿意。而采用高性能的處理器,又浪費(fèi)了其有效資源,所以本系統(tǒng)采用兩個(gè)MCU協(xié)同工作,以并行/分布式多機(jī)的思想,構(gòu)成了電泳芯 片核心的雙單片機(jī)系統(tǒng)結(jié)構(gòu)。微全 分 析 系 統(tǒng) 進(jìn)行的多項(xiàng)實(shí)時(shí)任務(wù),可以劃分為以下 幾個(gè)模塊:①采集模塊。負(fù)責(zé)對(duì)外圍檢驗(yàn)設(shè)備進(jìn)行控 制以及對(duì)傳送過(guò)來(lái)的信號(hào)進(jìn)行采集和分析;②交互模 塊。通過(guò)液晶顯示,鍵盤掃描,以及打印等實(shí)現(xiàn)實(shí)驗(yàn)人 員對(duì)前端采集電路的交互操作;③雙單片機(jī)控制和通 信模塊。協(xié)調(diào)雙單片機(jī)之間的數(shù)據(jù)傳輸和指令傳輸 ;④網(wǎng)絡(luò)傳輸模塊。其中一個(gè)單片機(jī)通過(guò)以太網(wǎng)發(fā)送接 收數(shù)據(jù)到上位機(jī)。本文提出一種實(shí)時(shí)多任務(wù)的雙單片 機(jī)控制和通信系統(tǒng)[31的設(shè)計(jì),一個(gè)MCU基于TCP /IP網(wǎng)絡(luò)模塊的實(shí)現(xiàn)。
標(biāo)簽: TCPIP 雙單片機(jī) 數(shù)據(jù)采集系統(tǒng) 網(wǎng)絡(luò)模塊
上傳時(shí)間: 2013-11-15
上傳用戶:wangdean1101
三種方法讀取鍵值 使用者設(shè)計(jì)行列鍵盤介面,一般常採(cǎi)用三種方法讀取鍵值。 中斷式 在鍵盤按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,並由中斷處理程式通過(guò)不同位址讀資料線上的狀態(tài)判斷哪個(gè)按鍵被按下。 本實(shí)驗(yàn)採(cǎi)用中斷式實(shí)現(xiàn)使用者鍵盤介面。 掃描法 對(duì)鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對(duì)應(yīng)列的鍵被按下。否則掃描下一行。 反轉(zhuǎn)法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據(jù)讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結(jié)構(gòu)。按鍵按下將會(huì)使行列連成通路,這也是見(jiàn)的使用者鍵盤設(shè)計(jì)電路。 //-----------4X4鍵盤程序--------------// 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; //返回按下的鍵盤碼 } } else return 17; //沒(méi)有按鍵按下 }
上傳時(shí)間: 2013-11-12
上傳用戶:a673761058
1 概述由于在某些通訊設(shè)計(jì)應(yīng)用中,需要擴(kuò)展更多的串口數(shù)量,比如車床監(jiān)控、紡織儀器檢測(cè)和網(wǎng)狀連接的數(shù)據(jù)采集等應(yīng)用。為此成都國(guó)騰微電子有限公司推出的GM814x 可以滿足多個(gè)同類產(chǎn)品的并聯(lián)擴(kuò)展,并且能簡(jiǎn)單的實(shí)現(xiàn)電路連接和程序控制,主MCU 可以識(shí)別數(shù)據(jù)的來(lái)源和指定和某個(gè)GM814x 通信。2 應(yīng)用說(shuō)明2.1 CS 與SPI 的數(shù)據(jù)通信GM814x 的CS(片選)引腳可用于控制SPI 總線時(shí)鐘有效性,CS 低電平有效,內(nèi)部下拉。CS 有效時(shí),允許芯片的時(shí)鐘接收和數(shù)據(jù)收發(fā);無(wú)效時(shí),SCLK、DIN 和DOUT 均為高阻狀態(tài),GM814x 不響應(yīng)SPI 上的數(shù)據(jù)收發(fā),但能正常收發(fā)子串口數(shù)據(jù)和產(chǎn)生相應(yīng)中斷。2.2 應(yīng)用建議當(dāng)使用GM814x 的應(yīng)用需要擴(kuò)展4 個(gè)以上的串口數(shù)量時(shí),就需要使用2 片以上的GM814x。擴(kuò)展的方式也有多種。方式一:將多個(gè)GM814x 的SPI 接口接在主MCU 的SPI 總線上,然后將所有GM814x 的中斷進(jìn)行線與后連接到MCU 的IRQ 上,同時(shí)將各GM814x 的IRQ 輸出又連接到MCU的IO,以便MCU響應(yīng)中斷后檢測(cè)是具體哪一個(gè)GM814x 輸出的中斷,然后再拉低對(duì)應(yīng)的CS,拉高其它GM814x的CS,并執(zhí)行通信操作。方式二:如果擴(kuò)展的GM814x 數(shù)量較多,采用上述擴(kuò)展方式可能會(huì)占用MCU較多的IO 資源,則可以將GM814x 的中斷輸出連接到具有OC 輸出的與門芯片上,再輸出到MCU 的中斷輸入。同時(shí)又將所有的GM814x 的中斷輸出進(jìn)行編碼輸入到MCU,以供其判斷產(chǎn)生中斷的是哪一個(gè)GM814x。方式三:將所有GM814x 的中斷輸出連接到優(yōu)先編碼器進(jìn)行編碼輸出,同時(shí)編碼器也能輸出低電平信號(hào)給MCU 作為中斷響應(yīng)。MCU 檢測(cè)編碼數(shù)據(jù)以獲知產(chǎn)生中斷的GM814x,然后進(jìn)行數(shù)據(jù)通信處理。這種方式電路最簡(jiǎn)單,占用MCU 的IO 資源也最少。 舉例:使用MCS51 單片機(jī)擴(kuò)展8 片GM814x。本電路中,采用了上述提到的第三種擴(kuò)展方式。通過(guò)普通的MCS51 單片機(jī)擴(kuò)展最多8 片GM814x,可擴(kuò)展最多32 個(gè)標(biāo)準(zhǔn)串口。為了節(jié)省MCU的IO 資源,電路中增加了一片8-3 線優(yōu)先編碼器74LS348 和一片3-8 線譯碼器74HC138。8 片GM814x 的IRQ 中斷通過(guò)一片74LS348 輸出中斷源向量,同時(shí)產(chǎn)生GS 低電平信號(hào)到MCS51 的外部中斷0 上,MCS51 響應(yīng)中斷后,可查詢A0~A2 的值確定產(chǎn)生中斷的GM814x,然后MCU 使能74HC138,輸出對(duì)應(yīng)的ABC 信號(hào)選中產(chǎn)生IRQ 信號(hào)的GM814x,再進(jìn)行SPI 總線上的數(shù)據(jù)通信。 示例程序:本示例程序使用C 語(yǔ)言描述,僅供參考。 由于74LS348 是優(yōu)先編碼器,多個(gè)中斷同時(shí)產(chǎn)生的時(shí)候,74LS348 的編碼只會(huì)指示輸入編號(hào)上最高的IRQ,MCU 無(wú)法直接獲知是否其它的GM814x 也產(chǎn)生了中斷。同時(shí)GM814x 在自己的中斷申請(qǐng)后,數(shù)據(jù)傳輸?shù)降?bit 時(shí)會(huì)自動(dòng)清除,所以數(shù)據(jù)接收完后如果MCU 的中斷引腳仍然為低,則表示還有其它GM814x 的中斷申請(qǐng),故必須在處理完當(dāng)前中斷后繼續(xù)查詢新的中斷向量。這就是上述示例程序中while 循環(huán)的目的。 以上應(yīng)用建議僅供設(shè)計(jì)者參考,不代表最終實(shí)現(xiàn)方式,更可靠和實(shí)際的實(shí)現(xiàn)方式可由設(shè)計(jì)者根據(jù)自己的實(shí)際情況確定。l 示例中的數(shù)據(jù)、參數(shù)和標(biāo)志字命名不代表實(shí)際產(chǎn)品的特性,請(qǐng)參考實(shí)際產(chǎn)品的數(shù)據(jù)手冊(cè)來(lái)獲取你所需要的數(shù)據(jù)。
上傳時(shí)間: 2013-10-26
上傳用戶:suicoe
單片機(jī)的C 語(yǔ)言輕松入門隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,目前已有越來(lái)越多的人從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開(kāi)發(fā),其中主要是以C 語(yǔ)言為主,市場(chǎng)上幾種常見(jiàn)的單片機(jī)均有其C 語(yǔ)言開(kāi)發(fā)環(huán)境。這里以最為流行的80C51 單片機(jī)為例來(lái)學(xué)習(xí)單片機(jī)的C 語(yǔ)言編程技術(shù)。本書共分六章,每章一個(gè)專題,以一些待完成的任務(wù)為中心,圍繞該任務(wù)介紹C 語(yǔ)言的一些知識(shí),每一個(gè)任務(wù)都是可以獨(dú)立完成的,每完成一個(gè)任務(wù),都能掌握一定的識(shí),等到所有的任務(wù)都完成后,即可以完成C 語(yǔ)言的入門工作。C 語(yǔ)言概述及其開(kāi)發(fā)環(huán)境的建立學(xué)習(xí)一種編程語(yǔ)言,最重要的是建立一個(gè)練習(xí)環(huán)境,邊學(xué)邊練才能學(xué)好。Keil 軟件是目前最流行開(kāi)發(fā)80C51 系列單片機(jī)的軟件,Keil 提供了包括C 編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(μVision)將這些部份組合在一起。在學(xué)會(huì)使用匯編語(yǔ)言后,學(xué)習(xí)C 語(yǔ)言編程是一件比較容易的事,我們將通過(guò)一系列的實(shí)例介紹C 語(yǔ)言編程的方法。圖1-1 所示電路圖使用89S52 單片機(jī)作為主芯片,這種單片機(jī)性屬于80C51 系列,其內(nèi)部有8K 的FLASH ROM,可以反復(fù)擦寫,并有ISP 功能,支持在線下載,非常適于做實(shí)驗(yàn)。89S52 的P1 引腳上接8 個(gè)發(fā)光二極管,P3.2~P3.4 引腳上接4 個(gè)按鈕開(kāi)關(guān),我們的任務(wù)是讓接在P1 引腳上的發(fā)光二極管按要求發(fā)光。
上傳時(shí)間: 2013-11-04
上傳用戶:467368609
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1