介紹用PIC16C73 自帶的八位A/D 轉換器擴展為十二位A/D 轉換器,給出了具體的設計方案和程序流程。它是用以 PIC16C73 為MCU 構成的海水有機磷測控儀A/D 轉換部分的一種解決方案。為監測海洋生態環境,研制了用于海水有機磷農藥現場監測的生物傳感器。為測定生物傳感器的信號,使傳感器可用于船載及臺站的海洋生態環境現場自動監測,需要對整個的采樣和排液裝置進行控制以及對傳感器來的信號進行實時采集處理,形成有機磷的濃度傳給上位機。為此,開發了以PIC16C73 單片機為核心的小型測控儀器,很好的完成了上述功能。PIC1673 單片機自帶8 位的A/D 轉換器,但不能滿足系統對精度的要求,本設計在單片機自帶8 位A/D 基礎上加少量的硬件和軟件開銷,使其擴展為十二位A/D 轉換器,滿足了系統的要求。
上傳時間: 2013-10-30
上傳用戶:a296386173
基于MSP430 系列單片機設計了體外臨時心臟起搏器的起搏裝置,給出了硬件設計電路和軟件的系統結構。經實驗研究,該裝置比原有的以AT89c2051 型單片機制造的體外臨時心臟起搏器在單位電池供電的情況下使用期限更長,以實現低功耗,即將原來的工作電流削減一半以上,電池更換的頻率由原先的1 次/周,降低至1 次/月 。心臟起搏器是目前臨床上用于治療心搏徐緩的最有效醫療設備。當患者心臟的竇房結或心肌的神經傳導組織發生障礙時,心臟起搏器就會通過起搏裝置人為的發放電脈沖,再經體內的導管電極刺激房室搏動[7]。隨著現代電子技術的飛速發展,電子產品的低功耗設計越來越受到人們的重視。低功耗設計包括了低電壓設計、低電流設計、相應得軟硬件設計、充分利用現有資源、開發新資源等多層含意與技術[5] [6]。微功耗體外臨時心臟起搏器已經成為各國、各公司競相研究的一個重要領域。
上傳時間: 2013-11-18
上傳用戶:xyipie
Σ-ΔA/D技術具有高分辨率、高線性度和低成本的特點。本文基于TI公司的MSP430F1121單片機,介紹了采用內置比較器和外圍電路構成類似于Σ-△的高精度A/D實現方案,適合用于對溫度、壓力和電壓等緩慢變化信號的采集應用。 在各種A/D轉換器中,最常用是逐次逼近法(SAR)A/D,該類器件具有轉換時間固定且快速的特點,但難以顯著提高分辨率;積分型A/D 有較強的抗干擾能力,但轉換時間較長;過采樣Σ-ΔA/D由于其高分辨率,高線性度及低成本的特點,正得到越來越多的應用。根據這些特點,本文以TI公司的MSP430F1121單片機實現了一種類似于Σ-ΔA/D技術的高精度轉換器方案。 MSP430F1121是16位RISC結構的FLASH型單片機,該芯片有14個雙向I/O口并兼有中斷功能,一個16位定時器兼有計數和定時功能。I/O口輸出高電平時電壓接近Vcc,低電平時接近Vss,因此,一個I/O口可以看作一位DAC,具有PWM功能。 該芯片具有一個內置模擬電壓比較器,只須外接一只電阻和電容即可構成一個類似于Σ-Δ技術的高精度單斜率A/D。一般而言,比較器在使用過程中會受到兩種因素的影響,一種是比較器輸入端的偏置電壓的積累;另一種是兩個輸入端電壓接近到一程度時,輸出端會產生振蕩。 MSP430F1121單片機在比較器兩輸入端對應的單片機端口與片外輸入信號的連接線路保持不變的情況下,可通過軟件將比較器兩輸入端與對應的單片機端口的連接線路交換,并同時將比較器的輸出極性變換,這樣抵消了比較器的輸入端累積的偏置電壓。通過在內部將輸出連接到低通濾波器后,即使在比較器輸入端兩比較電壓非常接近,經過濾波后也不會出現輸出端的振蕩現象,從而消除了輸出端震蕩的問題。利用內置比較器實現高精度A/D圖1是一個可直接使用的A/D轉換方案,該方案是一個高精度的積分型A/D轉換器。其基本原理是用單一的I/O端口,執行1位的數模轉換,以比較器的輸出作反饋,來維持Vout與Vin相等。圖1:利用MSP430F1121實現的實用A/D轉換器電路方案。
上傳時間: 2013-11-10
上傳用戶:lliuhhui
鼠標有RS232串口和PS/2二種接口,在單片機應用中,由于PS/2鼠標是1yrL電平,和單片接口更方便,通常PS/2鼠標控制芯片采用TP8452。以TP8452為例說明PS/2鼠標的工作原理,其他的PS/2鼠標控制芯片均與TP8452兼容。TP8452能接受3個按鍵和2組光電探頭的信號,組合成一定格式的信息,傳送給系統。TP8452還具有按鍵去抖和噪聲抑制功能,組成完善的信號采集前端電路。在單片機系統中,可以直接利用鼠標作為輸入設備,也可以單獨使用TP8452,作為轉速、距離測量的預處理電路。由于TP8452的存在,不論是高速旋轉,還是慢速爬行,甚至正反振蕩,都不會影響其測量的準確性。1 PS/2鼠標原標圖采用TP8452的典型3鍵鼠標原理圖如圖1所示。GX、GY是2組光電探頭,檢測滾輪的轉動。每組光電探頭內有2個光敏接收管,間隔為滾輪格柵的1/4,根據2個信號的相位關系,TP8452可以確定滾輪的正反轉向。K1、K2、K3是3個按鍵。TP8452連續監視2個滾輪和3個按鍵,一旦有動作,立即將信息通過PS/2接口向系統報告。
上傳時間: 2013-10-29
上傳用戶:xuanjie
基于多點網絡的水廠自動監控系統設計Design of MPI Based Automatic Monitoring and Control System in Water Works劉 美 俊(湖南工程學院,湘潭411101)摘要針對水廠工作水泵多、現場離控制站距離遠的特點,提出了一種基于MPI多點網絡的自動監控系統的設計方法,分析了系統的工作原理,介紹了系統中數據的采集與處理、主站與從站的通信原理以及系統軟件的設計。由于這種系統的主、從站PLC之間采用MPI網絡通信,具有運行可靠、性能價格比高的特點,所以適用于中小規模水廠的分布式監控場合。關鍵詞多點網絡主站從站監控系統Abstract Ina ccordancew ithth efe atuersof w aterw orks,i. e. ,manyp umpsin o perationa ndth ep umps, farfor mt hec ontrolst ation,th em ethodo fdesigninga na utomati(〕monitoringa ndc ontorlsy stemb asedo nM PIis p resented.Th eo perationalpr incipleo fth esy stemi san alyzed,th ed atac olection,data processing; communication between master station and slave station as wel as design and system software are discussed. Because MPI network communicationis used among master station, slave stations and PLC, the system is reliable and high cost-efective. It is, suitable for smal and mediumsized water works for distrbuted monitoring and control.Keywords MPI Masterst ation Slaves tation Monitoringa ndc ontorlsy stem 自來 水 廠 的自動控制系統一般分為兩大部分,一對組態硬件要求較高,投資較大。相對而言,MPI網是水源地深水泵的工作控制,一是水廠區變頻恒壓供絡速度可達187.5 M bps,通過一級中繼器傳輸距離可水控制,兩部分的實際距離通常都比較遠。某廠水源達Ikm 。根據水廠的具體情況,確定以MPI方式組地有3臺深井泵給水廠區的蓄水池供水。水廠區的成網絡,主站PLC為S7-300系列的CPU3121FM,從任務是對水池的水進行消毒處理后,通過加壓泵向管站為S7-200系列的CPU222。這樣既滿足了系統要路恒壓供水。選用Siemens公司的S7系列可編程控求,又相對于Profibus網絡節省了三分之一的成本,制器(PLC)和上位機組成實時數據采集和監控系統, 這種分布式監控系統具有較高的性能價格比。系統對深水泵進行遠程控制,對供水泵采用變頻器進行恒中PLC的物理層采用RS - 485接口,網絡延伸選用壓控制以保證整個水廠的電機設備安全、可靠地運帶防雷保護的中繼器,使系統的安全運行得到了保行。證。MPI網絡的拓撲結構如圖1所示。1 多點網絡(NWI)監控系統的組成Sie me ns 公司S7系列PLC通常有MP」多點網絡與Profibus現場總線網絡兩種組網方式。Profibus現場總線的應用目前較為普遍,通用性較好,它由Profibus一DP, Profibus一FMS, Profibus一PA組成。Profibus - DP型用于分散外設間的數據傳輸,傳輸速率為9.6kbps一12Mbps,主要用于現場控制器與分散1/0之間的通信,可滿足交直流調速系統快速響應的時間要求,特別適合于加工自動化領域的應用;Profibus - FMS主要解決車間級通信問題,完成中等傳輸速度的循環或非循環數據交換任務,適用于紡織、樓宇自動化、可編程控制器、低壓開關等;Profibus - PA型采用了OSI模型的物理層和數據鏈路層,適用于過程自動化的總線類型。
上傳時間: 2013-10-09
上傳用戶:fac1003
三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 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; //沒有按鍵按下 }
上傳時間: 2013-11-12
上傳用戶:a673761058
RS-232-C 是PC 機常用的串行接口,由于信號電平值較高,易損壞接口電路的芯片,與TTL電平不兼容故需使用電平轉換電路方能與TTL 電路連接。本產品(轉接器),可以實現任意電平下(0.8~15)的UART串行接口到RS-232-C/E接口的無源電平轉接, 使用非常方便可靠。 什么是RS-232-C 接口?采用RS-232-C 接口有何特點?傳輸電纜長度如何考慮?答: 計算機與計算機或計算機與終端之間的數據傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠程傳輸時,避免了多條線路特性的不一致而被廣泛采用。 在串行通訊時,要求通訊雙方都采用一個標準接口,使不同 的設備可以方便地連接起來進行通訊。 RS-232-C接口(又稱 EIA RS-232-C)是目前最常用的一種串行通訊接口。它是在1970 年由美國電子工業協會(EIA)聯合貝爾系統、 調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準。它的全名是“數據終端設備(DTE)和數據通訊設備(DCE)之間串行二進制數據交換接口技術標準”該標準規定采用一個25 個腳的 DB25 連接器,對連接器的每個引腳的信號內容加以規定,還對各種信號的電平加以規定。(1) 接口的信號內容實際上RS-232-C 的25 條引線中有許多是很少使用的,在計算機與終端通訊中一般只使用3-9 條引線。(2) 接口的電氣特性 在RS-232-C 中任何一條信號線的電壓均為負邏輯關系。即:邏輯“1”,-5— -15V;邏輯“0” +5— +15V 。噪聲容限為2V。即 要求接收器能識別低至+3V 的信號作為邏輯“0”,高到-3V的信號 作為邏輯“1”(3) 接口的物理結構 RS-232-C 接口連接器一般使用型號為DB-25 的25 芯插頭座,通常插頭在DCE 端,插座在DTE端. 一些設備與PC 機連接的RS-232-C 接口,因為不使用對方的傳送控制信號,只需三條接口線,即“發送數據”、“接收數據”和“信號地”。所以采用DB-9 的9 芯插頭座,傳輸線采用屏蔽雙絞線。(4) 傳輸電纜長度由RS-232C 標準規定在碼元畸變小于4%的情況下,傳輸電纜長度應為50 英尺,其實這個4%的碼元畸變是很保守的,在實際應用中,約有99%的用戶是按碼元畸變10-20%的范圍工作的,所以實際使用中最大距離會遠超過50 英尺,美國DEC 公司曾規定允許碼元畸變為10%而得出附表2 的實驗結果。其中1 號電纜為屏蔽電纜,型號為DECP.NO.9107723 內有三對雙絞線,每對由22# AWG 組成,其外覆以屏蔽網。2 號電纜為不帶屏蔽的電纜。 2. 什么是RS-485 接口?它比RS-232-C 接口相比有何特點?答: 由于RS-232-C 接口標準出現較早,難免有不足之處,主要有以下四點:(1) 接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL 電平不兼容故需使用電平轉換電路方能與TTL 電路連接。(2) 傳輸速率較低,在異步傳輸時,波特率為20Kbps。(3) 接口使用一根信號線和一根信號返回線而構成共地的傳輸形式, 這種共地傳輸容易產生共模干擾,所以抗噪聲干擾性弱。(4) 傳輸距離有限,最大傳輸距離標準值為50 英尺,實際上也只能 用在50 米左右。針對RS-232-C 的不足,于是就不斷出現了一些新的接口標準,RS-485 就是其中之一,它具有以下特點:1. RS-485 的電氣特性:邏輯“1”以兩線間的電壓差為+(2—6) V 表示;邏輯“0”以兩線間的電壓差為-(2—6)V 表示。接口信號電平比RS-232-C 降低了,就不易損壞接口電路的芯片, 且該電平與TTL 電平兼容,可方便與TTL 電路連接。2. RS-485 的數據最高傳輸速率為10Mbps3. RS-485 接口是采用平衡驅動器和差分接收器的組合,抗共模干能力增強,即抗噪聲干擾性好。4. RS-485 接口的最大傳輸距離標準值為4000 英尺,實際上可達 3000 米,另外RS-232-C接口在總線上只允許連接1 個收發器, 即單站能力。而RS-485 接口在總線上是允許連接多達128 個收發器。即具有多站能力,這樣用戶可以利用單一的RS-485 接口方便地建立起設備網絡。因RS-485 接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優點就使其成為首選的串行接口。 因為RS485 接口組成的半雙工網絡,一般只需二根連線,所以RS485接口均采用屏蔽雙絞線傳輸。 RS485 接口連接器采用DB-9 的9 芯插頭座,與智能終端RS485接口采用DB-9(孔),與鍵盤連接的鍵盤接口RS485 采用DB-9(針)。3. 采用RS485 接口時,傳輸電纜的長度如何考慮?答: 在使用RS485 接口時,對于特定的傳輸線經,從發生器到負載其數據信號傳輸所允許的最大電纜長度是數據信號速率的函數,這個 長度數據主要是受信號失真及噪聲等影響所限制。下圖所示的最大電纜長度與信號速率的關系曲線是使用24AWG 銅芯雙絞電話電纜(線 徑為0.51mm),線間旁路電容為52.5PF/M,終端負載電阻為100 歐 時所得出。(曲線引自GB11014-89 附錄A)。由圖中可知,當數據信 號速率降低到90Kbit/S 以下時,假定最大允許的信號損失為6dBV 時, 則電纜長度被限制在1200M。實際上,圖中的曲線是很保守的,在實 用時是完全可以取得比它大的電纜長度。 當使用不同線徑的電纜。則取得的最大電纜長度是不相同的。例 如:當數據信號速率為600Kbit/S 時,采用24AWG 電纜,由圖可知最 大電纜長度是200m,若采用19AWG 電纜(線徑為0。91mm)則電纜長 度將可以大于200m; 若采用28AWG 電纜(線徑為0。32mm)則電纜 長度只能小于200m。
上傳時間: 2013-10-11
上傳用戶:時代電子小智
1 /**————————————————————2 〖說明〗I2C總線驅動程序(用兩個普通IO模擬I2C總線)3 包括100Khz(T=10us)的標準模式(慢速模式)選擇,4 和400Khz(T=2.5us)的快速模式選擇,5 默認11.0592Mhz的晶振。6 〖文件〗PCF8563T.C ﹫2001/11/2 77 〖作者〗龍嘯九天 c51@yeah.net http://www.c51bbs.co /8 〖修改〗修改建議請到論壇公布 http://www.c51bbs.co m9 〖版本〗V1.00A Build 080310 —————————————————————*/1112 #ifndef SDA13 #define SDA P0_014 #define SCL P0_115 #endif1617 extern uchar SystemError;1819 #define uchar unsigned char20 #define uint unsigned int21 #define Byte unsigned char22 #define Word unsigned int23 #define bool bit24 #define true 125 #define false 02627 #define SomeNOP(); _nop_();_nop_();_nop_();_nop_();2829 /**--------------------------------------------------------------------------------30 調用方式:void I2CStart(void) ﹫2001/07/0 431 函數說明:私有函數,I2C專用32 ---------------------------------------------------------------------------------*/33 void I2CStart(void)34 {35 EA=0;36 SDA=1; SCL=1; SomeNOP();//INI37 SDA=0; SomeNOP(); //START38 SCL=0;39 }4041 /**--------------------------------------------------------------------------------42 調用方式:void I2CStop(void) ﹫2001/07/0 443 函數說明:私有函數,I2C專用44 ---------------------------------------------------------------------------------*/45 void I2CStop(void)46 {47 SCL=0; SDA=0; SomeNOP(); //INI48 SCL=1; SomeNOP(); SDA=1; //STOP49 EA=1;50 }5152 /**--------------------------------------------------------------------------------53 調用方式:bit I2CAck(void) ﹫2001/07/0 454 函數說明:私有函數,I2C專用,等待從器件接收方的應答55 ---------------------------------------------------------------------------------*/56 bool WaitAck(void)57 {58 uchar errtime=255;//因故障接收方無ACK,超時值為255。59 SDA=1;SomeNOP();60 SCL=1;SomeNOP();61 while(SDA) {errtime--; if (!errtime) {I2CStop();SystemError=0x11;return false;}}62 SCL=0;63 return true;
上傳時間: 2014-04-11
上傳用戶:xg262122
Keil是業界最好的51單片機開發工具之一,它擁有流暢的用戶界面與強大的仿真功能。ARM將Keil公司收購之后,正式推出了針對ARM微控制器的開發工具RVMDK,它將ARM編譯器RVCT與Keil的工程管理、調試仿真工具集成在一起,是一款非常強大的ARM微控制器開發工具。2007年5月,ARM正式授權中國深圳英蓓特公司代理中文版RVMDK的出售事務。很多嵌入式系統開發工程師對ARM的老版本開發工具ADS1.2非常熟悉,而RVMDK與ADS相比較,從外觀、仿真流程以及內部二進制編譯鏈接工具上都有了不少改進,用法稍有不同。本主的主旨是介紹通用的流程,以及一些注意事項,幫助ADS1.2用戶將老的,遺留的ADS1.2工程轉化成在RVMDK上進行開發調試的工程。 ARM新推出的微控制器開發工具RVMDK與ADS1.2在工具架構組成上有一些不同,這些區別包括:不同版本的ARM編譯器(compiler),不同的調試器(debugger),不同的仿真器(simulator),以及不同的硬件調試單元。作為ARM的新一代微控制器開發工具,RVMDK不但包含ARM的最新版本編譯鏈接工具,即RVDS3.0的編譯鏈接工具,而且根據微控制器調試開發的特點采用了與ADS,RVDS完全不同的調試、仿真環境,uVision debugger 與simulator。 RVMDK集成了RVDS3.0的編譯工具RVCT3.0,與ADS1.2相比,除去編譯、連接工具的可執行二進制文件不同之外,RVCT3.0的很多編譯連接選項與ADS編譯器也有不同。
上傳時間: 2013-11-01
上傳用戶:1051290259
在正常操作期間,一次WDT 超時溢出將產生一次器件復位。如果器件處于休眠狀態,一次WDT超時溢出將喚醒器件,使其繼續正常操作(即稱作WDT 喚醒)。對WDTE 設置位清零可以永久性地關閉WDT。后分頻器分配完全是由軟件控制,即它可在程序執行期間隨時更改。在例26-1 中,如果需要的預分頻值不是1:1,就不需要對OPTION_REG 寄存器做初始修改。如果需要的預分頻值是1:1,那么先向OPTION_REG 設置一個非1:1 的臨時預分頻值,在完成其它操作后,在最后修改OPTION_REG 時再設置1:1 的預分頻值。這樣操作,主要是因為無法知道TMR0 預分頻器的當前計數值,而且分頻器更改后,該值將變為WDT 后分頻器的當前計數值,所以必須遵循示例中的代碼順序。如果沒有按照示例中的代碼順序改變OPTION_REG 寄存器,那么無法準確得知WDT 復位前的時間。
上傳時間: 2013-11-02
上傳用戶:674635689