單片機應用編程技巧100問1.C語言和匯編語言在開發單片機時各有哪些優缺點?答:匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是占用資源少、程序執行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。C語言是一種結構化的高級語言。其優點是可讀性好,移植容易,是普遍使用的一種計算機語言。缺點是占用資源較多,執行效率沒有匯編高。對于目前普遍使用的RISC架構的8bit MCU來說,其內部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,會變成很多條機器碼,很容易出現ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應一個機器碼,每一步執行什幺動作都很清楚,并且程序大小和堆棧調用情況都容易控制,調試起來也比較方便。所以在單片機開發中,我們還是建議采用匯編語言比較好。2.C或匯編語言可以用于單片機,C++能嗎?答:在單片機開發中,主要是匯編和C,沒有用C++的。3.搞單片機開發,一定要會C嗎?答:匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是占用資源少、程序執行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。對于目前普遍使用的RISC架構的8bit MCU來說,其內部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,會變成很多條機器碼,很容易出現ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應一個機器碼,每一步執行什么動作都很清楚,并且程序大小和堆棧調用情況都容易控制,調試起來也比較方便。所以在資源較少單片機開發中,我們還是建議采用匯編語言比較好。
上傳時間: 2013-12-10
上傳用戶:busterman
為了解決一些遠程單片機設備不方便升級內部程序的困難,本文提出了利用單片機系統中現有的數據獲取方式來升級單片機內部程序的方法。本文利用凌陽16 位單片機可以自讀寫片內程序空間的特性,通過在片內駐留BootLoader 程序的方式實現了凌陽16 位單片機片內程序的在需要時的遠程升級。單片機獲取數據的方式可以有很多,本文選取通過串口獲取數據進行程序升級為例,并選取常見的凌陽單片機SPCE061A 為例介紹了此方法的設計思路以及實現過程。單片機的應用非常廣泛,在某些情況下,單片機內部程序的升級在所難免,但是往往需要對單片機產品進行收回才能實現,這樣在一些遠程設備的程序升級問題上就顯得非常不方便。但是有些遠程設備本身留有遠程通訊的方式:例如某些遠程數據傳輸模塊,為了把數據上報總會留有通訊的接口,比如422、485 甚至GPRS 或者局域網接口;又或者某些車載定位設備,為了和監控中心通訊會留有GSM、CDMA 或者GPRS 等通訊方式。在這種情況下就可以利用其現有的通訊方式對其內部單片機程序進行升級而不需要收回產品。本文的主要內容就是來研究這種遠程升級單片機程序的方法。由于近年來凌陽科技的單片機,尤其是 16 位單片機,得到了越來越多的推廣,其應用領域越來越廣泛。本文選取一種常見的凌陽科技的16 位單片機SPCE061A 為例,來介紹單片機程序遠程升級的方法。SPCE061A 里內嵌了32K 字的閃存(FLASH),即可以作為程序存儲空間又可以存儲數據,并且有自讀寫任意閃存地址的能力,本文利用這一功能,提出了通過在單片機中駐留BootLoader 程序的方法,來實現單片機程序的遠程升級。遠程升級的實現,需要單片機自身的響應同時還需要遠程服務器提供升級所需的代碼。下文將通過這兩個方面來分別介紹。
上傳時間: 2013-10-31
上傳用戶:yxgi5
計算機的指令系統是表征計算機性能的重要指標,每種計算機都有自己的指令系統。MCS—51單片機的指令系統是一個具有255種代碼的集合,絕大多數指令包含兩個基本部分:操作碼和操作數。操作碼表明指令要執行的操作的性質;操作數說明參與操作的數據或數據所存放的地址。MCS—51指令系統中所有程序指令是以機器語言形式表示,可分為單字節、雙字節、三字節3種格式。用二進制編碼表示的機器語言由于閱讀困難,且難以記憶。因此在微機控制系統中采用匯編語言指令來編寫程序。本章介紹MCS—51指令系統就是以匯編語言來描述的。 一條匯編語言指令中最多包含4個區段,如下所示: 標號: 操作碼目的操作數,源源操作數;注釋 標號與操作碼之間“:”隔開; 操作碼與操作數之間用“空格”隔開; 目的操作數和源源操作數之間有“,”分隔; 操作數與注釋之間用“;”隔開。 標號是由用戶定義的符號組成,必須用英文大寫字母開始。標號可有可無,若一條指令中有標號,標號代表該指令所存放的第一個字節存儲單元的地址,故標號又稱為符號地址,在匯編時,把該地址賦值給標號。 操作碼是指令的功能部分,不能缺省。MCS—51指令系統中共有42種助記符,代表了33種不同的功能。例如MOV是數據傳送的助記符。 操作數是指令要操作的數據信息。根據指令的不同功能,操作數的個數有3、2、1或沒有操作數。例如MOV A,#20H,包含了兩個操作數A和#20H,它們之間用“,”隔開。注釋可有可無,加入注釋主要為了便于閱讀,程序設計者對指令或程序段作簡要的功能說明,在閱讀程序或調試程序時將會帶來很多方便。
上傳時間: 2013-11-04
上傳用戶:kr770906
離散傅里葉變換,(DFT)Direct Fouriet Transformer(PPT課件) 一、序列分類對一個序列長度未加以任何限制,則一個序列可分為: 無限長序列:n=-∞~∞或n=0~∞或n=-∞~ 0 有限長序列:0≤n≤N-1有限長序列在數字信號處理是很重要的一種序列。由于計算機容量的限制,只能對過程進行逐段分析。二、DFT引入由于有限長序列,引入DFT(離散付里葉變換)。DFT它是反映了“有限長”這一特點的一種有用工具。DFT變換除了作為有限長序列的一種付里葉表示,在理論上重要之外,而且由于存在著計算機DFT的有效快速算法--FFT,因而使離散付里葉變換(DFT)得以實現,它使DFT在各種數字信號處理的算法中起著核心的作用。三、本章主要討論離散付里葉變換的推導離散付里葉變換的有關性質離散付里葉變換逼近連續時間信號的問題第二節付里葉變換的幾種形式傅 里 葉 變 換 : 建 立 以 時 間 t 為 自 變 量 的 “ 信 號 ” 與 以 頻 率 f為 自 變 量 的 “ 頻 率 函 數 ”(頻譜) 之 間 的 某 種 變 換 關 系 . 所 以 “ 時 間 ” 或 “ 頻 率 ” 取 連 續 還 是 離 散 值 , 就 形 成 各 種 不 同 形 式 的 傅 里 葉 變 換 對 。, 在 深 入 討 論 離 散 傅 里 葉 變 換 D F T 之 前 , 先 概 述 四種 不 同 形式 的 傅 里 葉 變 換 對 . 一、四種不同傅里葉變換對傅 里 葉 級 數(FS):連 續 時 間 , 離 散 頻 率 的 傅 里 葉 變 換 。連 續 傅 里 葉 變 換(FT):連 續 時 間 , 連 續 頻 率 的 傅 里 葉 變 換 。序 列 的 傅 里 葉 變 換(DTFT):離 散 時 間 , 連 續 頻 率 的 傅 里 葉 變 換.離 散 傅 里 葉 變 換(DFT):離 散 時 間 , 離 散 頻 率 的 傅 里 葉 變 換1.傅 里 葉 級 數(FS)周期連續時間信號 非周期離散頻譜密度函數。 周期為Tp的周期性連續時間函數 x(t) 可展成傅里葉級數X(jkΩ0) ,是離散非周期性頻譜 , 表 示為:例子通過以下 變 換 對 可 以 看 出 時 域 的 連 續 函 數 造 成 頻 域 是 非 周 期 的 頻 譜 函 數 , 而 頻 域 的 離 散 頻 譜 就 與 時 域 的 周 期 時 間 函 數 對 應 . (頻域采樣,時域周期延 拓)2.連 續 傅 里 葉 變 換(FT)非周期連續時間信號通過連續付里葉變換(FT)得到非周期連續頻譜密度函數。
上傳時間: 2013-11-19
上傳用戶:fujiura
在確定采用CAN總線作為系統的通訊標準后,如何選擇合適的處理器芯片就將成為很重要的問題,是采用內部帶有CAN控制器的單片機,還是采用SJA1000等片外CAN控制器,采用的芯片是否能滿足系弘的實時性要求。
上傳時間: 2013-10-26
上傳用戶:xiaohanhaowei
掌握先進微處理器芯片結構、微型計算機實現技術、計算機主板構成、各種接口技術原理及其應用編程方法;掌握匯編語言程序的編寫方法,尤其掌握接口訪問的方法。了解微機技術新的發展趨勢,系統科學地獲得分析問題和解決問題的訓練;提高分析和設計接口的能力。不僅要學習微機各種接口電路的原理與作用,熟悉PC系列機接口電路,而且還要掌握常用接口的設計與分析方法,學會使用匯編語言和C語言對接口進行編程,并具有一定的動手實驗能力和接口應用程序的編寫能力,為微機的深入應用和嵌入式系統SOC設計等的學習與實踐打下良好基礎。同時有興趣的同學自學Windows 2000/XP驅動程序的編寫方法。一定要下載和打印或復印電子講義,課堂上注意聽講并及時記錄教師課堂上補充的內容,認真獨立完成作業,做好課程實驗和自修實驗、做好課前預習和課后復習。1)抓住IBM PC/XT機基本結構這條主線,分析其基本結構,掌握各接口電路及可編程接口芯片的應用。2)進一步擴展和延伸CPU—從8086~Core 2 Duo,從實模式~保護模式;匯編語言-CPU及接口直接控制,16位~32位匯編;總線—PCI,USB等; 中斷—從實模式下的中斷向量~保護模式下的中斷描述符;從傳統中斷~PCI中斷~串行中斷 芯片組—從中大規模集成電路(8237、8254、8255、8259等)~ 超大規模集成電路(82815EP、82801BA)。第1章—CPU與整機:CPU的信號與工作模式、PC結構第11章--軟件如何控制CPU和接口:指令系統和匯編編程(在教師講授重點的基礎上,通過預習、實驗與練習自學) 第2章--CPU如何與MEM或I/O設備通信:I/O接口與譯碼 第3章--總線如何工作:總線標準(PCI、USB) 第4章--I/O接口直接和MEM通信:DMA(8237,全自學) 第5章--I/O接口如何主動與CPU通信:中斷技術(8259) 第6章--I/O接口的定時與計數功能:(8254) 第7章--I/O接口的并行通信:8255與打印機接口標準 第8章--I/O接口的串行通信:串行通信協議與8250 第10章--I/O軟接口技術:保護模式存儲,WDM驅動程序編寫(全自學)
上傳時間: 2014-01-21
上傳用戶:徐孺
采用飛利浦公司的Mifare卡作IC卡,設計以射頻技術為核心,以單片機為控制器的IC公交自動收費系弘中的應用。
上傳時間: 2014-12-28
上傳用戶:lliuhhui
子程序庫的使用方法如下:1.將子程序庫全部內容鏈接在應用程序之后,統一編譯即可。優點是簡單方便,缺點是程序太長,大量無關子程序也包含在其中。 2.僅將子程序庫中的有關部分內容鏈接在應用程序之后,統一編譯即可。有些子程序需要調用一些低級子程序,這些低級子程序也應該包含在內。優點是程序緊湊,缺點是需要對子程序庫進行仔細刪節。MCS-51 浮點運算子程序庫及其使用說明本浮點子程序庫有三個不同層次的版本,以便適應不同的應用場合: 1.小型庫(FQ51A.ASM):只包含浮點加、減、乘、除子程序。 2.中型庫(FQ51B.ASM):在小型庫的基礎上再增加絕對值、倒數、比較、平方、開平方、 數制轉換等子程序。 3.大型庫(FQ51.ASM):包含本說明書中的全部子程序。 為便于讀者使用本程序庫,先將有關約定說明如下: 1.雙字節定點操作數:用[R0]或[R1]來表示存放在由R0或R1指示的連續單元中的數 據,地址小的單元存放高字節。如果[R0]=1234H,若(R0)=30H,則(30H)=12H,(31H)=34H。 2.二進制浮點操作數:用三個字節表示,第一個字節的最高位為數符,其余七位為 階碼(補碼形式),第二字節為尾數的高字節,第三字節為尾數的低字節,尾數用雙字節 純小數(原碼)來表示。
上傳時間: 2013-10-15
上傳用戶:wmwai1314
單片計算機(簡稱單片機)在工作時,因某種原因造成突然掉電,將會丟失數據存儲器(RAM)里的數據,沖掉前期工作的所有信息。為了在突然掉電時能夠保持數據存儲器(RAM)的數據,保證單片機系統穩定、可靠地工作,數據信息處理的安全,雖然單片機主電源里有大容量濾波電容器,當掉電時,單片機靠貯存在電容器里的能量,一般能維持工作半個周期(10ms)左右。為此,要求一旦市電發生瞬間斷電時,必須要有一種電源能在小于10ms 的時間內重新送電,確保單片機系統正常運行,這一任務就由UPS 來完成。電源系統瞬時掉電所產生的干擾會造成單片機的計算錯誤和數據丟失,有了UPS 可以使單片機系連續可靠地工作。單片機系統除使用UPS 外,下面介紹一種行之有效的后備電源。通過理論和實踐證明,當供電電壓由5V 下降到4 5V時單片機通常均能正常運行,但電壓再往下跌落時,單片機就不能繼續正常運行。在一般情況下CPU、CMOS、TTL 電路將因電源電壓跌落而首先不能正常運行,RAM在電壓跌落到比較低時尚能工作。因為單片機使用的主電源均有大容量電容,所以在主電源失電時,如果按放電曲線在下跌到單片機能正常運行工作的最低電壓之前,把后備電源接上便能保持單片機正常運行。
上傳時間: 2013-11-02
上傳用戶:niumeng16
ICCAVR軟件中文使用說明書:一ImageCraft 的ICC AVR 編譯器安裝1 運行光盤上的SETUP.EXE 程序進行安裝方法一a 打開我的電腦b 打開光盤驅動器所對應的盤符c 雙擊光盤中文件SETUP.EXE 的圖標d 按照屏幕提示選定一個安裝路徑后進行安裝方法二a 在開始菜單中選擇運行項目b 在運行對話框中填入drive:\setup.exe注意drive 對應你的機器中的光盤驅動器盤符c 按確定鍵開始安裝d 其余同方法一注意按上述方法進行安裝后得到的是一個只可以使用30 天的未注冊版對正式版用戶還要進行第二步的注冊才可得到一個無時間限制的正式版ICC AVR 正式版分標準版和專業版在標準版中有一些功能限制如代碼的壓縮工程和文件的配置檢查在標準版中不可以使用
上傳時間: 2013-10-23
上傳用戶:hwl453472107