Keil 軟件實例教程 1. 單片機開發中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變為機器碼,用于MCS-51 單片機的匯編軟件有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷發展,Keil 軟件是目前最流行開發MCS-51 系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil 即可看出。Keil 提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部份組合在一起。運行Keil 軟件需要Pentium 或以上的CPU,16MB或更多RAM、20M 以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統。掌握這一軟件的使用對于使用51 系列單片機的愛好者來說是十分必要的,如果你使用C 語言編程,那么Keil 幾乎就是你的不二之選(目前在國內你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C 語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。我們將通過一些實例來學習Keil 軟件的使用,在這一部份我們將學習如何輸入源程序,建立工程、對工程進行詳細的設置,以及如何將源程序變為目標代碼。圖1 所示電路圖使用89C51 單片機作為主芯片,這種單片機性屬于MCS-51 系列,其內部有4K 的FLASH ROM,可以反復擦寫,非常適于做實驗。89C51 的P1 引腳上接8 個發光二極管,P3.2~P3.4 引腳上接4 個按鈕開關,我們的第一個任務是讓接在P1 引腳上的發光二極管依次循環點亮。 一、Keil 工程的建立首先啟動Keil 軟件的集成開發環境,這里假設讀者已正確安裝了該軟件,可以從桌面上直接雙擊uVision 的圖標以啟動該軟件。UVison啟動后,程序窗口的左邊有一個工程管理窗口,該窗口有3 個標簽,分別是Files、Regs、和Books,這三個標簽頁分別顯示當前項目的文件結構、CPU 的寄存器及部份特殊功能寄存器的值(調試時才出現)和所選CPU 的附加說明文件,如果是第一次啟動Keil,那么這三個標簽頁全是空的。
上傳時間: 2013-11-25
上傳用戶:hanbeidang
Keil C51開發系統基本知識3 1. 1. 專用寄存器include文件例如8031、8051均為REG51.h其中包括了所有8051的SFR及其位定義,一般系統都必須包括本文件。2. 2. 絕對地址include文件absacc.h該文件中實際只定義了幾個宏,以確定各存儲空間的絕對地址。3. 3. 動態內存分配函數,位于stdlib.h中 4. 4. 緩沖區處理函數位于“string.h”中其中包括拷貝比較移動等函數如:memccpy memchr memcmp memcpy memmove memset這樣很方便地對緩沖區進行處理。5. 5. 輸入輸出流函數,位于“stdio.h”中流函數通8051的串口或用戶定義的I/O口讀寫數據,缺省為8051串口,如要修改,比如改為LCD顯示,可修改lib目錄中的getkey.c及putchar.c源文件,然后在庫中替換它們即可。3. 第三節 Keil C51庫函數原型列表
上傳時間: 2013-11-06
上傳用戶:smallfish
ARM指令集(2) 1.跳轉指令 在ARM中有兩種方式可以實現程序的跳轉:一種是刀‘轉指令;另一種是直接向PC寄存器(R15)中寫入目標地址值。 通過直接向PC寄存器中寫入目標地址值可以實現在46B地址空間中任意跳轉,這種跳轉指令又稱為長跳轉。如果在長跳轉指令之前使用MOV LR,PC等指令,則可以保存將來返回的地址值,這樣就實現了在46B地址空間中的子程序調用。 在ARM版本5及以上的體系中,實現了ARM指令集和Thumb指令集的混合使用。指令使用目標地址值的bit[0]來確定目標程序的類型。bit[0]的值為1時,目標程序為Thumb指令;bit[0]值為0時,目標程序為ARM指令。 在ARM版本5以前的體系中,傳送到PC寄存器中的目標地址值的低兩位bits[1∶0]被忽略,跳轉指令只能在ARM指令集中執行,即程序不能從ARM狀態切換到Thumb狀態。非T系列ARM版本5體系不含Thumb指令,當程序試圖切換到Thumb狀態時,將產生未定義指令異常中斷。 ARM跳轉指令可以從當前指令向前或向后的32MB地址空間跳轉。這類跳轉指令有以下4種。
上傳時間: 2013-11-20
上傳用戶:妄想演繹師
AVR 單片機與GCC編程 目錄第一章 AVR 單片機開發概述1.1 一個簡簡單的例子1.2 用MAKEFILE 管理項目1.3 開發環境的配置第二章 存儲器操作2.1 AVR 單片機存儲器組織結構2.2 I/O 寄存器操作2.3 SRAM 內變量的使用2.4 在程序中訪問FLASH 程序存儲器2.5 EEPROM 數據存儲器操作2.6 avr-gcc 段結構與再定位第三章 功能模塊編程示例3.1 中斷服務程序3.2 定時器/計數器應用3.3 看門狗應用3.4 UART 應用3.5 PWM 功能編程3.6 模擬比較器3.7 A/D 轉換模塊編程第四章 使用C 語言標準I/O 流調試程序4.1 avr-libc 標準I/O 流描述4.2 利用標準I/0 流調試程序第五章 AT89S52 下載編程器的制作5.1 LuckyProg S52 概述5.2 AT89S52 ISP 功能簡介5.3 程序設計第六章 硬件TWI 端口編程6.1 TWI 模塊概述6.2 主控模式操作實時時鐘DS13076.3 兩個Mega8 間的TWI 通信第七章 BootLoader 功能應用7.1 BootLoader 功能介紹7.2 avr-libc 對BootLoader 的支持7.3 BootLoader 應用實例 第八章 匯編語言支持8.1 C 代碼中內聯匯編程序8.2 獨立的匯編語言支持8.3 C 與匯編混合編程第九章 C++語言支持結束語附錄 1 avr-gcc 選項附錄 2 ihex 格式描述
上傳時間: 2013-10-26
上傳用戶:wangyi39
默認狀態: –在進入中斷服務程序時,I位自動置1,禁止其他可屏蔽中斷 –即使有優先級更高的中斷請求,也必須等當前中斷服務程序執行完以后才能響應 –優先級的作用只有在多個中斷源同時請求中斷時在能體現 –無法實現中斷嵌套 如果在進入中斷服務程序時,手動對I位清零: –任何其他可屏蔽中斷都可以被響應,無論其優先級有多高 –中斷響應由時間控制,可以實現中斷嵌套 –對中斷執行無法預測 HPRIO寄存器 –寫入HPRIO中的中斷向量的后八位,可以改變該中斷的優先級 –同樣,優先級的作用只有在多個中斷源同時請求中斷時在能體現
上傳時間: 2014-12-28
上傳用戶:xauthu
P89V51RD2看門狗的啟動和關閉通過WDTC寄存器的SWDT位實現,該位被置位啟動看門狗,該位被清零時關閉看門狗。要使能WDT復位,用戶必須將WDTC寄存器的WDRE位置1。當看門狗使能且發生溢出時,它將會在RST腳產生一個復位脈沖執行復位。為避免看門狗溢出產生復位,用戶需要定期執行“喂狗”操作。執行“喂狗”操作時,在向WDTD寫入重裝值后,必須立即執行看門狗定時器刷新(置位WDT)才能將數據成功寫入WDTD寄存器中,否則數據不能被寫入。
上傳時間: 2013-11-16
上傳用戶:Pzj
PCA9544A 是NXP 公司生產的I2C 總線多路復用器,通過該器件可以將一路I2C 總線擴展為4 路I2C 總線。將1 路上行SDA/SCL 通道擴展為4 路下行通道。通過對內部可編程寄存器進行配置,在同一時間可以任意選擇一對SCx/SDx 線。器件擁有四路輸入中斷,INT0到INT3,分別對應著四路下行通道。該器件還有一個輸出中斷,輸出中斷的狀態由四個輸入中斷通過“與”邏輯控制。
上傳時間: 2013-11-17
上傳用戶:woshinimiaoye
PCA9547 是一款通過I2C 總線控制的八進制雙向轉換開關。它的每對SCL/ SDA 上行通道可以擴展為八對下行通道。但在某一時刻,由可編程控制寄存器中的內容來決定只有一路SCx/SDx 被選擇。由多路復用器的通門,VDD 管腳可以用來限制PCA9547 通過的最高電壓,這使得每一對SCL/SDA 可以使用不同的總線電壓,因此1.8V、2.5V 或3.3V 的器件都可以在無其它保護的情況下與5V 的器件進行通信。它的外部上拉電阻將總線拉高至每個通道所要求的電壓電平,所有I/O 管腳都可以承受5V 的電壓。設備上電時由通道0 連接,并且允許主機和下行設備進行直接的通信
上傳時間: 2014-12-28
上傳用戶:sunshine1402
PCA9548 是NXP 公司生產的I2C 總線擴展器件,通過它可以將1 路I2C 總線擴展為8路。在對內部控制寄存器進行相應配置后,可同時選擇1 路或多路下行I2C 總線與上行I2C總線連接。通過外部的硬件復位可使器件恢復到默認狀態——斷開上下行總線之間的連接,提高系統的可靠性。經過對器件工作電壓的選擇,可使1.8V、2.5V、3.3V 與5V 總線之間相互通信。每個I2C 接口和中斷輸入輸出口均為開漏,所有I/O 口都可承受5V 的輸入電壓。工業級的溫度范圍,小封裝:SO24、TSSOP24、HVQFN24。
上傳時間: 2013-11-14
上傳用戶:wawjj
PCA9548A 是一款通過I2C 總線控制的八進制雙向轉換開關。它的每對SCL/ SDA 上行通道可以擴展為八對下行通道,可以通過可編程控制寄存器的內容來選擇任意單一的SCx/SDx 通道或者組合通道。由多路復用器的通門,VDD 管腳可以用來限制PCA9547 通過的最高電壓,這使得每一對SCL/SDA 都可以使用不同的總線電壓,因此1.8V、2.5V 或3.3V的器件可以在無其它保護的情況下與5V 的器件進行通信。它的外部上拉電阻將總線拉高至每個通道所要求的電壓電平,所有I/O 管腳都可以承受5V 電壓。
上傳時間: 2013-10-13
上傳用戶:hanli8870