串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實現編程的讀,寫,擦等細節//AT89C2051的特殊處:給XTAL一個脈沖,地址計數加1;P1的引腳排列與AT89C51相反,需要用函數轉換#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結束后的工作,設置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數據{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//轉換并設置P0口的數據{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//寫器件{//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //寫一個單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗:循環讀,直到讀出與寫入的數相同 { nTimeOut++; if(nTimeOut>1000)//超時了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //讀一個單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫鎖定位{ InitPro01();//先設置成編程狀態//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//設置pw中的函數指針,讓主程序可以調用上面的函數{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上傳時間: 2013-11-12
上傳用戶:gut1234567
單片機模糊模糊控制是目前在控制領域所采用的三種智能控制方法中最具實際意義的方法。模糊控制的采用解決了大量過去人們無法解決的問題,并且在工業控制、家用電器和各個領域已取得了令人觸目的成效。本書是一本系統地介紹模糊控制的理論、技術、方法和應用的著作;內容包括模糊控制基礎、模糊控制器、模糊控制系統、模糊控制系統的穩定性、模糊控制系統的開發軟件,用單片微型機實現模糊控制的技術和方法,模糊控制在家用電器和工業上應用的實際例子;反映了模糊控制目前的水平。 單片機模糊模糊控制目錄 : 第一章 模糊邏輯、神經網絡集成電路的發展 1.1 模糊邏輯及其集成電路的發展1.1.1 模糊邏輯的誕生和發展1.1.2 模糊集成電路的發展進程1.2 神經網絡及其集成電路的發展1.2.1 神經網絡的形成歷史1.2.2 神經網絡集成電路的發展1.3 模糊邏輯和神經網絡的結合1.3.1 模糊邏輯和神經網絡結合的意義1.3.2 模糊邏輯和神經網絡結合的前景第二章 模糊邏輯及其理論基礎 2.1 模糊集合與隸屬函數2.1.1 模糊集合概念2.1.2 隸屬函數2.1.3 分解定理與擴張定理2.1.4 模糊數2.2 模糊關系、模糊矩陣與模糊變換2.2.1 模糊關系2.2.2 模糊矩陣2.2.3 模糊變換2.3模糊邏輯和函數2.3.1模糊命題2.3.2模糊邏輯2.3.3模糊邏輯函數2.4模糊語言2.4.1 語言及語言的模糊性2.4.2 模糊語言2.4.3 語法規則和算子2.4.4 模糊條件語句2.5 模糊推理2.5.1 模糊推理的CRI法2.5.2 模糊推理的TVR法2.5.3 模糊推理的直接法2.5.4 模糊推理的精確值法2.5.5 模糊推理的強度轉移法第三章 模糊控制基礎 3.1 模糊控制的系統結構3.2 精確量的模糊化3.2.1 語言變量的分檔3.2.2 語言變量值的表示方法3.2.3 精確量轉換成模糊量3.3 模糊量的精確化3.3.1 最大隸屬度法3.3.2 中位數法3.3.3 重心法3.4 模糊控制規則及控制算法3.4.1 模糊控制規則的格式3.4.2 模糊控制規則的生成3.4.3 模糊控制規則的優化3.4.4 模糊控制算法3.5 模糊控制的神經網絡方法3.5.1 神經元和神經網絡3.5.2 神經網絡的分布存儲和容錯性3.5.3 神經網絡的學習算法3.5.4 神經網絡實現的模糊控制3.5.5 神經網絡構造隸屬函數3.5.6 神經網絡存儲控制規則3.5.7 神經網絡實現模糊化、反模糊化第四章 模糊控制器 4.1 模糊控制器結構4.2 模糊控制器設計4.2.1 常規模糊控制器設計4.2.2 變結構模糊控制器設計4.2.3 自組織模糊控制器設計4.2.4 自適應模糊控制器設計4.3 模糊控制器的數學模型4.3.1 常規模糊控制器的數學模型4.3.2 模糊控制器數學模型的建立第五章 模糊控制系統 5.1 模糊系統的辨識和建模5.1.1 模糊系統辨識的數學基礎5.1.2 基于模糊關系方程的模糊模型辨識5.1.3 基于語言控制規則的模糊模型辨識5.2 模糊控制系統的設計5.2.1 模糊控制系統的一般設計過程5.2.2 模糊控制系統的典型設計5.3 模糊控制系統的穩定性5.3.1 穩定性分析的Lyapunov直接法5.3.2 語言規則描述的模糊控制系統的穩定性5.3.3 關系方程描述的模糊控制系統的穩定性第六章 數字單片機與模糊控制6.1 數字單片機MC68HC705P96.1.1 MC68HC705P9單片機性能概論6.1.2 MC68HC705P9單片機基本結構6.1.3 MC68HC705P9指令系統6.2 數字單片機模糊控制方式6.2.1 數字單片機與模糊控制關系6.2.2 數字單片機模糊控制方式第七章 模糊單片機與模糊控制7.1 模糊單片機NLX2307.1.1 模糊單片機NLX230性能概況7.1.2 NLX230的結構及引腳7.1.3 NLX230的模糊推理方式7.1.4 NLX230的內部寄存器7.1.5 NLX230的操作及接口技術7.2 NLX230開發系統7.3 NLX230應用例子第八章 模糊控制的開發軟件8.1 模糊推理機原理8.2 模糊推理機的算法8.3 模糊推理機結構和清單8.4 模糊邏輯知識基發生器8.5 模糊推理開發環境8.5.1 FIDE的工作條件8.5.2 FIDE的結構8.5.3 FIDE的工作過程第九章 模糊控制在家用電器中的應用9.1 模糊控制的電冰箱9.1.1 電冰箱模糊控制系統結構9.1.2 模糊控制規則和模糊量9.1.3 控制系統的電路結構9.1.4 控制規則的自調整9.2 模糊控制的電飯鍋9.2.1 煮飯的工藝過程曲線9.2.2 模糊控制的邏輯結構9.2.3 模糊量和模糊推理9.2.4 控制軟件框圖9.3 模糊控制的微波爐9.3.1 控制電路的結構框圖9.3.2 微波爐的模糊量與推理9.3.3 微波爐控制電路結構原理9.3.4 控制軟件原理及框圖9.4 模糊控制的洗衣機9.4.1 模糊洗衣機控制系統邏輯結構9.4.2 模糊洗衣機的模糊推理9.4.3 洗衣機物理量檢測方法9.4.4 布質和布量的模糊推理第十章 模糊控制在工程上的應用10.1 模糊參數自適應PID控制器10.1.1 自校正PID控制器10.1.2 模糊參數自適應PID控制系統結構10.1.3 模糊控制規則的產生10.1.4 模糊推理機理及運行結果10.2 恒溫爐模糊控制10.2.1 恒溫爐模糊控制的系統結構10.2.2 模糊控制器及控制規則的形成10.2.3 模糊控制器的校正10.3 感應電機模糊矢量控制10.3.1 模糊矢量控制系統結構10.3.2 矢量控制的基本原理10.3.3 模糊電阻觀測器10.3.4 模糊控制器及運行
上傳時間: 2014-12-28
上傳用戶:semi1981
基于變頻調速的水平連鑄機拉坯輥速度控制系統Frequency Inverter Based Drawing RollerS peedC ontrolSy stem ofHorizontal Continuous Casting MachineA 偉劉沖旅巴(南 華 大 學電氣工程學院,衡陽421001)摘要拉坯輥速度控制是水平連鑄工藝的關鍵技術之一,采用變頻器實現水平連鑄機拉坯輥速度程序控制,由信號發生裝置給變頻器提供程控信號。現場應用表明該控制系統速度響應快,控制精度高,滿足了水平連鑄生產的需要。關鍵詞水平連鑄拉坯輥速度程序控制變頻器Absh'act Speedc ontorlof dr awingor leris on eo fth ek eyte chnologiesfo rho rizontalco ntinuousca stingm achine.Fo rth ispu rpose,fr equencyco nverterisad optedfo rdr awingor lersp eedp rogrammablec ontorlof ho rizontalco ntinuousca stingm achine,th ep rogrammableco ntorlsi gnalto fr equencyc onverteris provided場a signal generator. The results of application show that the response of system is rapid and the control accuracy is high enough to meet thedemand of production of horizontal continuous casting.Keywords Horizontalco ntinuousc asting Drawingor ler Speedp rogrammablec ontrol Ferquencyin verter 隨著 現 代 化工業生產對鋼材需求量的日益增加,連鑄生產能力已經成為衡量一個國家冶金工業發展水平的重要指標之一。近十幾年來,水平連鑄由于具有投資少、鑄坯直、見效快等多方面的優點,國內許多鋼鐵企業利用水平連鑄機來澆鑄特種合金鋼,發揮了其獨特的優勢并取得了較好的經濟效益〔1,2)0采用 水 平 連鑄機澆鑄特種合金鋼時,由于拉坯機是水平連鑄系統中的關鍵設備之一,拉坯機及其控制性能的好壞直接影響著連鑄坯的質量,因此,連鑄的拉坯技術便成為整個水平連鑄技術的核心。由于鋼的冶煉過程是在高溫下進行的,鋼水溫度的變化又容易影響鑄坯的質量和成材率,因此,如何能在高溫環境下控制好與鑄坯速度相關的參數(拉、推程量,中停時間和拉坯頻率等)對于確保連鑄作業的進一步高效化,延長系統的連續作業時間十分關鍵。因此,拉坯輥速度控制技術是連鑄生產過程控制領域中的關鍵技術之- [31
上傳時間: 2013-10-12
上傳用戶:gxy670166755
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
上傳用戶:時代電子小智
近年來隨著科技的飛速發展,單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構軟硬件結合,加以完善。 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現這井然秩序呢?靠的就是交通信號燈的自動指揮系統。交通信號燈控制方式很多。本系統采用MSC-51系列單片機ATSC51和可編程并行I/O接口芯片8255A為中心器件來設計交通燈控制器,實現了能根據實際車流量通過8051芯片的P1口設置紅、綠燈燃亮時間的功能;紅綠燈循環點亮,倒計時剩5秒時黃燈閃爍警示(交通燈信號通過PA口輸出,顯示時間直接通過8255的PC口輸出至雙位數碼管);車輛闖紅燈報警;綠燈時間可檢測車流量并可通過雙位數碼管顯示。本系統實用性強、操作簡單、擴展功能強。 程序源代碼 ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳轉到主程序的開始處 ORG 0003H ;外部中斷0的中斷程序入口地址 ORG 000BH ;定時器0的中斷程序入口地址
上傳時間: 2013-12-21
上傳用戶:1234321@q
在正常操作期間,一次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
RSM1843 是四線電阻式觸摸屏控制芯片。電路是一個12bit 模數轉換器(ADC),內置 同步串行數據接口和驅動觸摸屏的低阻開關。基準電壓(Vref)變化范圍從1V 到+Vcc,相 應的輸入電壓范圍為0V 到Vref。電路提供了關斷模式,功耗可降低至0.5W。RSM1843 工 作電壓能低至2.7V,是電池供電設備的理想選擇,可適用于電阻式觸摸屏的PDA 等便攜設備。
上傳時間: 2013-11-19
上傳用戶:lalalal
為了減少電力電子裝置對電網引起的諧波污染,在變頻器接入電網之前加入PFC電路是一種趨勢。討論了基于TMS320LF2407的全數字控制的單相PFC電路的工作原理,并由此得到了主電路參數的選取原則;建立了單相Boost型數字PFC的小信號動態模型,并分析了基于該模型的數字控制設計方法,給出了設計軟件流程;最后搭建了一臺樣機,在實際電路中實現了數字控制的單相PFC,并得到了較好的實驗結果。
上傳時間: 2014-12-28
上傳用戶:zhangyi99104144
提出了一種將堆棧空間劃分為任務棧和中斷嵌套棧的設計結構,使堆棧空間最小化。采用VHDL硬件語言,在FPGA設備上模擬實現了具有自動檢驗功能的棧空間管理器。棧空間管理器由不同功能的邏輯模塊組成,主要闡述了狀態控制邏輯模塊和地址產生邏輯模塊的設計方法。
上傳時間: 2014-12-28
上傳用戶:plsee
提出了一種基于CAN總線的分布式水下航行器控制器的設計方法,主要描述了其硬件總體設計方案和實現辦法。控制器作為分布式控制系統的一個節點,與其他節點之間以CAN總線連接并形成網絡,相互傳輸數據和控制命令,每個節點都有主控計算機,以實現計算任務的分散化。控制器以基于ARM架構的MCU為控制計算機,搭載隔離模塊、CAN控制器和收發器、數據存儲模塊、I/O接口模塊、RS232模塊等電路。該控制器的特點是體積和功耗小,通訊功能強,可實現智能控制、數據采集處理,故障發現等控制功能。
上傳時間: 2014-12-29
上傳用戶:Huge_Brother