Keil C51使用詳解Keil C51 是美國Keil Software 公司出品的51 系列兼容單片機C 語言軟件開發系統,與匯編相比,C 語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用C 來開發,體會更加深刻。Keil C51 軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。下面詳細介紹 Keil C51 開發系統各部分功能和使用。第二節 Keil C51 單片機軟件開發系統的整體結構C51 工具包的整體結構,如圖(1)所示,其中uVision 與Ishell 分別是C51 forWindows 和for Dos 的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE 本身或其它編輯器編輯C 或匯編源文件。然后分別由C51 及A51 編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51 創建生成庫文件,也可以與庫文件一起經L51 連接定位生成絕對目標文件(.ABS)。ABS 文件由OH51 轉換成標準的Hex 文件,以供調試器dScope51 或tScope51 使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM 中。圖(1) C51 工具包整體結構圖第三節 Keil C51 工具包的安裝81. C51 for Dos在 Windows 下直接運行軟件包中DOS\C51DOS.exe 然后選擇安裝目錄即可。完畢后欲使系統正常工作須進行以下操作(設C:\C51 為安裝目錄):修改 Autoexec.bat,加入path=C:\C51\BinSet C51LIB=C:\C51\LIBSet C51INC=C:\C51\INC然后運行Autoexec.bat2. C51 for Windows 的安裝及注意事項:在 Windows 下運行軟件包中WIN\Setup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設置最簡單(設安裝于C:\C51 目錄下)。然后將軟件包中crack 目錄中的文件拷入C:\C51\Bin 目錄下。第四節 Keil C51 工具包各部分功能及使用簡介1. C51 與A51(1) C51C51 是C 語言編譯器,其使用方法為:C51 sourcefile[編譯控制指令]或者 C51 @ commandfile其中 sourcefile 為C 源文件(.C)。大量的編譯控制指令完成C51 編譯器的全部功能。包控C51 輸出文件C.LST,.OBJ,.I 和.SRC 文件的控制。源文件(.C)的控制等,詳見第五部分的具體介紹。而 Commandfile 為一個連接控制文件其內容包括:.C 源文件及各編譯控制指令,它沒有固定的名字,開發人員可根據自己的習慣指定,它適于用控制指令較多的場合。(2) A51A51 是匯編語言編譯器,使用方法為:9A51 sourcefile[編譯控制指令]或 A51 @ commandfile其中sourcefile 為匯編源文件(.asm或.a51),而編譯控制指令的使用與其它匯編如ASM語言類似,可參考其他匯編語言材料。Commandfile 同C51 中的Commandfile 類似,它使A51 使用和修改方便。2. L51 和BL51(1) L51L51 是Keil C51 軟件包提供的連接/定位器,其功能是將編譯生成的OBJ 文件與庫文件連接定位生成絕對目標文件(.ABS),其使用方法為:L51 目標文件列表[庫文件列表] [to outputfile] [連接控制指令]或 L51 @Commandfile源程序的多個模塊分別經 C51 與A51 編譯后生成多個OBJ 文件,連接時,這些文件全列于目標文件列表中,作為輸入文件,如果還需與庫文件(.LiB)相連接,則庫文件也必須列在其后。outputfile 為輸文件名,缺少時為第一模塊名,后綴為.ABS。連接控制指令提供了連接定位時的所有控制功能。Commandfile 為連接控制文件,其具體內容是包括了目標文件列表,庫文件列表及輸出文件、連接控制命令,以取代第一種繁瑣的格式,由于目標模塊庫文件大多不止1 個,因而第2 種方法較多見,這個文件名字也可由使用者隨意指定。(2) Bl51BL51 也是C51 軟件包的連接/定位器,其具有L51 的所有功能,此外它還具有以下3 點特別之處:a. 可以連接定位大于64kBytes 的程序。b. 具有代碼域及域切換功能(CodeBanking & Bank Switching)c. 可用于RTX51 操作系統RTX51 是一個實時多任務操作系統,它改變了傳統的編程模式,甚至不必用main( )函數,單片機系統軟件向RTOS 發展是一種趨勢,這種趨勢對于186 和38610及68K 系列CPU 更為明顯和必須,對8051 因CPU 較為簡單,程序結構等都不太復雜,RTX51 作用顯得不太突出,其專業版軟件PK51 軟件包甚至不包括RTX51Full,而只有一個RTX51TINY 版本的RTOS。RTX51 TINY 適用于無外部RAM 的單片機系統,因而可用面很窄,在本文中不作介紹。Bank switching 技術因使用很少也不作介紹。3. DScope51,Tscope51 及Monitor51(1) dScope51dScope51 是一個源級調試器和模擬器,它可以調試由C51 編譯器、A51 匯編器、PL/M-51 編譯器及ASM-51 匯編器產生的程序。它不需目標板(for windows 也可通過mon51 接目標板),只能進行軟件模擬,但其功能強大,可模擬CPU 及其外圍器件,如內部串口,外部I/O 及定時器等,能對嵌入式軟件功能進行有效測試。
上傳時間: 2013-11-01
上傳用戶:zhouxuepeng1
Keil C51使用詳解: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
上傳時間: 2014-04-05
上傳用戶:xaijhqx
三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
上傳時間: 2013-11-12
上傳用戶:a673761058
PICC庫函數詳解
上傳時間: 2013-11-16
上傳用戶:gyq
信號與系統(奧本海默)中文習題詳解
上傳時間: 2014-12-28
上傳用戶:a67818601
DSP2812寄存器詳解
上傳時間: 2013-11-08
上傳用戶:songyue1991
數字信號處理學習指導與習題精解
標簽: 數字信號處理
上傳時間: 2014-12-28
上傳用戶:225588
收音機工作原理、安裝、焊接圖片詳解
上傳時間: 2013-11-18
上傳用戶:jdm439922924
Verilog_HDL的基本語法詳解(夏宇聞版):Verilog HDL是一種用于數字邏輯電路設計的語言。用Verilog HDL描述的電路設計就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語言也是一種結構描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設計電路的Verilog HDL模型。Verilog模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應的模型類型共有以下五種: 系統級(system):用高級語言結構實現設計模塊的外部性能的模型。 算法級(algorithm):用高級語言結構實現設計算法的模型。 RTL級(Register Transfer Level):描述數據在寄存器之間流動和如何處理這些數據的模型。 門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。 開關級(switch-level):描述器件中三極管和儲存節點以及它們之間連接的模型。 一個復雜電路系統的完整Verilog HDL模型是由若干個Verilog HDL模塊構成的,每一個模塊又可以由若干個子模塊構成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設計的模塊交互的現存電路或激勵信號源。利用Verilog HDL語言結構所提供的這種功能就可以構造一個模塊間的清晰層次結構來描述極其復雜的大型設計,并對所作設計的邏輯電路進行嚴格的驗證。 Verilog HDL行為描述語言作為一種結構化和過程性的語言,其語法結構非常適合于算法級和RTL級的模型設計。這種行為描述語言具有以下功能: · 可描述順序執行或并行執行的程序結構。 · 用延遲表達式或事件表達式來明確地控制過程的啟動時間。 · 通過命名的事件來觸發其它過程里的激活行為或停止行為。 · 提供了條件、if-else、case、循環程序結構。 · 提供了可帶參數且非零延續時間的任務(task)程序結構。 · 提供了可定義新的操作符的函數結構(function)。 · 提供了用于建立表達式的算術運算符、邏輯運算符、位運算符。 · Verilog HDL語言作為一種結構化的語言也非常適合于門級和開關級的模型設計。因其結構化的特點又使它具有以下功能: - 提供了完整的一套組合型原語(primitive); - 提供了雙向通路和電阻器件的原語; - 可建立MOS器件的電荷分享和電荷衰減動態模型。 Verilog HDL的構造性語句可以精確地建立信號的模型。這是因為在Verilog HDL中,提供了延遲和輸出強度的原語來建立精確程度很高的信號模型。信號值可以有不同的的強度,可以通過設定寬范圍的模糊值來降低不確定條件的影響。 Verilog HDL作為一種高級的硬件描述編程語言,有著類似C語言的風格。其中有許多語句如:if語句、case語句等和C語言中的對應語句十分相似。如果讀者已經掌握C語言編程的基礎,那么學習Verilog HDL并不困難,我們只要對Verilog HDL某些語句的特殊方面著重理解,并加強上機練習就能很好地掌握它,利用它的強大功能來設計復雜的數字邏輯電路。下面我們將對Verilog HDL中的基本語法逐一加以介紹。
標簽: Verilog_HDL
上傳時間: 2013-11-23
上傳用戶:青春給了作業95
ISE新建工程及使用IP核步驟詳解
上傳時間: 2013-11-18
上傳用戶:peterli123456