用單片機實現溫度遠程顯示摘 要:文章介紹了用AT89S8252單片機的串行接口與智能溫度巡回檢測儀(XJ-08S)通過RS—485總線相互通訊實現熱水溫度遠程顯示的一種低成本解決方案,內容涉及RS—485總線通訊、單片機驅動數碼管顯示、數據轉換以及鍵盤處理軟硬件設計等內容。關鍵詞:單片機 RS—485總線 數碼管顯示 數據轉換 鍵盤處理一、前 言目前檢測溫度一般采用熱電偶或熱敏電阻作為傳感器,這種傳感器至儀表之間一般都要用專用的溫度補償導線,而溫度補償導線價格很貴,并且線路太長也會影響測量精度。在實際應用中往往需要對較遠處(1KM左右)的溫度信號進行監視。現有的解決方案有很多,例如:1、 在現場用智能儀表對溫度信號進行測量,用計算機作上位機與智能儀表進行通訊來實現遠程溫度監測(采用這種方案要增加計算機設備及相關計算機軟件)。2、 NCU+DDC實現遠程溫度監測。用兩個DDC,一個安裝在現場測量溫度,另一個安裝在監視地,兩個DDC通過NCU進行通訊從而實現遠程溫度監測。但以上方案都存在成本高的問題,有沒有低成本的解決方案呢?其實,在單片機應用日益廣泛的今天,完全可以用單片機以極低的成本來實現遠程溫度監測。二、問題的提出我單位管理的鍋爐房同時給兩棟建筑物內的兩家酒店供應蒸汽,由安裝在兩棟建筑物地下室的熱交換器進行熱交換后產生熱水送給客房。從鍋爐房至兩個熱交換站的距離分別約600米,值班人員要不停地奔波于兩個熱交換站與鍋爐房之間進行設備巡視,檢查熱水溫度是否控制在規定的范圍,這樣不僅增加了值班人員的勞動強度,同時也使鍋爐房經常無人(因每班1人值班)。如果能在鍋爐房顯示兩個熱交換站內各熱交換器的熱水溫度,則值班人員僅在熱水溫度異常時才需到各熱交換站檢查設備,這樣便可解決上述問題。我公司曾就此問題找專業公司作過方案,其報價在人民幣10萬元左右,后因種種原因該項目未實施。經過分析,本人發現可以用單片機+智能儀表以低成本實現溫度遠程顯示,并且經過實驗取得了成功,現將設計方案簡述如下:三、控制要求及解決方案選擇 1、 兩個熱交換站分高低區共安裝有8個熱交換器,正常水溫在45oC至65oC之間;兩個熱交換站與鍋爐房的距離分別為500米和600米左右。2、 要求在鍋爐房能以巡回及定點兩種方式顯示8個熱交換器的熱水溫度,巡回方式以3秒為周期輪流更新及顯示各熱交換器熱水溫度。定點方式時每按上鍵或下鍵一次則顯示上或下一個熱交換器熱水溫度,每3秒自動更新數據一次。3、 根據控制要求選擇單片機+智能儀表的解決方案:用帶通訊接口的智能儀表安裝在現場測量溫度,設計制作一個單片機裝置完成與智能儀表的通訊及數據顯示。四、通訊協議、智能儀表選擇及其參數介紹因熱水溫度信號變化較慢,因而對通信的速度要求不高,對于這種低速率遠距離的通訊選用RS-485總線適宜。RS-485是EIA(美國電子工業聯合會)在1983年公布的新的平衡傳輸標準,是工業界使用最為廣泛的雙向、平衡傳輸線標準接口,它以半雙工方式通信,支持多點連接,傳統驅動器允許創建多達32個節點的網絡,且其具有傳輸距離遠(最大傳輸距離為1200M),傳輸速度快(1200M時為100KBPS)等優點。其連接方法如下圖所示。
上傳時間: 2013-10-12
上傳用戶:luopoguixiong
摘要:設計并實現了一個USB/EPP 轉接系統,給出其硬件設計方案并討論了相關技術細節, 使其實現USB 接口到EPP接口的相互數據轉發。使僅具有EPP 接口的傳統儀器設備借助于USB/EPP 轉接系統擁有USB 總線所提供的即插即用和設備插架特性, 方便其通過USB 接口靈活接入同時擁有多個外設的計算機主機系統。關鍵詞:USB;EPP;轉接系統中圖分類號:TP368.3 文獻標識碼:A文章編號:1008- 0570(2005)11- 2- 0166- 03 在傳統的I/O 模式中,計算機外設通常映射為CPU 中固定I/O 地址,要求由主機分配一個指定的IRQ 中斷請求。由于PC 機的端口和中斷資源有限,因而使外設的可擴展性受到局限;同時,隨著電腦應用的拓展,PC 機的外設接口越來越多,外設對系統資源的獨占性也容易導致系統資源沖突。由于各種外部設備不斷增加,容易導致各種I/O 沖突。由Intel、Compaq、Microsoft、IBM等廠商所提出的USB 總線標準,基于即插即用和設備插架技術,設備接入時不影響應用程序的運行,具有良好的可擴充性和擴展的方便性。目前USB 協議已經發展到了最新的2.0 版本,可支持峰值傳輸速率為480Mbps 的高速外設,可提供4~8 個USB 2.0 接口,同時通過USB 集線器(HUB)的擴展還可以支持多達127 個外設同時連接,基本上解決了各種外設同時存在同時使用的所有問題。基于USB 接口的上述優點,目前的計算機,特別是筆記本計算機基本上都只配備USB 接口,而取消了傳統的串口和并口,這對那些以前購置的需要與計算機進行通信而只有串口或并口的各種儀器的繼續使用造成了極大的障礙。 針對傳統的數字化儀器與計算機通信中存在的接口不足的問題,本文設計了一個USB/EPP 轉接系統,使其能夠從計算機的USB 接口接收數據,經過格式轉換,從USB/EPP 轉接系統的并行接口EPP 發送給傳統的儀器設備;同時也能夠從USB/EPP 轉接系統的并行接口EPP 接收數據,將其轉化為USB 幀格式,并發送到計算機的USB 接口。從而使僅具有EPP 接口的傳統儀器設備借助于USB/EPP 轉接系統,可以繼續正常使用。2 USB 總線2.1 USB 系統描述及總線協議USB 是一種電纜總線,支持在主機和各種即插即用外設之間進行數據傳輸。由主機預定的標準協議使各種設備分享USB 帶寬,當其它設備和主機在運行時,總線允許添加、設置、使用以及拆除外設,這為多個儀器設備共享同一個主計算機提供了可能。USB 協議采用了管道模型的軟硬件協議,摒棄了一般外設協議的端口映射方式,從而有效地避免了計算機應用系統I/O 端口地址沖突。根據功能劃分,一個USB 系統由三個部分組成:即USB 互連、USB 主機和USB 設備。圖1 給出了USB系統的通用拓撲結構。
上傳時間: 2013-10-09
上傳用戶:半熟1994
單片機系統“PC”失控的軟件措施Software Measure of GettingO uto fC ontrolfo r“PC"in S ingleC hipC omputerS ystem謐 加 春 王 曉 基 雷 小 華(江 西 理 工 大 學機 電 工 程 學 院 ,贛 州 34 10 00)摘要單片機系統在實際工業現場中可能遇到各種干擾和自身的隨機性故障。現場惡劣的環境有可能使計算機系統發生異常,計算機程序指針“PC”失控就是常見的故障之一,如果發生“PC”失控,將導致CPI工作混亂,釀成嚴重的事故。研究了“PC”失控的原因,并指出軟件抗干擾的幾種方法,有效保證單片機系統的正常工作。關鍵詞單片機“PC”失控抗干擾Abstract Inp racticalin dustrialfi elds,th ereis v ariousin terferencea fectingo perationo fsi nglec hipc omputersy stemsa ndt hec omputersy stems。fac噸random faults飾themselves. It is very common that the severe environment makes the computer systems abnormal. The program counter "PC"gettingo utof co ntorlis on eo fth ec ommonfa ults.If th isoc curs,C PUw ouldb eru nningo utof or deran din torducesse riousan cient.T hec ausesof " PC"geting out of control, studied in this paper and some countermeasures of anti-interference師software are given to ensure single chip computer systemworking properly.Keywords Single。飾computer Porgramc ounter"P C" Anti-interfeernc 在設 計 和 開發單片機系統時,一般難以周全地預計單片機系統在實際工業現場中可能遇到的各種干擾和自身的隨機性故障。因此,除了采取防止和抑制干擾的各項措施外,還應該借助于軟件措施克服某些干擾,系統還應具備迅速自行恢復的能力。本文介紹的應對單片機系統PC失控的軟件措施,設計靈活,節省硬件資源,能保證測控系統長期可靠地運行。MC S- 5 1單片機以其優良的性能價格比大量應用于工業現場測試和控制領域。但是,現場惡劣的環境有可能使計算機系統發生異常,計算機程序指針PC失控就是常見的故障之一,一旦發生PC“走飛”,計算機系統就會出現工作混亂,釀成嚴重的事故。為 了 在 CP 失控時盡量減少由此帶來的不利影響,并盡快使系統恢復正常,需要采取一定的軟件措施和硬件措施。常見的硬件措施有“看門狗”電路。軟件措施設置的前提條件是:①在干擾作用下,微機系統硬件部分不會受到任何損壞,或者損壞部分設置有監測狀態可供查詢;②程序區不會受到干擾侵害。單片機系統的程序和表格以及重要的參數均設置在ROM區,不會因干擾的侵人而改變;③ RAM區中的重要數據不會被破壞,或者雖然被破壞,但是可以重新建立。
上傳時間: 2013-11-02
上傳用戶:bhqrd30
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
上傳用戶:時代電子小智
這是一本關于Intel 80C51 以及廣大的51 系列單片機的書這本書介紹給讀者一些新的技術使你的8051 工程和開發過程變得簡單請注意這本書的目的可不是教你各種8051 嵌入式系統的解決方法為使問題討論更加清晰在適當的地方給出了程序代碼我們以討論項目的方法來說明每章碰到的問題所有的代碼都可在附帶的光盤上找到你必須熟系C 和8051 匯編因為本書不是一本C 和匯編的指導書你可以買到不少關于ANSI C 的書最佳選擇當然是Intel的數據書可從你的芯片供應商處免費索取和隨編譯工具附送的手冊附送光盤中有我為這本書編寫和收集的程序這些程序已經通過測試這并不意味著你可以隨時把這些程序加到你的應用系統或工程中有些地方必須首先經過修改才能結合到你的程序中這本書將教你充分使用你的工具如果你只有8051 的匯編程序你也可以學習該書和使用這些例子但是你必須把C 語言的程序裝入你的匯編程序中這對懂得C 語言和8051匯編程序指令的人來說并不是一件困難的事如果你有C 編譯器的話那恭喜你使用C 語言進行開發是一個好的決定你會發現使用C 進行開發將使你的工程開發和維護的時間大大減少如果你已經擁有Keil C51 那你已經選擇了一個非常好的開發工具我發現Keil 軟件包能夠提供最好的支持本書支持Keil C 的擴展如果你有其它的開發工具像Archimedes 和Avocet 這本書也能很好地為你服務但你必須根據你所用的開發工具改變一些Keil 的特殊指令在書的一些地方有硬件圖實例程序在這些硬件上運行這些圖繪制地不是很詳細主要是方框圖但足以使讀者明白軟件和硬件之間的接口讀者應該把這本書看成工具書而不是用來學習各種系統設計通過本書你可以了解給定一定的硬件和軟件設計之后8051 的各種性能希望你能從本書中獲取靈感并有助于你的設計使你豁然開朗當然我希望你也能夠從本書中學到有用的知識使之能夠提升你的設計 8051 系列微處理器基于簡化的嵌入式控制系統結構被廣泛應用于從軍事到自動控制再到PC 機上的鍵盤上的各種應用系統上僅次于Motorola 68HC11 在 8 位微控制器市場上的銷量很多制造商都可提供8051 系列單片機像Intel Philips Siemens 等這些制造商給51 系列單片機加入了大量的性能和外部功能像I2C 總線接口模擬量到數字量的轉換看門狗PWM 輸出等不少芯片的工作頻率達到40M 工作電壓下降到1.5V 基于一個內核的這些功能使得8051 單片機很適合作為廠家產品的基本構架它能夠運行各種程序而且開發者只需要學習這一個平臺8051 系列的基本結構如下1 一個8 位算術邏輯單元2 32 個I/O 口4 組8 位端口可單獨尋址3 兩個16 位定時計數器4 全雙工串行通信5 6 個中斷源兩個中斷優先級6 128 字節內置RAM7 獨立的64K 字節可尋址數據和代碼區每個8051 處理周期包括12 個振蕩周期每12 個振蕩周期用來完成一項操作如取指令和計算指令執行時間可把時鐘頻率除以12 取倒數然后指令執行所須的周期數因此如果你的系統時鐘是11.059MHz 除以12 后就得到了每秒執行的指令個數為921583條指令取倒數將得到每條指令所須的時間1.085ms
上傳時間: 2013-11-09
上傳用戶:chenlong
用C 語言來開發單片機系統軟件最大的好處是編寫代碼效率高、軟件調試直觀、維護升級方便、代碼的重復利用率高、便于跨平臺的代碼移植等等,因此C 語言編程在單機系統設計中已得到越來越廣泛的運用。針對PIC 單片機的軟件開發,同樣可以用C 語言實現。但在單片機上用C 語言寫程序和在PC 機上寫程序絕對不能簡單等同。現在的PC 機資源十分豐富,運算能力強大,因此程序員在寫PC 機的應用程序時幾乎不用關心編譯后的可執行代碼在運行過程中需要占用多少系統資源,也基本不用擔心運行效率有多高。寫單片機的C 程序最關鍵的一點是單片機內的資源非常有限,控制的實時性要求又很高,因此,如果沒有對單片機體系結構和硬件資源作詳盡的了解,以筆者的愚見認為是無法寫出高質量實用的C 語言程序。這就是為什么前面所有章節中的的示范代碼全部用基礎的匯編指令實現的原因,希望籍此能使讀者對PIC 單片機的指令體系和硬件資源有深入了解,在這基礎之上再來討論C 語言編程,就有水到渠成的感覺。本書圍繞中檔系列PIC 單片機來展開討論,Microchip 公司自己沒有針對中低檔系列PIC單片機的C 語言編譯器,但很多專業的第三方公司有眾多支持PIC 單片機的C 語言編譯器提供,常見的有Hitech、CCS、IAR、Bytecraft 等公司。其中筆者最常用的是Hitech 公司的PICC 編譯器,它穩定可靠,編譯生成的代碼效率高,在用PIC 單片機進行系統設計和開發的工程師群體中得到廣泛認可。其正式完全版軟件需要購置,但在其網站上有限時的試用版供用戶評估。另外,Hitech 公司針對廣大PIC 的業余愛好者和初學者還提供了完全免費的學習版PICC-Lite 編譯器套件,它的使用方式和完全版相同,只是支持的PIC 單片機型號限制在PIC16F84、PIC16F877 和PIC16F628 等幾款。這幾款Flash 型的單片機因其所具備的豐富的片上資源而最適用于單片機學習入門,因此筆者建議感興趣的讀者可從PICC-Lite 入手掌握PIC 單片機的C 語言編程。
上傳時間: 2013-11-12
上傳用戶:wfeel
PIC 單片機C 語言編程簡介用C 語言來開發單片機系統軟件最大的好處是編寫代碼效率高、軟件調試直觀、維護升級方便、代碼的重復利用率高、便于跨平臺的代碼移植等等,因此C 語言編程在單片機系統設計中已得到越來越廣泛的運用。針對PIC 單片機的軟件開發,同樣可以用C 語言實現。但在單片機上用C 語言寫程序和在PC 機上寫程序絕對不能簡單等同。現在的PC 機資源十分豐富,運算能力強大,因此程序員在寫PC 機的應用程序時幾乎不用關心編譯后的可執行代碼在運行過程中需要占用多少系統資源,也基本不用擔心運行效率有多高。寫單片機的C 程序最關鍵的一點是單片機內的資源非常有限,控制的實時性要求又很高,因此,如果沒有對單片機體系結構和硬件資源作詳盡的了解,以筆者的愚見認為是無法寫出高質量實用的C 語言程序。這就是為什么前面所有章節中的的示范代碼全部用基礎的匯編指令實現的原因,希望籍此能使讀者對PIC 單片機的指令體系和硬件資源有深入了解,在這基礎之上再來討論C 語言編程,就有水到渠成的感覺。本書圍繞中檔系列PIC 單片機來展開討論,Microchip 公司自己沒有針對中低檔系列PIC單片機的C 語言編譯器,但很多專業的第三方公司有眾多支持PIC 單片機的C 語言編譯器提供,常見的有Hitech、CCS、IAR、Bytecraft 等公司。其中筆者最常用的是Hitech 公司的PICC 編譯器,它穩定可靠,編譯生成的代碼效率高,在用PIC 單片機進行系統設計和開發的工程師群體中得到廣泛認可。其正式完全版軟件需要購置,但在其網站上有限時的試用版供用戶評估。另外,Hitech 公司針對廣大PIC 的業余愛好者和初學者還提供了完全免費的學習版PICC-Lite 編譯器套件,它的使用方式和完全版相同,只是支持的PIC 單片機型號限制在PIC16F84、PIC16F877 和PIC16F628 等幾款。這幾款Flash 型的單片機因其所具備的豐富的片上資源而最適用于單片機學習入門,因此筆者建議感興趣的讀者可從PICC-Lite 入手掌握PIC 單片機的C 語言編程。
上傳時間: 2013-11-17
上傳用戶:15527161163
這是一本關于Intel 80C51 以及廣大的51 系列單片機的書這本書介紹給讀者一些新的技術使你的8051 工程和開發過程變得簡單請注意這本書的目的可不是教你各種8051 嵌入式系統的解決方法為使問題討論更加清晰在適當的地方給出了程序代碼我們以討論項目的方法來說明每章碰到的問題所有的代碼都可在附帶的光盤上找到你必須熟系C 和8051 匯編因為本書不是一本C 和匯編的指導書你可以買到不少關于ANSI C 的書最佳選擇當然是Intel的數據書可從你的芯片供應商處免費索取和隨編譯工具附送的手冊附送光盤中有我為這本書編寫和收集的程序這些程序已經通過測試這并不意味著你可以隨時把這些程序加到你的應用系統或工程中有些地方必須首先經過修改才能結合到你的程序中這本書將教你充分使用你的工具如果你只有8051 的匯編程序你也可以學習該書和使用這些例子但是你必須把C 語言的程序裝入你的匯編程序中這對懂得C 語言和8051匯編程序指令的人來說并不是一件困難的事如果你有C 編譯器的話那恭喜你使用C 語言進行開發是一個好的決定你會發現使用C 進行開發將使你的工程開發和維護的時間大大減少如果你已經擁有Keil C51 那你已經選擇了一個非常好的開發工具我發現Keil 軟件包能夠提供最好的支持本書支持Keil C 的擴展如果你有其它的開發工具像Archimedes 和Avocet 這本書也能很好地為你服務但你必須根據你所用的開發工具改變一些Keil 的特殊指令在書的一些地方有硬件圖實例程序在這些硬件上運行這些圖繪制地不是很詳細主要是方框圖但足以使讀者明白軟件和硬件之間的接口讀者應該把這本書看成工具書而不是用來學習各種系統設計通過本書你可以了解給定一定的硬件和軟件設計之后8051 的各種性能希望你能從本書中獲取靈感并有助于你的設計使你豁然開朗當然我希望你也能夠從本書中學到有用的知識使之能夠提升你的設計 這本書向你展示了用8051進行工程設計時的許多問題希望你讀完本書后對8051的認識能有較大的提高如果你現在還沒有夠買C編譯器你應該馬上去買一個采用C語言可是你的系統設計更簡單維護更方便這本書覆蓋面較大從C和匯編的代碼優化到8051的網絡設計再到模糊控制希望你從本書中學到的知識對你今后的系統設計有所幫助
上傳時間: 2013-10-12
上傳用戶:ommshaggar
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
第一章 51單片機c語言編程介紹這是一本關于 Intel 80C51 以及廣大的 51 系列單片機的書 這本書介紹給讀者一些新的技術 使你的 8051 工程和開發過程變得簡單 請注意 這本書的目的可不是教你各種8051 嵌入式系統的解決方法為使問題討論更加清晰 在適當的地方給出了程序代碼 我們以討論項目的方法來說明每章碰到的問題 所有的代碼都可在附帶的光盤上找到 你必須熟系 C 和 8051匯編 因為本書不是一本C和匯編的指導書 你可以買到不少關于ANSI C的書 最佳選擇當然是Intel的數據書 可從你的芯片供應商處免費索取 和隨編譯工具附送的手冊附送光盤中有我為這本書編寫和收集的程序 這些程序已經通過測試 這并不意味著你可以隨時把這些程序加到你的應用系統或工程中 有些地方必須首先經過修改才能結合到你的程序中這本書將教你充分使用你的工具 如果你只有 8051 的匯編程序 你也可以學習該書和使用這些例子 但是你必須把 C 語言的程序裝入你的匯編程序中 這對懂得 C 語言和 8051匯編程序指令的人來說并不是一件困難的事如果你有 C 編譯器的話 那恭喜你 使用 C 語言進行開發是一個好的決定 你會發現使用 C 進行開發將使你的工程開發和維護的時間大大減少 如果你已經擁有 Keil C51 那你已經選擇了一個非常好的開發工具 我發現 Keil 軟件包能夠提供最好的支持 本書支持Keil C 的擴展 如果你有其它的開發工具像 Archimedes 和 Avocet 這本書也能很好地為你服務 但你必須根據你所用的開發工具改變一些 Keil 的特殊指令在書的一些地方有硬件圖 實例程序在這些硬件上運行 這些圖繪制地不是很詳細主要是方框圖 但足以使讀者明白軟件和硬件之間的接口讀者應該把這本書看成工具書 而不是用來學習各種系統設計 通過本書 你可以了解給定一定的硬件和軟件設計之后 8051 的各種性能 希望你能從本書中獲取靈感 并有助于你的設計 使你豁然開朗 當然 我希望你也能夠從本書中學到有用的知識 使之能夠提升你的設計
上傳時間: 2013-11-16
上傳用戶:穿著衣服的大衛