單片機應用編程技巧100問1.C語言和匯編語言在開發(fā)單片機時各有哪些優(yōu)缺點?答:匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。C語言是一種結構化的高級語言。其優(yōu)點是可讀性好,移植容易,是普遍使用的一種計算機語言。缺點是占用資源較多,執(zhí)行效率沒有匯編高。對于目前普遍使用的RISC架構的8bit MCU來說,其內(nèi)部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,會變成很多條機器碼,很容易出現(xiàn)ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應一個機器碼,每一步執(zhí)行什幺動作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來也比較方便。所以在單片機開發(fā)中,我們還是建議采用匯編語言比較好。2.C或匯編語言可以用于單片機,C++能嗎?答:在單片機開發(fā)中,主要是匯編和C,沒有用C++的。3.搞單片機開發(fā),一定要會C嗎?答:匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。對于目前普遍使用的RISC架構的8bit MCU來說,其內(nèi)部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,會變成很多條機器碼,很容易出現(xiàn)ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應一個機器碼,每一步執(zhí)行什么動作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來也比較方便。所以在資源較少單片機開發(fā)中,我們還是建議采用匯編語言比較好。
上傳時間: 2013-12-10
上傳用戶:busterman
本文設計出一種新型燈光調(diào)光控制系統(tǒng)。系統(tǒng)采用先進的智能功率模塊((IPM)取代以往的可控硅作為功率變換器件,以Intel16 位單片機為核心控制器采用AC-DC-AC 變換技術使輸出的波形較可控硅斬波后的波形有很大的改善,這不僅降低了變壓器的損耗而且延長了燈的壽命,提高了系統(tǒng)的運行質(zhì)量。現(xiàn)場總線CAN 的運用使得整個系統(tǒng)便于集中監(jiān)控、管理。調(diào)光器是機場助航燈光系統(tǒng)的核心控制設備。目前,國內(nèi)外使用的調(diào)光器主要采用可控硅斬波技術,這種調(diào)光器存在波形畸變大、電網(wǎng)要求高、對電網(wǎng)污染嚴重、效率低、負載適應能力差等缺點。針對以往系統(tǒng)存在的不足,提出了正弦波調(diào)光器,它采用逆變技術,輸出標準正弦電壓,它的優(yōu)點是對負載適應能力強、對電網(wǎng)要求低、污染輕、效率高、輸出波形好等。正弦波調(diào)光器采用逆變技術,輸出幅度可調(diào)的標準正弦電壓,通過控制算法實現(xiàn)對燈光回路的高精度恒流控制。“正弦波調(diào)光器”將極大地提高調(diào)光器的技術水平,改善調(diào)光器的性能,增強市場競爭能力。
標簽: 單片機 燈光 調(diào)光控制 系統(tǒng)開發(fā)
上傳時間: 2013-11-02
上傳用戶:亞亞娟娟123
計算機的指令系統(tǒng)是表征計算機性能的重要指標,每種計算機都有自己的指令系統(tǒng)。MCS—51單片機的指令系統(tǒng)是一個具有255種代碼的集合,絕大多數(shù)指令包含兩個基本部分:操作碼和操作數(shù)。操作碼表明指令要執(zhí)行的操作的性質(zhì);操作數(shù)說明參與操作的數(shù)據(jù)或數(shù)據(jù)所存放的地址。MCS—51指令系統(tǒng)中所有程序指令是以機器語言形式表示,可分為單字節(jié)、雙字節(jié)、三字節(jié)3種格式。用二進制編碼表示的機器語言由于閱讀困難,且難以記憶。因此在微機控制系統(tǒng)中采用匯編語言指令來編寫程序。本章介紹MCS—51指令系統(tǒng)就是以匯編語言來描述的。 一條匯編語言指令中最多包含4個區(qū)段,如下所示: 標號: 操作碼目的操作數(shù),源源操作數(shù);注釋 標號與操作碼之間“:”隔開; 操作碼與操作數(shù)之間用“空格”隔開; 目的操作數(shù)和源源操作數(shù)之間有“,”分隔; 操作數(shù)與注釋之間用“;”隔開。 標號是由用戶定義的符號組成,必須用英文大寫字母開始。標號可有可無,若一條指令中有標號,標號代表該指令所存放的第一個字節(jié)存儲單元的地址,故標號又稱為符號地址,在匯編時,把該地址賦值給標號。 操作碼是指令的功能部分,不能缺省。MCS—51指令系統(tǒng)中共有42種助記符,代表了33種不同的功能。例如MOV是數(shù)據(jù)傳送的助記符。 操作數(shù)是指令要操作的數(shù)據(jù)信息。根據(jù)指令的不同功能,操作數(shù)的個數(shù)有3、2、1或沒有操作數(shù)。例如MOV A,#20H,包含了兩個操作數(shù)A和#20H,它們之間用“,”隔開。注釋可有可無,加入注釋主要為了便于閱讀,程序設計者對指令或程序段作簡要的功能說明,在閱讀程序或調(diào)試程序時將會帶來很多方便。
標簽: 8051 指令系統(tǒng) 單片機 計算機
上傳時間: 2013-11-04
上傳用戶:kr770906
P C B 可測性設計布線規(guī)則之建議― ― 從源頭改善可測率PCB 設計除需考慮功能性與安全性等要求外,亦需考慮可生產(chǎn)與可測試。這里提供可測性設計建議供設計布線工程師參考。1. 每一個銅箔電路支點,至少需要一個可測試點。如無對應的測試點,將可導致與之相關的開短路不可檢出,并且與之相連的零件會因無測試點而不可測。2. 雙面治具會增加制作成本,且上針板的測試針定位準確度差。所以Layout 時應通過Via Hole 盡可能將測試點放置于同一面。這樣就只要做單面治具即可。3. 測試選點優(yōu)先級:A.測墊(Test Pad) B.通孔(Through Hole) C.零件腳(Component Lead) D.貫穿孔(Via Hole)(未Mask)。而對于零件腳,應以AI 零件腳及其它較細較短腳為優(yōu)先,較粗或較長的引腳接觸性誤判多。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反放而導致機器壓破板),且孔內(nèi)不能沾錫。(c) 選擇以對角線,距離最遠之2 孔為定位孔。(d) 各定位孔(含防呆孔)不應設計成中心對稱,即PCB 旋轉(zhuǎn)180 度角后仍能放入PCB,這樣,作業(yè)員易于反放而致機器壓破板)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 時加上錫膏再經(jīng)回流焊固化為錫點,雖可大幅改善,但因助焊劑或吃錫不完全的緣故,仍會出現(xiàn)較多的接觸誤判。
上傳時間: 2014-01-14
上傳用戶:cylnpy
微處理器及微型計算機的發(fā)展概況 第一代微處理器是以Intel公司1971年推出的4004,4040為代表的四位微處理機。 第二代微處理機(1973年~1977年),典型代表有:Intel 公司的8080、8085;Motorola公司的M6800以及Zlog公司的Z80。 第三代微處理機 第三代微機是以16位機為代表,基本上是在第二代微機的基礎上發(fā)展起來的。其中Intel公司的8088。8086是在8085的基礎發(fā)展起來的;M68000是Motorola公司在M6800 的基礎發(fā)展起來的; 第四代微處理機 以Intel公司1984年10月推出的80386CPU和1989年4月推出的80486CPU為代表, 第五代微處理機的發(fā)展更加迅猛,1993年3月被命名為PENTIUM的微處理機面世,98年PENTIUM 2又被推向市場。 INTEL CPU 發(fā)展歷史Intel第一塊CPU 4004,4位主理器,主頻108kHz,運算速度0.06MIPs(Million Instructions Per Second, 每秒百萬條指令),集成晶體管2,300個,10微米制造工藝,最大尋址內(nèi)存640 bytes,生產(chǎn)曰期1971年11月. 8085,8位主理器,主頻5M,運算速度0.37MIPs,集成晶體管6,500個,3微米制造工藝,最大尋址內(nèi)存64KB,生產(chǎn)曰期1976年 8086,16位主理器,主頻4.77/8/10MHZ,運算速度0.75MIPs,集成晶體管29,000個,3微米制造工藝,最大尋址內(nèi)存1MB,生產(chǎn)曰期1978年6月. 80486DX,DX2,DX4,32位主理器,主頻25/33/50/66/75/100MHZ,總線頻率33/50/66MHZ,運算速度20~60MIPs,集成晶體管1.2M個,1微米制造工藝,168針PGA,最大尋址內(nèi)存4GB,緩存8/16/32/64KB,生產(chǎn)曰期1989年4月 Celeron一代, 主頻266/300MHZ(266/300MHz w/o L2 cache, Covington芯心 (Klamath based),300A/333/366/400/433/466/500/533MHz w/128kB L2 cache, Mendocino核心 (Deschutes-based), 總線頻率66MHz,0.25微米制造工藝,生產(chǎn)曰期1998年4月) Pentium 4 (478針),至今分為三種核心:Willamette核心(主頻1.5G起,FSB400MHZ,0.18微米制造工藝),Northwood核心(主頻1.6G~3.0G,FSB533MHZ,0.13微米制造工藝, 二級緩存512K),Prescott核心(主頻2.8G起,FSB800MHZ,0.09微米制造工藝,1M二級緩存,13條全新指令集SSE3),生產(chǎn)曰期2001年7月. 更大的緩存、更高的頻率、 超級流水線、分支預測、亂序執(zhí)行超線程技術 微型計算機組成結構單片機簡介單片機即單片機微型計算機,是將計算機主機(CPU、 內(nèi)存和I/O接口)集成在一小塊硅片上的微型機。 三、計算機編程語言的發(fā)展概況 機器語言 機器語言就是0,1碼語言,是計算機唯一能理解并直接執(zhí)行的語言。匯編語言 用一些助記符號代替用0,1碼描述的某種機器的指令系統(tǒng),匯編語言就是在此基礎上完善起來的。高級語言 BASIC,PASCAL,C語言等等。用高級語言編寫的程序稱源程序,它們必須通過編譯或解釋,連接等步驟才能被計算機處理。 面向?qū)ο笳Z言 C++,Java等編程語言是面向?qū)ο蟮恼Z言。 1.3 微型計算機中信息的表示及運算基礎(一) 十進制ND有十個數(shù)碼:0~9,逢十進一。 例 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1加權展開式以10稱為基數(shù),各位系數(shù)為0~9,10i為權。 一般表達式:ND= dn-1×10n-1+dn-2×10n-2 +…+d0×100 +d-1×10-1+… (二) 二進制NB兩個數(shù)碼:0、1, 逢二進一。 例 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3 加權展開式以2為基數(shù),各位系數(shù)為0、1, 2i為權。 一般表達式: NB = bn-1×2n-1 + bn-2×2n-2 +…+b0×20 +b-1×2-1+… (三)十六進制NH十六個數(shù)碼0~9、A~F,逢十六進一。 例:DFC.8=13×162 +15×161 +12×160 +8×16-1 展開式以十六為基數(shù),各位系數(shù)為0~9,A~F,16i為權。 一般表達式: NH= hn-1×16n-1+ hn-2×16n-2+…+ h0×160+ h-1×16-1+… 二、不同進位計數(shù)制之間的轉(zhuǎn)換 (二)二進制與十六進制數(shù)之間的轉(zhuǎn)換 24=16 ,四位二進制數(shù)對應一位十六進制數(shù)。舉例:(三)十進制數(shù)轉(zhuǎn)換成二、十六進制數(shù)整數(shù)、小數(shù)分別轉(zhuǎn)換 1.整數(shù)轉(zhuǎn)換法“除基取余”:十進制整數(shù)不斷除以轉(zhuǎn)換進制基數(shù),直至商為0。每除一次取一個余數(shù),從低位排向高位。舉例: 2. 小數(shù)轉(zhuǎn)換法“乘基取整”:用轉(zhuǎn)換進制的基數(shù)乘以小數(shù)部分,直至小數(shù)為0或達到轉(zhuǎn)換精度要求的位數(shù)。每乘一次取一次整數(shù),從最高位排到最低位。舉例: 三、帶符號數(shù)的表示方法 機器數(shù):機器中數(shù)的表示形式。真值: 機器數(shù)所代表的實際數(shù)值。舉例:一個8位機器數(shù)與它的真值對應關系如下: 真值: X1=+84=+1010100B X2=-84= -1010100B 機器數(shù):[X1]機= 01010100 [X2]機= 11010100(二)原碼、反碼、補碼最高位為符號位,0表示 “+”,1表示“-”。 數(shù)值位與真值數(shù)值位相同。 例 8位原碼機器數(shù): 真值: x1 = +1010100B x2 =- 1010100B 機器數(shù): [x1]原 = 01010100 [x2]原 = 11010100原碼表示簡單直觀,但0的表示不唯一,加減運算復雜。 正數(shù)的反碼與原碼表示相同。 負數(shù)反碼符號位為 1,數(shù)值位為原碼數(shù)值各位取反。 例 8位反碼機器數(shù): x= +4: [x]原= 00000100 [x]反= 00000100 x= -4: [x]原= 10000100 [x]反= 111110113、補碼(Two’s Complement)正數(shù)的補碼表示與原碼相同。 負數(shù)補碼等于2n-abs(x)8位機器數(shù)表示的真值四、 二進制編碼例:求十進制數(shù)876的BCD碼 876= 1000 0111 0110 BCD 876= 36CH = 1101101100B 2、字符編碼 美國標準信息交換碼ASCII碼,用于計算 機與計算機、計算機與外設之間傳遞信息。 3、漢字編碼 “國家標準信息交換用漢字編碼”(GB2312-80標準),簡稱國標碼。 用兩個七位二進制數(shù)編碼表示一個漢字 例如“巧”字的代碼是39H、41H漢字內(nèi)碼例如“巧”字的代碼是0B9H、0C1H1·4 運算基礎 一、二進制數(shù)的運算加法規(guī)則:“逢2進1” 減法規(guī)則:“借1當2” 乘法規(guī)則:“逢0出0,全1出1”二、二—十進制數(shù)的加、減運算 BCD數(shù)的運算規(guī)則 循十進制數(shù)的運算規(guī)則“逢10進1”。但計算機在進行這種運算時會出現(xiàn)潛在的錯誤。為了解決BCD數(shù)的運算問題,采取調(diào)整運算結果的措施:即“加六修正”和“減六修正”例:10001000(BCD)+01101001(BCD) =000101010111(BCD) 1 0 0 0 1 0 0 0 + 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 + 0 1 1 0 0 1 1 0 ……調(diào)整 1 0 1 0 1 0 1 1 1 進位 例: 10001000(BCD)- 01101001(BCD)= 00011001(BCD) 1 0 0 0 1 0 0 0 - 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 - 0 1 1 0 ……調(diào)整 0 0 0 1 1 0 0 1 三、 帶符號二進制數(shù)的運算 1.5 幾個重要的數(shù)字邏輯電路編碼器譯碼器計數(shù)器微機自動工作的條件程序指令順序存放自動跟蹤指令執(zhí)行1.6 微機基本結構微機結構各部分組成連接方式1、以CPU為中心的雙總線結構;2、以內(nèi)存為中心的雙總線結構;3、單總線結構CPU結構管腳特點 1、多功能;2、分時復用內(nèi)部結構 1、控制; 2、運算; 3、寄存器; 4、地址程序計數(shù)器堆棧定義 1、定義;2、管理;3、堆棧形式
上傳時間: 2013-10-17
上傳用戶:erkuizhang
特點 精確度0.05%滿刻度 ±1位數(shù) 顯示范圍-19999-99999可任意規(guī)劃 可直接量測直流4至20mA電流,無需另接輔助電源 尺寸小(24x48x50mm),穩(wěn)定性高 分離式端子,配線容易 CE 認證 主要規(guī)格 輔助電源: None 精確度: 0.05% F.S. ±1 digit(DC) 輸入抗阻: approx. 250 ohm with 20mA input 輸入電壓降: max. DC5V with 20mA input 最大過載能力: < ±50mA 取樣時間: 2.5 cycles/sec. 顯示值范圍: -19999 - 99999 digit adjustable 歸零調(diào)整范圍: -999-999 digit adjustable 最大值調(diào)整范圍: -999-999 digit adjustable 過載顯示: " doFL " or "-doFL" 極性顯示: " 一 " for negative readings 顯示幕 : Brigh Red LEDs high 8.6mm(.338") 溫度系數(shù) : 50ppm/℃ (0-50℃) 參數(shù)設定方式: Touch switches 記憶型式: Non-volatile E2 外殼材料: ABS 絕緣耐壓能力: 2KVac/1 min. (input/case) 使用環(huán)境條件: 0-50℃(20 to 90% RH non-condensed) 存放環(huán)境條件: 0-70℃(20 to 90% RH non-condensed) 外型尺寸: 24x48x50mm CE認證: EN 55022:1998/A1:2000 Class A EN 61000-3-2:2000 EN 61000-3-3:1995/A1:2001 EN 55024:1998/A1:2001
上傳時間: 2013-10-09
上傳用戶:lhuqi
本手冊提供有關 RealView® 編譯工具 匯編器(ARM 匯編器)的指導和參考信息。 其中包括 armasm、獨立的匯編器以及 C 和 C++ 編譯器中的嵌入式匯編器。本手冊介紹匯編器的命令行選項,可供匯編語言程序員使用的匯編語言助記符、偽指令、宏和指令。
上傳時間: 2013-10-28
上傳用戶:robter
希望對初學者有用
上傳時間: 2013-11-04
上傳用戶:1477849018@qq.com
這本內(nèi)容全面的參考指南面向需要從Protel升級到Altium新一代設計解決方案的用戶,詳細介紹了如何充分利用其特性開發(fā)創(chuàng)新的電子產(chǎn)品。 該書得到了 IT界的廣泛支持,并有中國軟件行業(yè)協(xié)會秘書長陳沖先生為其作序。 本書是Altium計劃與大學及教育機構開展的一系列合作中的首個項目。Altium大學計劃是Altium與中國幾所頂尖大學的合資項目,出版本書則是該計劃的目標之一。Altium大學計劃旨在為學生提供最先進的電子設計工具和解決方案,推動一體化電子產(chǎn)品設計的教學,加速用戶向Altium最新的電子產(chǎn)品設計解決方案的升級。
上傳時間: 2013-10-20
上傳用戶:xiaoyunyun
這是韓國原版X-Hyper250B開發(fā)板的原代碼。在LINUX下編譯,對ARM開發(fā)的有重要助啊。
上傳時間: 2014-01-02
上傳用戶:qlpqlq