用單片機制作多功能莫爾斯碼電路:用單片機制作多功能莫爾斯碼電路莫爾斯電碼通信有著悠久的歷史,盡管它已被現代通信方式所取代,但在業余無線電通信和特殊的專業場合仍具有重要的地位,這是因為等幅電碼通信的抗干擾能力是其它任何一種通信方式都無法相比的。在短波波段用幾瓦的功率即可進行國際間的通信,收發射設備簡單易制成本低廉,所以深受業余無線電愛好者的喜愛,是業余無線電高手必備的技能。要想熟練掌握莫爾斯電碼的收發技術除了持之以恒的毅力外,還需要相關的設備。設計本電路的目的就是給愛好者提供一個實用和訓練的工具。 一、功能簡介 本電路可以配合自動鍵體和手動鍵體,產生莫爾斯碼控制信號,設有16種速度,從初學者到操作高手都能適用。監聽音調也有16種,均可以通過功能鍵進行選擇。可以按程序中設定好的呼號自動呼叫,設有聽抄練習功能,聽抄練習有短碼和混合碼兩種模式,分別對10個數字和常用的38個混合碼模擬隨機取樣,產生分組報碼,供愛好者提高抄收水平之用,速度低4檔的聽抄練習是專為初學者所設,內容是時間間隔較長的單字符。設有PTT開關鍵,可以決定是否控制發射機工作,不需要反復通斷控制線。無論當前處于呼叫狀態還是聽抄狀態只要電鍵接點接通則自動轉到人工發報程序。4分鐘內不使用電路將自動關閉電源,只有按復位鍵才能重新開始工作。先按住聽抄練習鍵復位則進入短碼練習狀態,其它功能不變。從開機到自動關機執行每個功能都有不同的莫爾斯碼提示音。本電路具有較強的抗高低頻干擾的能力和使用方便的大電流開關接口,以適應不同的發射設備。 二、硬件電路原理硬件電路如圖1所示。設計電路的目的在于方便實用,以免在緊張的操作中失誤,所以除了聽抄練習鍵外其它鍵沒有定義復用功能。各鍵的作用在圖中已經標出。PTT控制在每次復位時處于關閉狀態,每按動一次PTT功能鍵則改變一次狀態,這樣可以使用軟件開關控制發射。 PTT處于控制狀態時發光二極管隨控制信號閃亮。考慮到自制設備及淘汰軍用設備與高檔設備控制電流的不同,PTT開關管采用了2SC2073,可以承受500mA的電流,同時還增加了無極性PTT開關電路,無論外部被控制的端口直流極性如何加到VT3的極性始終不變,供有興趣的愛好者實驗。應該注意,如果被控制的負載是感性,則電感兩端必須并聯續流二極管,除自制設備外成品機在這方面一般沒有什么問題。手動鍵只有一個接點,接通后產生連續的音頻和發射控制信號。在本電路中手動鍵的輸入端是P1.5 ,程序不斷檢測P1.5電平,當按鍵按下時P1.5電平為0,程序轉入手動鍵子程序。 自動鍵的接點分別接到P1.3和P1.4 ,同樣當程序檢測到有接點閉合時便自動產生“點”或“劃”。音頻信號從P輸出,經VT1放大后推動揚聲器發音。單片機的I/O口在輸入狀態下阻抗較高,容易受到高低頻信號干擾,所以在每個輸入端口和三極管的be端并聯電阻和高頻旁路電容,確保在較長的電鍵連線和大功率發射時電路工作穩定。圖2是印刷電路版圖,尺寸為110mmX85mm,揚聲器用粘合劑直接粘接在電路版有銅箔的面。 三、軟件設計方法 “點”時間長度是莫爾斯電碼中的基本時間單位。按規定“劃”的時間長度不小于三個“點”,同字符中“點”與“劃”的間隔不小于一個“點”,字符之間不小于一個“劃”,詞與詞之間不應小于五個“點”。在本程序中用條件轉移指令來產生“點”時間長度。通過速度功能鍵功可以設置16種延時參數。用T0中斷產生監聽音頻信號,并將中斷設為優先級,保證在聽覺上純正悅耳。T1用于自動關機計時,如果不使用任何功能四分鐘后將向PCON 位寫1,單片機進入休眠狀態,此時耗電量僅有幾個微安。自動鍵的“點”或“劃”以及手動鍵的連續發音都是子程序的反復調用。P1.2對地短接時自動呼叫可設定為另一內容。為了便于熟悉匯編語言的讀者對發音內容進行修改,這里介紹發音字符的編碼方法。莫爾斯碼的信息與計算機中二進制恰好相同,我們可以用0表示“點”,用1表示“劃”。提示音、自動呼叫、聽抄內容等字符是預先按一定編碼方式存儲在程序中的常數。每個字符的莫爾斯碼一般是由1至6位“點”、“劃”組成,也就是發音次數最多6次。程序中每個字符占用1個字節,字符時間間隔不占用字節,但更長的延時或發音結束信息占用一個字節。我們用字節的低三位表示字節的性質,對于5次及5次以下發音的字符我們用存儲器的高5位存儲發音信息,發音順序由高位至低位,用低3位存儲發音次數,發音時將數據送入累加器A,先得到發音次數,然后使A左環移,對E0進行位尋址,判斷是發“點”還是“劃”,環移次數由發音次數決定。對于6次發音的字符不能完全按照上述編碼規則,否則會出現信息重疊,如果是6次發音且最后一次是“劃”我們把發音次數定義為111B,因為這時第6次位尋址得到的是1。如果第6次發音是“點”,那么這個字符的低三位定義為000B。字符間隔時間由程序自動產生,更長的時間隔或結束標志由字節低三位110B來定義,高半字節表示字符間隔的倍數,例如26H表示再加兩倍時間間隔。如果字節為06H則表示讀字符程序結束,返回主程序。更詳細的內容不再贅述,讀者可閱讀源程序。四、使用注意事項手動鍵的操作難度相對大一些,時間節拍全由人掌握,其特點是發出的電碼帶有“人情味”。自動鍵的“點”、“劃”靠電路產生,發音標準,容易操作,而且可以達到相當快的速度,長時間工作也不易疲勞。在干擾較大、信號微弱的條件下自動鍵碼的辨別程度好于手動鍵碼。初學者初次使用手動鍵練習發報要有老師指導,且不可我行我素,一旦養成不正確的手法則很難糾正。在電臺上時常聽到一些讓對方難以抄收的電碼,這可能會使對方反感而拒絕回答。使用自動鍵也應在一定的聽抄基礎上再去練習。在暫時找不老師的情況下可多練習聽力,這對于今后能夠發出標準正確的電碼非常有益。
上傳時間: 2013-10-31
上傳用戶:sdq_123
P C B 可測性設計布線規則之建議― ― 從源頭改善可測率PCB 設計除需考慮功能性與安全性等要求外,亦需考慮可生產與可測試。這里提供可測性設計建議供設計布線工程師參考。1. 每一個銅箔電路支點,至少需要一個可測試點。如無對應的測試點,將可導致與之相關的開短路不可檢出,并且與之相連的零件會因無測試點而不可測。2. 雙面治具會增加制作成本,且上針板的測試針定位準確度差。所以Layout 時應通過Via Hole 盡可能將測試點放置于同一面。這樣就只要做單面治具即可。3. 測試選點優先級:A.測墊(Test Pad) B.通孔(Through Hole) C.零件腳(Component Lead) D.貫穿孔(Via Hole)(未Mask)。而對于零件腳,應以AI 零件腳及其它較細較短腳為優先,較粗或較長的引腳接觸性誤判多。4. PCB 厚度至少要62mil(1.35mm),厚度少于此值之PCB 容易板彎變形,影響測點精準度,制作治具需特殊處理。5. 避免將測點置于SMT 之PAD 上,因SMT 零件會偏移,故不可靠,且易傷及零件。6. 避免使用過長零件腳(>170mil(4.3mm))或過大的孔(直徑>1.5mm)為測點。7. 對于電池(Battery)最好預留Jumper,在ICT 測試時能有效隔離電池的影響。8. 定位孔要求:(a) 定位孔(Tooling Hole)直徑最好為125mil(3.175mm)及其以上。(b) 每一片PCB 須有2 個定位孔和一個防呆孔(也可說成定位孔,用以預防將PCB反放而導致機器壓破板),且孔內不能沾錫。(c) 選擇以對角線,距離最遠之2 孔為定位孔。(d) 各定位孔(含防呆孔)不應設計成中心對稱,即PCB 旋轉180 度角后仍能放入PCB,這樣,作業員易于反放而致機器壓破板)9. 測試點要求:(e) 兩測點或測點與預鉆孔之中心距不得小于50mil(1.27mm),否則有一測點無法植針。以大于100mil(2.54mm)為佳,其次是75mil(1.905mm)。(f) 測點應離其附近零件(位于同一面者)至少100mil,如為高于3mm 零件,則應至少間距120mil,方便治具制作。(g) 測點應平均分布于PCB 表面,避免局部密度過高,影響治具測試時測試針壓力平衡。(h) 測點直徑最好能不小于35mil(0.9mm),如在上針板,則最好不小于40mil(1.00mm),圓形、正方形均可。小于0.030”(30mil)之測點需額外加工,以導正目標。(i) 測點的Pad 及Via 不應有防焊漆(Solder Mask)。(j) 測點應離板邊或折邊至少100mil。(k) 錫點被實踐證實是最好的測試探針接觸點。因為錫的氧化物較輕且容易刺穿。以錫點作測試點,因接觸不良導致誤判的機會極少且可延長探針使用壽命。錫點尤其以PCB 光板制作時的噴錫點最佳。PCB 裸銅測點,高溫后已氧化,且其硬度高,所以探針接觸電阻變化而致測試誤判率很高。如果裸銅測點在SMT 時加上錫膏再經回流焊固化為錫點,雖可大幅改善,但因助焊劑或吃錫不完全的緣故,仍會出現較多的接觸誤判。
上傳時間: 2014-01-14
上傳用戶:cylnpy
用C51寫的普通拼音輸入法源程序代碼:原作使用了一個二維數組用以查表,我認為這樣比較的浪費空間,而且每個字表的索引地址要手工輸入,效率不高。所以我用結構體將其改寫了一下。就是大家現在看到的這個。 因為代碼比較的大,共有6,000多漢字,這樣就得要12,000 byte來存放GB內碼,所以也是沒辦法的.編譯結果約為3000h,因為大部分是索引表,代碼優化幾乎無效。 在Keil C里仿真芯片選用的是華邦的W77E58,它有32k ROM, 256B on-chip RAM, 1K on-chip SRAM (用DPTR1指針尋址,相當于有1K的片上xdata)。條件有限,沒有上片試驗,仿真而已。 打算將其移植到AVR上,但CodeAVRC與IAR EC++在結構體、指針的定義使用上似乎與C51不太一樣,現在還未搞定。還希望在這方面有經驗的網友能給予指導。 #include<stdio.h> char * py_ime(char *); void main(void){ while(1) { char input_string[]="yI"; xdata char chinese_string[255]; sprintf(chinese_string,"%s",py_ime(input_string)); }}
上傳時間: 2013-10-30
上傳用戶:cainaifa
用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
上傳用戶:aa54
并行接口電路:微處理器與I/O設備進行數據傳輸時均需經過接口電路實現系統與設備互連的匹配。并行接口電路中每個信息位有自己的傳輸線,一個數據字節各位可并行傳送,速度快,控制簡單。由于電氣特性的限制,傳輸距離不能太長。8255A是通用的可編程并行接口芯片,功能強,使用靈活。適合一些并行輸入/輸出設備的使用。8255A并行接口邏輯框圖三個獨立的8位I/O端口,口A、口B、口C。口A有輸入、輸出鎖存器及輸出緩沖器。口B與口C有輸入、輸出緩沖器及輸出鎖存器。在實現高級的傳輸協議時,口C的8條線分為兩組,每組4條線,分別作為口A與口B在傳輸時的控制信號線。口C的8條線可獨立進行置1/置0的操作。口A、口B、口C及控制字口共占4個設備號。8255A并行接口的控制字工作模式選擇控制字:口A有三種工作模式,口B有二種工作模式。口C獨立使用時只有一個工作模式,與口A、口B配合使用時,作為控制信號線。三種工作模式命名為:模式0、模式1及模式2。模式 0 為基本I/O端口,模式1為帶選通的I/O端口,模式 2 為帶選通的雙向I/O端口。口A可工作在三種模式下,口B可工作在模式 0與模式 1下,口C可工作在模式0下或作為控制線配合口A、口B工作。
上傳時間: 2013-11-07
上傳用戶:xitai
用單片機實現溫度遠程顯示摘 要:文章介紹了用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
單片機系統“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
1 概述由于在某些通訊設計應用中,需要擴展更多的串口數量,比如車床監控、紡織儀器檢測和網狀連接的數據采集等應用。為此成都國騰微電子有限公司推出的GM814x 可以滿足多個同類產品的并聯擴展,并且能簡單的實現電路連接和程序控制,主MCU 可以識別數據的來源和指定和某個GM814x 通信。2 應用說明2.1 CS 與SPI 的數據通信GM814x 的CS(片選)引腳可用于控制SPI 總線時鐘有效性,CS 低電平有效,內部下拉。CS 有效時,允許芯片的時鐘接收和數據收發;無效時,SCLK、DIN 和DOUT 均為高阻狀態,GM814x 不響應SPI 上的數據收發,但能正常收發子串口數據和產生相應中斷。2.2 應用建議當使用GM814x 的應用需要擴展4 個以上的串口數量時,就需要使用2 片以上的GM814x。擴展的方式也有多種。方式一:將多個GM814x 的SPI 接口接在主MCU 的SPI 總線上,然后將所有GM814x 的中斷進行線與后連接到MCU 的IRQ 上,同時將各GM814x 的IRQ 輸出又連接到MCU的IO,以便MCU響應中斷后檢測是具體哪一個GM814x 輸出的中斷,然后再拉低對應的CS,拉高其它GM814x的CS,并執行通信操作。方式二:如果擴展的GM814x 數量較多,采用上述擴展方式可能會占用MCU較多的IO 資源,則可以將GM814x 的中斷輸出連接到具有OC 輸出的與門芯片上,再輸出到MCU 的中斷輸入。同時又將所有的GM814x 的中斷輸出進行編碼輸入到MCU,以供其判斷產生中斷的是哪一個GM814x。方式三:將所有GM814x 的中斷輸出連接到優先編碼器進行編碼輸出,同時編碼器也能輸出低電平信號給MCU 作為中斷響應。MCU 檢測編碼數據以獲知產生中斷的GM814x,然后進行數據通信處理。這種方式電路最簡單,占用MCU 的IO 資源也最少。 舉例:使用MCS51 單片機擴展8 片GM814x。本電路中,采用了上述提到的第三種擴展方式。通過普通的MCS51 單片機擴展最多8 片GM814x,可擴展最多32 個標準串口。為了節省MCU的IO 資源,電路中增加了一片8-3 線優先編碼器74LS348 和一片3-8 線譯碼器74HC138。8 片GM814x 的IRQ 中斷通過一片74LS348 輸出中斷源向量,同時產生GS 低電平信號到MCS51 的外部中斷0 上,MCS51 響應中斷后,可查詢A0~A2 的值確定產生中斷的GM814x,然后MCU 使能74HC138,輸出對應的ABC 信號選中產生IRQ 信號的GM814x,再進行SPI 總線上的數據通信。 示例程序:本示例程序使用C 語言描述,僅供參考。 由于74LS348 是優先編碼器,多個中斷同時產生的時候,74LS348 的編碼只會指示輸入編號上最高的IRQ,MCU 無法直接獲知是否其它的GM814x 也產生了中斷。同時GM814x 在自己的中斷申請后,數據傳輸到第8bit 時會自動清除,所以數據接收完后如果MCU 的中斷引腳仍然為低,則表示還有其它GM814x 的中斷申請,故必須在處理完當前中斷后繼續查詢新的中斷向量。這就是上述示例程序中while 循環的目的。 以上應用建議僅供設計者參考,不代表最終實現方式,更可靠和實際的實現方式可由設計者根據自己的實際情況確定。l 示例中的數據、參數和標志字命名不代表實際產品的特性,請參考實際產品的數據手冊來獲取你所需要的數據。
上傳時間: 2013-10-26
上傳用戶:suicoe
用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