元件符號編譯器
㈠ 匯編語言中cs.ds.es.ss怎麼用
想知道他們怎麼用,就必須了解他們的用途,他們和其他寄存器如何合作,寄存器定址和存儲器定址如何完成?單說這幾個段寄存器,不涉及其他寄存器,是不能真正了解掌握他們的。學習需要循序漸進,「莫在浮沙築高台」
---------------
寄存器是中央處理器內的組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及邏輯部件中,包含的寄存器有累加器(ACC)。
寄存器是內存階層中的最頂端,也是系統獲得操作資料的最快速途徑。寄存器通常都是以他們可以保存的位元數量來估量,舉例來說,一個「8位元寄存器」或「32位元寄存器」。寄存器現在都以寄存器檔案的方式來實作,但是他們也可能使用單獨的正反器、高速的核心內存、薄膜內存以及在數種機器上的其他方式來實作出來。
寄存器通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組。更適當的是稱他們為「架構寄存器」。
例如,x86指令及定義八個32位元寄存器的集合,但一個實作x86指令集的CPU可以包含比八個更多的寄存器。
寄存器是CPU內部的元件,寄存器擁有非常高的讀寫速度,所以在寄存器之間的數據傳送非常快。
[編輯本段]寄存器用途
1.可將寄存器內的數據執行算術及邏輯運算;
2.存於寄存器內的地址可用來指向內存的某個位置,即定址;
3.可以用來讀寫數據到電腦的周邊設備。
[編輯本段]數據寄存器
8086有14個16位寄存器,這14個寄存器按其用途可分為(1)通用寄存器、(2)指令指針、(3)標志寄存器和(4)段寄存器等4類。
(1)通用寄存器有8個,又可以分成2組,一組是數據寄存器(4個),另一組是指針寄存器及變址寄存器(4個).
數據寄存器分為:
AH&AL=AX(accumulator):累加寄存器,常用於運算;在乘除等指令中指定用來存放操作數,另外,所有的I/O指令都使用這一寄存器與外界設備傳送數據.
BH&BL=BX(base):基址寄存器,常用於地址索引;
CH&CL=CX(count):計數寄存器,常用於計數;常用於保存計算值,如在移位指令,循環(loop)和串處理指令中用作隱含的計數器.
DH&DL=DX(data):數據寄存器,常用於數據傳遞。
他們的特點是,這4個16位的寄存器可以分為高8位:AH,BH,CH,DH.以及低八位:AL,BL,CL,DL。這2組8位寄存器可以分別定址,並單獨使用。
另一組是指針寄存器和變址寄存器,包括:
SP(StackPointer):堆棧指針,與SS配合使用,可指向目前的堆棧位置;
BP(BasePointer):基址指針寄存器,可用作SS的一個相對基址位置;
SI(SourceIndex):源變址寄存器可用來存放相對於DS段之源變址指針;
DI(DestinationIndex):目的變址寄存器,可用來存放相對於ES段之目的變址指針。
這4個16位寄存器只能按16位進行存取操作,主要用來形成操作數的地址,用於堆棧操作和變址運算中計算操作數的有效地址。
(2)指令指針IP(InstructionPointer)
指令指針IP是一個16位專用寄存器,它指向當前需要取出的指令位元組,當BIU從內存中取出一個指令位元組後,IP就自動加1,指向下一個指令位元組。注意,IP指向的是指令地址的段內地址偏移量,又稱偏移地址(OffsetAddress)或有效地址(EA,EffectiveAddress)。
(3)標志寄存器FR(FlagRegister)
8086有一個18位的標志寄存器FR,在FR中有意義的有9位,其中6位是狀態位,3位是控制位。
OF:溢出標志位OF用於反映有符號數加減運算所得結果是否溢出。如果運算結果超過當前運算位數所能表示的范圍,則稱為溢出,OF的值被置為1,否則,OF的值被清為0。
DF:方向標志DF位用來決定在串操作指令執行時有關指針寄存器發生調整的方向。
IF:中斷允許標志IF位用來決定CPU是否響應CPU外部的可屏蔽中斷發出的中斷請求。但不管該標志為何值,CPU都必須響應CPU外部的不可屏蔽中斷所發出的中斷請求,以及CPU內部產生的中斷請求。具體規定如下:
(1)、當IF=1時,CPU可以響應CPU外部的可屏蔽中斷發出的中斷請求;
(2)、當IF=0時,CPU不響應CPU外部的可屏蔽中斷發出的中斷請求。
TF:跟蹤標志TF。該標志可用於程序調試。TF標志沒有專門的指令來設置或清楚。
(1)如果TF=1,則CPU處於單步執行指令的工作方式,此時每執行完一條指令,就顯示CPU內各個寄存器的當前值及CPU將要執行的下一條指令。
(2)如果TF=0,則處於連續工作模式。
SF:符號標志SF用來反映運算結果的符號位,它與運算結果的最高位相同。在微機系統中,有符號數採用補碼表示法,所以,SF也就反映運算結果的正負號。運算結果為正數時,SF的值為0,否則其值為1。
ZF:零標志ZF用來反映運算結果是否為0。如果運算結果為0,則其值為1,否則其值為0。在判斷運算結果是否為0時,可使用此標志位。
AF:下列情況下,輔助進位標志AF的值被置為1,否則其值為0:
(1)、在字操作時,發生低位元組向高位元組進位或借位時;
(2)、在位元組操作時,發生低4位向高4位進位或借位時。
PF:奇偶標志PF用於反映運算結果中「1」的個數的奇偶性。如果「1」的個數為偶數,則PF的值為1,否則其值為0。
CF:進位標志CF主要用來反映運算是否產生進位或借位。如果運算結果的最高位產生了一個進位或借位,那麼,其值為1,否則其值為0。)
4)段寄存器(SegmentRegister)
為了運用所有的內存空間,8086設定了四個段寄存器,專門用來保存段地址:
CS(CodeSegment):代碼段寄存器;
DS(DataSegment):數據段寄存器;
SS(StackSegment):堆棧段寄存器;
ES(ExtraSegment):附加段寄存器。
當一個程序要執行時,就要決定程序代碼、數據和堆棧各要用到內存的哪些位置,通過設定段寄存器CS,DS,SS來指向這些起始位置。通常是將DS固定,而根據需要修改CS。所以,程序可以在可定址空間小於64K的情況下被寫成任意大小。所以,程序和其數據組合起來的大小,限制在DS所指的64K內,這就是COM文件不得大於64K的原因。8086以內存做為戰場,用寄存器做為軍事基地,以加速工作。
以上是8086寄存器的整體概況,自80386開始,PC進入32bit時代,其定址方式,寄存器大小,功能等都發生了變化。
=============================以下是80386的寄存器的一些資料======================================
寄存器都是32-bits寬。
A、通用寄存器
下面介紹通用寄存器及其習慣用法。顧名思義,通用寄存器是那些你可以根據自己的意願使用的寄存器,修改他們的值通常不會對計算機的運行造成很大的影響。通用寄存器最多的用途是計算。
EAX:通用寄存器。相對其他寄存器,在進行運算方面比較常用。在保護模式中,也可以作為內存偏移指針(此時,DS作為段寄存器或選擇器)
EBX:通用寄存器。通常作為內存偏移指針使用(相對於EAX、ECX、EDX),DS是默認的段寄存器或選擇器。在保護模式中,同樣可以起這個作用。
ECX:通用寄存器。通常用於特定指令的計數。在保護模式中,也可以作為內存偏移指針(此時,DS作為寄存器或段選擇器)。
EDX:通用寄存器。在某些運算中作為EAX的溢出寄存器(例如乘、除)。在保護模式中,也可以作為內存偏移指針(此時,DS作為段寄存器或選擇器)。
同AX分為AH&AL一樣,上述寄存器包括對應的16-bit分組和8-bit分組。
B、用作內存指針的特殊寄存器
ESI:通常在內存操作指令中作為「源地址指針」使用。當然,ESI可以被裝入任意的數值,但通常沒有人把它當作通用寄存器來用。DS是默認段寄存器或選擇器。
EDI:通常在內存操作指令中作為「目的地址指針」使用。當然,EDI也可以被裝入任意的數值,但通常沒有人把它當作通用寄存器來用。DS是默認段寄存器或選擇器。
EBP:這也是一個作為指針的寄存器。通常,它被高級語言編譯器用以建造『堆棧幀'來保存函數或過程的局部變數,不過,還是那句話,你可以在其中保存你希望的任何數據。SS是它的默認段寄存器或選擇器。
注意,這三個寄存器沒有對應的8-bit分組。換言之,你可以通過SI、DI、BP作為別名訪問他們的低16位,卻沒有辦法直接訪問他們的低8位。
C、段選擇器:
實模式下的段寄存器到保護模式下搖身一變就成了選擇器。不同的是,實模式下的「段寄存器」是16-bit的,而保護模式下的選擇器是32-bit的。
CS代碼段,或代碼選擇器。同IP寄存器(稍後介紹)一同指向當前正在執行的那個地址。處理器執行時從這個寄存器指向的段(實模式)或內存(保護模式)中獲取指令。除了跳轉或其他分支指令之外,你無法修改這個寄存器的內容。
DS數據段,或數據選擇器。這個寄存器的低16bit連同ESI一同指向的指令將要處理的內存。同時,所有的內存操作指令默認情況下都用它指定操作段(實模式)或內存(作為選擇器,在保護模式。這個寄存器可以被裝入任意數值,然而在這么做的時候需要小心一些。方法是,首先把數據送給AX,然後再把它從AX傳送給DS(當然,也可以通過堆棧來做).
ES附加段,或附加選擇器。這個寄存器的低16bit連同EDI一同指向的指令將要處理的內存。同樣的,這個寄存器可以被裝入任意數值,方法和DS類似。
FSF段或F選擇器(推測F可能是Free?)。可以用這個寄存器作為默認段寄存器或選擇器的一個替代品。它可以被裝入任何數值,方法和DS類似。
GSG段或G選擇器(G的意義和F一樣,沒有在Intel的文檔中解釋)。它和FS幾乎完全一樣。
SS堆棧段或堆棧選擇器。這個寄存器的低16bit連同ESP一同指向下一次堆棧操作(push和pop)所要使用的堆棧地址。這個寄存器也可以被裝入任意數值,你可以通過入棧和出棧操作來給他賦值,不過由於堆棧對於很多操作有很重要的意義,因此,不正確的修改有可能造成對堆棧的破壞。
*注意一定不要在初學匯編的階段把這些寄存器弄混。他們非常重要,而一旦你掌握了他們,你就可以對他們做任意的操作了。段寄存器,或選擇器,在沒有指定的情況下都是使用默認的那個。這句話在現在看來可能有點稀里糊塗,不過你很快就會在後面知道如何去做。
指令指針寄存器:
EIP這個寄存器非常的重要。這是一個32位寬的寄存器,同CS一同指向即將執行的那條指令的地址。不能夠直接修改這個寄存器的值,修改它的唯一方法是跳轉或分支指令。(CS是默認的段或選擇器)
上面是最基本的寄存器。下面是一些其他的寄存器,你甚至可能沒有聽說過它們。(都是32位寬):
CR0,CR2,CR3(控制寄存器)。舉一個例子,CR0的作用是切換實模式和保護模式。
還有其他一些寄存器,D0,D1,D2,D3,D6和D7(調試寄存器)。他們可以作為調試器的硬體支持來設置條件斷點。
TR3,TR4,TR5,TR6和TR?寄存器(測試寄存器)用於某些條件測試。
㈡ VHDL 元件例化語句的問題,
例化的寫法是:
hf_add_gen Component half_adder
Port MAP(a =>a
b =>b
s =>s
co =>co
);
這個寫法的意思就是將全加器的埠信號(符號=>後面的那幾個)映射到半加器的埠上(符號=>前面的那幾個)
在一個工程中自己寫的代碼都包含在work庫中,也就是說work庫中只包括在這個工程中寫的幾個Entity。 除了work庫以外還有很多標准庫比如ieee庫,FPGA開發商寫的庫比如altera公司的lpm庫和altra_mf庫以及xilinx公司提供的標准器件庫。還有就是自己或者其他人寫的一些庫文件。標准庫和開發商提供的庫在文件頭直接聲明後就可以調用了。 自己寫的庫需要在編譯器里設置好庫文件的路徑,然後在像標准庫一樣調用就可以。
㈢ 求quartus2的詳細使用方法
Quartus II 的使用 2
1 工程建立 2
2 原理圖的輸入 5
3 文本編輯 (verilog) 15
4 波形模擬 16
Quartus II 的使用
在這里,首先用最簡單的實例向讀者展示使用Quartus II軟體的全過程。進入WINDOWS XP後,雙擊Quartus II圖標,屏幕如圖1.1所示。
圖 1.1 Quartus II 管理器
1.1 工程建立
使用 New Project Wizard,可以為工程指定工作目錄、分配工程名稱以及指定最高層設計實體的名稱。 還可以指定要在工程中使用的設計文件、其它源文件、用戶庫和 EDA 工具,以及目標器件系列和器件(也可以讓Quartus II 軟體自動選擇器件)。
建立工程的步驟如下:
(1) 選擇File菜單下New Project Wizard ,如圖1.2所示。
圖 1.2 建立項目的屏幕
(2) 輸入工作目錄和項目名稱,如圖1.3所示。可以直接選擇Finish,以下的設置過程可以在設計過程中完成。
圖 1.3 項目目錄和名稱
(3) 加入已有的設計文件到項目,可以直接選擇Next,設計文件可以在設計過程中加入,如圖1.4所示。
圖 1.4 加入設計文件
(4) 選擇設計器件,如圖1.5所示。
圖 1.5 選擇器件
(5) 選擇第三方EDA綜合、模擬和時序分析工具,如圖1.6所示。
圖 1.6 選擇EDA 工具
(6) 建立項目完成,顯示項目概要,如圖1.7所示。
圖 1.7 項目概要
1.2 原理圖的輸入
原理圖輸入的操作步驟如下:
(1) 選擇File 菜單下 New ,新建圖表/原理圖文件,如圖1.8
所示。
圖 1.8 新建原理圖文件
(2) 在圖1.9的空白處雙擊,屏幕如圖1.10所示:
(3) 在圖1.10的Symbol Name 輸入編輯框中鍵入dff後,單擊
ok按鈕。此時可看到游標上粘著被選的符號,將其移到合適的位置(參考圖 1.11)單擊滑鼠左鍵,使其固定;
(4) 重復(2)、(3)步驟,給圖中放一個input、not、output
符號,如圖1.11所示;在圖1.11中,將游標移到右側input右側待連線處單擊滑鼠左鍵後,再移動到D觸發器的左側單擊滑鼠左鍵,即可看到在input和D觸發器之間有一條線生成;
圖1.9 空白的圖形編輯器
圖1.10 選擇元件符號的屏幕
圖1.11 放置所有元件符號的屏幕
(5) 重復(4)的方法將DFF和output連起來,完成所有的連
線電路如圖1.12所示;
(6) 在圖1.12中,雙擊input_name使其襯低變黑後,再鍵入
clk,及命名該輸入信號為clk,用相同的方法將輸出信號定義成Q;如圖1.13所示。
(7) 在圖1.13中單擊保存按鈕 ,以默認的try1 文件名保存,
文件後綴為bdf。
圖1.12 完成連線後的屏幕
圖1.13 完成全部連接線的屏幕
(8) 在圖1.8中,單擊編譯器快捷方式按鈕 ,完成編譯後,彈
出菜單報告錯誤和警告數目,並生成編譯報告如圖1.14所示;
圖1.14 完成編譯的屏幕
(9) 若需指定器件,選擇Assignments菜單下Device選項,屏
幕如圖1.15所示;
圖1.15 器件設置
(10) 完成如圖1.15所示的選擇後,單擊OK按鈕回到工作
環境;
(11) 根據硬體介面設計,對晶元管腳進行綁定。選擇
Assignments菜單下Pins選項;
(12) 雙擊對應管腳後Location空白框,出現下拉菜單中選
擇要綁定的管腳,如圖1.16所示;
圖1.16 管腳指定
(13) 在圖1.16中完成所有管腳的分配,並把沒有用到的引
腳設置為As input tri-stated, Assignments—Device—Device and Pin Options –Unused Pins,然後重新編譯項目;
(14) 對目標版適配下載,(此處認為實驗板已安裝妥當,有
關安裝方法見實驗板詳細說明)單擊 按鈕,屏幕顯示如圖1.17所示;
圖1.18 適配下載界面
(15) 選擇Hardware Setup ,如圖1.19所示;
圖1.19 下載硬體設置
(16) 在圖1.19中選擇添加硬體ByteBlasteMV or ByteBlaster II,如圖1.20所示;
圖1.20 添加下載硬體
(17) 可以根據需要添加多種硬體於硬體列表中,雙擊可選列表中需要的一種,使其出現在當前選擇硬體欄中(本實驗板採用ByteBlaster II 下載硬體),如圖1.21所示;
圖1.21 選擇當前下載硬體
(18) 選擇下載模式,本實驗板可採用兩種配置方式,AS模式對配置晶元下載,可以掉電保持,而JTGA模式對FPGA下載,掉電後FPGA信息丟失,每次上電都需要重新配置,如圖1.22所示;
圖1.22 選擇下載模式
(19) 選擇下載文件和器件,JTAG 模式使用後綴為sof 的文
件,AS模式使用後綴為pof的文件,選擇需要進行的操作,分別如圖1.23,圖1.24所示;使用AS模式時,還要設置Assignments 菜單下Device,如圖1.25,選擇圖1.25中Device & Pin Options,如圖1.26,選擇使用的配置晶元,編譯;
圖1.23 JTAG下載模式
圖1.24 AS下載模式
圖1.25 器件選項
圖1.25 配置晶元選擇
(20) 點擊Start按鍵,開始下載。
1.3 文本編輯 (verilog)
這一節中將向讀者簡單介紹如何使用Quartus II軟體進行文本編輯。
文本編輯(verilog)的操作如下:
(1) 建立我們的project2項目如下圖:
圖1.26 建立項目project2
(2) 在軟體主窗口單擊File菜單後,單擊New選項,選擇Verilog HDL File選項,如圖1.27所示:
圖1.27 新建Verilog HDL文件
(3) 單擊OK進入空白的文本編輯區,進行文本編輯,本節列舉一個D觸發器的例子,其完成後的屏幕如圖1.28所示;
圖1.28 完成編輯後的屏幕
(4) V文件名必須與模塊面相同,將dff1.v文件設置為頂層文
件,Project—Set as Top-level Entity
(5) 完成編輯後的步驟與完成原理圖編輯的步驟相同,請參考
1.1節有關內容。
(6) 利用v文件生成原理圖模塊。在v文件編輯界面中,
File—Creat/Update—Creat Symbol Files for Curent File.
1.4 波形模擬
下面以1.2節中project2為例,介紹使用Quartus II 軟體自帶的模擬器進行波形模擬的步驟。
(1) 打開project2 項目,新建波形模擬文件,如圖1.29;
圖1.29 新建矢量波形文件
(2) 在建立的波形文件左側一欄中,點擊滑鼠右鍵,在彈出菜單中選擇 Insert Node or Bus,如圖1.30所示;
圖1.29 矢量波形文件節點加入
(3) 在出現的圖1.30中,選擇Node Finder,將打開Node Finder 對話框,本試驗對輸入輸出的管腳信號進行模擬,所以在Filter 中選擇 Pins:all,點擊List 按鈕,如圖1.31所示;
圖1.30 節點加入工具框
圖1.31 Node Finder 對話框
(4) 在圖1.31左欄中選擇需要進行模擬的埠通過中間的按鈕加入到右欄中,點擊OK,埠加入到波形文件中,如圖1.32;
圖1.32 加入模擬節點後的波形圖
(5) 在圖1.32中,選擇一段波形,通過左邊的設置工具條,給出需要的值,設置完成激勵波形,保存後如圖1.33所示;
圖1.33 設置好激勵波形的波形文件
(6) 設置為功能模擬:Assignment—Timing Analysis Settings--
Simulator Settings—Simulation mode 選擇Functional, 生成網路表Processing—Generate Functional Simulation Netlist;
(7) 點擊快捷按鈕 ,開始模擬,完成後得到波形如圖1.34所示,根據分析,功能符合設計要求。
圖1.33 波形模擬結果
㈣ 單片機引腳,單片機引腳是什麼意思
單片機引腳,單片機引腳是什麼意思
8051單片機引腳功能介紹
首先我們來連接一下單片機的引腳圖,如果,具體功能在下面都有介紹。
單片機的40個引腳大致可分為4類:電源、時鍾、控制和I/O引腳。
⒈ 電源: ⑴ VCC - 晶元電源,接+5V;
⑵ VSS - 接地端;
⒉ 時鍾:XTAL1、XTAL2 - 晶體振盪電路反相輸入端和輸出端。
⒊ 控制線:控制線共有4根,
⑴ ALE/PROG:地址鎖存允許/片內EPROM編程脈沖
① ALE功能:用來鎖存P0口送出的低8位地址
② PROG功能:片內有EPROM的晶元,在EPROM編程期間,此引腳輸入編程脈沖。
⑵ PSEN:外ROM讀選通信號。
⑶ RST/VPD:復位/備用電源。
① RST(Reset)功能:復位信號輸入端。
② VPD功能:在Vcc掉電情況下,接備用電源。
⑷ EA/Vpp:內外ROM選擇/片內EPROM編程電源。
① EA功能:內外ROM選擇端。
② Vpp功能:片內有EPROM的晶元,在EPROM編程期間,施加編程電源Vpp。
⒋ I/O線
80C51共有4個8位並行I/O埠:P0、P1、P2、P3口,共32個引腳。P3口還具有第二功能,用於特殊信號輸入輸出和控制信號(屬控制匯流排)。
〈51單片機引腳圖及引腳功能〉
拿到一塊晶元,想要使用它,首先必須要知道怎樣連線,我們用的一塊稱之為89C51的晶元,下面我們就看一下如何給它連線。
1、 電源:這當然是必不可少的了。單片機使用的是5V電源,其中正極接40管腳,負極(地)接20管腳。
2、 振蒎電路:單片機是一種時序電路,必須供給脈沖信號才能正常工作,在單片機內部已集成了振盪器,使用晶體振盪器,接18、19腳。只要買來晶體震盪器,電容,連上就能了,按圖1接上即可。
3、 復位管腳:按圖1中畫法連好,至於復位是何含義及為何需要復要復位,在單片機功能中介紹。
4、 EA管腳:EA管腳接到正電源端。 至此,一個單片機就接好,通上電,單片機就開始工作了。
我們的第一個任務是要用單片機點亮一隻發光二極體LED,顯然,這個LED必須要和單片機的某個管腳相連,不然單片機就沒法控制它了,那麼和哪個管腳相連呢?單片機上除了剛才用掉的5個管腳,還有35個,我們將這個LED和1腳相連。(見圖1,其中R1是限流電阻)
按照這個圖的接法,當1腳是高電平時,LED不亮,只有1腳是低電平時,LED才發亮。因此要1腳我們要能夠控制,也就是說,我們要能夠讓1管腳按要求變為高或低電平。即然我們要控制1腳,就得給它起個名字,總不能就叫它一腳吧?叫它什麼名字呢?設計51晶元的INTEL公司已經起好了,就叫它P1.0,這是規定,不能由我們來更改。
〈單片機接線圖〉圖1
名字有了,我們又怎樣讓它變'高'或變'低'呢?叫人做事,說一聲就能,這叫發布命令,要計算機做事,也得要向計算機發命令,計算機能聽得懂的命令稱之為計算機的指令。讓一個管腳輸出高電平的指令是SETB,讓一個管腳輸出低電平的指令是CLR。因此,我們要P1.0輸出高電平,只要寫SETB P1.0,要P1.0輸出低電平,只要寫 CLR P1.0就能了。
現在我們已經有辦法讓計算機去將P10輸出高或低電平了,但是我們怎樣才能計算機執行這條指令呢?總不能也對計算機也說一聲了事吧。要解決這個問題,還得有幾步要走。第一,計算機看不懂SETB CLR之類的指令,我們得把指令翻譯成計算機能懂的方式,再讓計算機去讀。計算機能懂什麼呢?它只懂一樣東西——數字。因此我們得把SETB P1.0變為(D2H,90H ),把CLR P1.0變為 (C2H,90H ),至於為什麼是這兩個數字,這也是由51晶元的設計者--INTEL規定的,我們不去研究。第二步,在得到這兩個數字後,怎樣讓這兩個數字進入單片機的內部呢?這要藉助於一個硬體工具"編程器"。如果你還不知道是什麼是編程器,我來介紹一下,就是把你在電腦上寫出來來的代碼用匯編器等編譯器生成的一個目標燒寫到單片機的eprom裡面去的工具,80c51這種類型的單片機編程是一件很麻煩的事情,必要要先裝到編程器上編程後才能在設備上使用,而目前最新的89s51單片機居然在線編程(isp)功能,不用拔出來利用簡單的電路就可以實現把代碼寫入單片機內部,本站有詳細的at89s51編程器製作教程
我們將編程器與電腦連好,運行編程器的軟體,然後在編緝區內寫入(D2H,90H)見圖2,寫入……好,拿下片子,把片子插入做好的電路板,接通電源……什麼?燈不亮?這就對了,因為我們寫進去的指令就是讓圖2
P10輸出高電平,燈當然不亮,要是亮就錯了。現在我們再撥下這塊晶元,重新放回到編程器上,將編緝區的內容改為(C2H,90H),也就是CLR P1.0,寫片,拿下片子,把片子插進電路板,接電,好,燈亮了。因為我們寫入的()就是讓P10輸出低電平的指令。這樣我們看到,硬體電路的連線沒有做任何改變,只要改變寫入單片機中的內容,就能改變電路的輸出效果。
㈤ keil如何快速找到代碼
高級查找
步驟一:首先工程編譯選項中要選擇如圖一:【Browse Infomation】選項,即瀏覽信息。
全編譯工程至沒有錯誤,這一點很重要,如果有嚴重的錯誤,則可能沒有編譯完,即一般的查找可能不會查到整個工程文件的內容,選成搜索的信息不全或是沒有。
圖一:設置編譯選項
步驟二:如圖二,雙擊需要查找的內容選中後,點擊右鍵,選擇查找項:
這里為簡單的查找方式,方便與快速。可以查找到相關的定義及調用情況,在哪個文件里。這里必須是全編譯通過的工程源碼。
圖二:選中並右鍵查找。
步驟三:如圖三,部分匯編函數的變數或是函數名無法找到。有時查不到,怎麼辦呢?繼續以下的方法。
圖三:簡單的查找沒有找到相關項。
步驟四:如圖四,選中後,通過Edit->Find in files..高級查找功能。這里要點就是設置搜索篩選的條件及文件范圍,如是否精確查找或是只要部分包含等選項。
圖四:打開高級查找功能:工程文件內容搜索。
步驟五:設置文件搜索的選項,尤其是工程文件夾,默認有可能不是整個工程文件夾。這里點擊瀏覽選擇整個工程文件。
圖五:設置搜索選項。
步驟六:保證搜索文件范圍為整個工程文件主目錄。選擇後,即可進行搜索了查找了。
圖六:選擇文件主目錄。
步驟七:點擊查找後,查看搜索到的信息。查看搜索到的結果,有可能很多,可以重新查找並修改查找選項等。
圖七:文件搜索到的信息。
步驟八:雙擊並定位查看指定的搜索信息。雙擊即可定位並查看查找的結果。
圖八:定位並查看指定的搜索信息。
有時需要對工程源碼進行從頭到尾的學習與消化,因此,查找功能還是比較有用的。從而讓變數定義或是函數定義等無處藏身。雖然步驟很多,其實很簡單。
最重要的,學習在於積累,有些技術的東西,就要多動手,然後再舉一返三,熟能生巧。
張世爭
微信公眾號
嵌入式開發技術經驗分享
打開CSDN,閱讀體驗更佳
keil c51 關鍵字_行知zzz的博客_c51擴展關鍵字
keil c51 關鍵字 一:KeilCx51擴展的關鍵字: •at•alien •bdata •bit •code •compac •data •far •idata •interrupt •large •pdata •priority•reentrant...
繼續訪問
KeilC51基本關鍵字_dylan_zhouhailiang的博客_c51關鍵字
KeilC51基本關鍵字 一、由ANSI標準定義的共32個: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof ...
繼續訪問
keil編輯環境下_「搜索」功能窗口中_Bookmark All命令的便捷之處
在keil編輯環境下,有時候調用一個函數,這個函數有執行的前提條件,比如要執行函數體內容得滿足:if (cmdArrived) 條件; 可是變數:cmdArrived在哪裡定義的? 在哪個函數里變數:cmdArrived滿足條件,要怎麼找比較快呢。 ctrl + F 打開搜索框,輸入「cmdArrived」,再點擊「Bookmark All」命令,所有的「cmdArrived」調用行全部使用了書簽,這樣就比較好著了; keil編輯環境工具欄搜索框輸入cmdArrived,點擊右邊搜索命令,再點擊「Book
繼續訪問
Keil 查找功能的使用
keil中如何查找和替換以及一個工程里所有文件所包含查找和替換的內容: 1、點擊 edit-find或者快捷鍵 ctrl+f; 2、在look in中 選擇current document就是查找或替換本文件的內容, 選擇current project就是查找或替換整個工程的包含的內容 ...
繼續訪問
MDK keiluvision Volatile關鍵字的用法_點點墨的博客
MDK keiluvision Volatile關鍵字的用法 在定義變數時,變數前面加volatile修飾,作用是防止相關變數被優化。 例如對外部寄存器的讀寫。對有些外部設備的寄存器來說,讀寫操作可能都會引發一定硬體操作,但是如果不加volatile,編譯器會把這些...
繼續訪問
Keil中的code關鍵字_weixin_30823001的博客
Keil中的code關鍵字 一般說來,我們在C語言中定義的每一個變數初始化後都會佔用一定的內存(RAM)空間。但是在keil中提供了一個特殊的關鍵字「code」,這個關鍵字在標准C中是沒有的。其語法舉例如下:...
繼續訪問
keil C51 中的庫函數
非常有用的keil c51 庫函數文檔,受益匪淺,
Keil C51 V9.00/uVision 4基礎
<br /> <br />Keil C51 V9.00 即09年發布的最新版本uVision 4,版本外觀改變比較大<br />可以使用以前的注冊文件<br />如果全新安裝,在VISTA或者WIN 7系統下,請使用管理員方式運行,然後注冊即可無限制運行<br />注冊方法:<br /> 1. 安裝Keil C51 V9.00版本,即uV4<br /> 2. 打開uVision4,點擊File---License Management...,打開License Management窗口,復制右上
繼續訪問
解決Keil 搜索關鍵字時不能跳轉到所在位置的問題
問題:KEIL搜索結果不能跳轉的問題分析過程:最近遇到一個問題:在keil5.1中ctrl+shift+s全局搜索,雙擊搜索結果後無法跳轉。重裝軟體,換版本,修復電腦我都試了,都沒用。最後發現,原先的程序可以跳轉,而後來修改的不行。相同的工程在相同的目錄下為什麼一個可以一個不行呢?發現唯一的區別就是兩個工程文件夾名稱不同,由於修改過的版本我在工程文件名附加了 「(0922)」,我把括弧去掉後就可以...
繼續訪問
keil5尋找自定義函數的位置
keil中想快速的找到自定義函數的位置,如下所示: 想找到CAN定義的函數位置: 第一步:先對程序進行build(第一步非常重要,如果不build,就不能用後面的快捷鍵與go to!!!) 第二步:可以游標放到函數的位置右擊,然後點擊go to definition…或者按F12 ...
繼續訪問
KEIL5 全局搜索關鍵字功能用不了的解決辦法(CTRL+F)
CTRL+F跳出搜索界面 點擊Find in Files 項目卡,選擇Current Project即可。
繼續訪問
STM32F4工程--KEIL--搜索關鍵字
STM32F4工程--KEIL--搜索關鍵字 在.C文件或.H文件中搜索一個關鍵字 方法: ctrl+F 輸入關鍵字即可查詢 (問題解決,如果對大佬您有幫助的話,給小丁個贊唄,謝謝大佬)
繼續訪問
最新發布 如何通過KEIL查看所定義函數入口在內存的地址
如何通過KEIL查看所定義函數入口在內存的地址
繼續訪問
Keil軟體開啟「查找變數定義」功能方法
在使用Keil軟體編寫程序時,有可能將程序的變數定義和使用放在了不同的位置, 有時候想要查看變數的定義,可以使用Keil軟體的查找功能。 1、使用Find功能一個個查找變數,在Keil界面輸入 Ctrl+F,彈出查找界面。 將要查找的內容輸入[Find what]查找框,[Look in]框選擇"Current Document",然後點擊"Find Next"就可以在當前文件一...
繼續訪問
Keil使用技巧及常見問題
文章目錄Keil的使用快捷鍵Keil中使用Ctrl+Shift+F:在多個文件中搜索變數/函數(Find in files) Keil的使用快捷鍵 Keil中使用Ctrl+Shift+F:在多個文件中搜索變數/函數(Find in files) 搜索條件 說明 Find what 輸入要搜索的關鍵字 指定要搜索的文件類型 指定要搜索的文件夾/工程 搜索屬性...
繼續訪問
keil的主要功能和作用_keil進階教程
前言keil只懂得創建軟體工程是遠遠不夠的,如果要想順心使用,應該要懂得部分配置,這樣使用心情順暢,碼代碼也會越發高效。設置字型大小字體點擊編輯菜單,會出現很多子目錄,找到配置,點擊進入設置頁面。看到上方的子欄目,去選擇colors,進入新界面,單片機用C語言編寫·,那就點擊編輯c文件,右邊會出現字型大小,字體,字色設置,按照個人需求自行設置。改正錯誤有時候各種因素會出現編程錯誤,但自行又找不到錯誤在何處...
繼續訪問
KEIL5全局搜索,在find in files框內雙擊搜索內容,不能跳到相應位置
文件名包含了()括弧,去掉就可以了。
繼續訪問
熱門推薦 keil編程關鍵字沒有彩色,找不到Keyword和 C++files解決辦法
打開顏色設置,如果沒有C/C++ Editor files 你就無法修改你的代碼界面關鍵字顏色。 這種情況,很有可能是你的Keil安裝目錄下含有中文路徑(一般國外專業軟體我都放在D盤第一目錄下的新建英文文件夾(Softwares)中,養成文件夾存放的好習慣,日後無論是安裝還是找路徑都會方便許多。),將你的Keil安裝文件整個拖到英文目錄下,或者修改目錄名為英文。 接下來重啟軟體,就可以設置關鍵字了。 注意:修改前關閉keil,如果文件名無法修改,說明當前有文件里的東西正在運行。需關閉」修改目錄「所在文件里的
繼續訪問
Keil代碼整體偏移和查找功能
選中要偏移的代碼,然後按TAB鍵,所有被選中的代碼就會向後偏移TAB,TAB等於多少個空格,可以在「Edit」-「Editor」-「C/C++ Files」下面設置。 如果要返回,則選中目標代碼,按Shift+TAB就行了。 Keil的查找功能
繼續訪問
Keil如何查看函數或變數調用---非Ctrl F
今天公司新人問我,Keil這個編譯器怎麼查看一個函數都在哪裡被調用?我脫口而出 辣雞軟體只能用Ctrl F慢慢找。。要麼你就先用SourceInsight編輯代碼,改好了再去編譯吧。 好好的編譯器怎麼會沒有這個最基本的功能呀?? 想著這個問題,於是就有了今天的意外之喜。 操作方法如下: 在View中調出SourceBrowser這個窗口,將需要查找定義及調用位置的 函數、變數、宏等復制到Symbol處,回車 你就可以看到Definitions&References了,雙擊可以跳轉到對應的代碼位置。這
繼續訪問
keil查找函數引用的方法
1.快捷鍵ctrl+f 2在Find in Files中填要找的,Find all. 3.ojbk
繼續訪問
如何在KEIL裡面搜索一個函數名或者字元串
使用Ctrl + F 會出現如下彈窗,這個就是一個搜索窗口。 這個彈窗的搜索內容會和你之前選中的字元串一樣,同時可以選擇在一個文件下找,也可以選擇查找那個文件含有這個字元串 查找含有某一個字元串的文件 ...
繼續訪問
實驗一 單片機 繪制原理圖
實驗一 2.2繪制原理圖 1.首先在開始菜單欄裡面輸入「ISIS」打開軟體; 2.1)單擊元器件列表窗口上邊的按鈕P,彈出圖2.1所示元器件選擇窗口; 圖2.1 2)在該窗口左上方的關鍵字文本框內輸入8051,在窗口右上方的欄中將顯示出80C51圖形符號,同時顯示該器件的虛擬模擬模型VSM DLL model(MCS8051.DLL)如圖2.2; 圖2.2 3) 用滑鼠從器件選擇窗口中選中需要的器件,單機確定按鈕後,選擇的器件將出現在預覽窗口中如圖2.3; 圖2.3 4)將滑鼠指向編輯窗口並單
繼續訪問
keil查找關鍵字
Keil
㈥ kicad怎麼把符號弄到原理圖編譯器
具體就是滑鼠指針直接指向想要添加網路的焊盤,在英文狀態下,按鍵盤上的「E」,在彈出的對話框里,有一項是「Net name」,在其後輸入想要輸入的名字即可。當然還有其他方法,本質一樣。
1、在電腦桌面開始菜單中打開Altium designer 09軟體。
2、在Altium designer 09軟體右側libraries菜單欄中點擊libraries。出現對話框,點擊install。
3、找到元件封裝庫的路徑,添加元件封裝庫。
4、元件封裝庫添加完成,點擊close。
5、在Altium designer 09軟體菜單欄中,點擊open。
6、出現對話框,找到元件封裝庫存放的路徑,打開元件封裝庫。
7、在Altium designer 09軟體左側菜單中點擊pcb library。
8、在Altium designer 09軟體菜單欄點擊tool-New blank component,新建元件。
9、然後放置焊盤,按照規格書要求設置好焊盤大小與焊盤間的距離。
10、然後放置元件外框絲印,絲印放置在Top silkscreen層。
11、元件製作完成,元件符號被移到原理圖編譯器