一、實驗目的 1. 學會選擇變壓器、整流二極管、濾波電容及集成穩 壓 器來設計直流穩壓電源。 2. 掌握直流穩壓電源的主要性能參數及測試方法。 二、實驗原理 電子設備一般都需要直流電源供電。這些直流電 除了少數直接利用干電池和直流發電機外,大多數是 采用把交流電(市電)轉變為直流電的直流穩壓電源。 直流穩壓電源由電源變壓器T、整流、濾波和穩壓電路四部分組成,其原理框圖如圖1 所示。電網供給的交流電壓u1(220V,50Hz) 經電源變壓器降壓后,得到符合電路需要的交流電壓u2,然后由整流電路變換成方向不變、大小隨時間變化的脈動電壓u3,再用濾波器濾去其交流分量,就可得到比較平直的直流電壓uI。但這樣的直流輸出電壓,還會隨交流電網電壓的波動或負載的變動而變化。在對直流供電要求較高的場合,還需要使用穩壓電路,以保證輸出直流電壓更加穩定。 1、串聯型穩壓電源的基本原理 圖2是由分立元件組成的串聯型穩壓電源的電路圖。其整流部分為單相橋式整流、電容濾波電路。穩壓部分為串聯型穩壓電路,它由調整元件(晶體管V1);比較放大器V2、R7;取樣電路R1、R2、RP,基準電壓VD、R3和過流保護電路V3管及電阻R4、R5、R6等組成。整個穩壓電路是一個具有電壓串聯負反饋的閉環系統,其穩壓過程為:當電網電壓波動或負載變動引起輸出直流電壓發生變化時,取樣電路取出輸出電壓的一部分送入比較放大器,并與基準電壓進行比較,產生的誤差信號經T2放大后送至調整管V1的基極,使調整管改變其管壓降,以補償輸出電壓的變化,從而達到穩定輸出電壓的目的。 2、集成穩壓器 能夠完成穩壓功能的集成穩壓器種類很多,根據調整管工作在線性放大區還是工作在開關狀態,將其分為線性集成穩壓器和開關集成穩壓器。線性集成穩壓器中,由于三端式穩壓器只有三個引出端子,性能穩定、價格低廉等優點,因而得到廣泛的應用。三端式穩壓器有兩種,一種輸出電壓是固定的,稱為固定輸出三端穩壓器,另一種輸出電壓是可調的,稱為可調三端穩壓器。圖 4是常用的三端穩壓器示意圖。
標簽: 直流穩壓電源
上傳時間: 2013-11-27
上傳用戶:qazxsw
以下的電路為使用市電AC120V的電力經由電容降低電壓及小電阻來限制電流以供應LED 的電力。當交流電經過電容后并未提供直流電力,利用一個小的二極體和LED 并聯,提供一個路徑給負半波的電壓而且可以限制反向電壓流經LED,另外也可使用右圖利用第二個LED 替代二極管,或是直接安裝一個三色的雙向LED,其中使用的電阻為1K/0.5W,當電容充電時發生150mA 突波,這時電阻可以在1 毫秒內將電流限制在30mA 以內,這個0.47U 的電容在LED 以20mA,60HZ 半波供電時(或是10MA 平均值)約產生5600 奧姆的電抗,或是10MA平均值,電容越大能夠提供的電流就越大,電容一定要使用無極性的而且耐壓要200V 以上。
上傳時間: 2013-11-09
上傳用戶:yph853211
工頻變壓器在被大家稱為低頻變壓器,以示與開關電源用高頻變壓器有區別。工頻變壓器在過去傳統的電源中大量使用,而這些電源的穩定方式又是采用線性調節的,所以那些傳統的電源又被稱為線性電源工頻變壓器的原理非常簡單,理論上推導出相關計算式也不復雜,所以大家形成了看法:太簡單了,就那三、四個計算公式,沒什么可研究的。設計時只要根據那些簡單的公式,立馬成功。掌握了電壓高了拆掉幾圈,電壓低了加幾圈,空載電流大了,適當增加初級圈數,也覺的低工頻變壓器的非常簡單。我認為上面的認識既有可取之處,也有值得研究的地方。可取之處:根據計算式或自己打樣,可以很快就得出結果,解決了問題;加上有六七年以上得實際工作經驗,可說是在某單位得心應手,鶴立雞群。值得研究的地方是:你是否了解自己設計出的產品性能?設計合理嗎?設計優化過嗎?經濟性如何?過去電源變壓器的設計由電子部牽頭組織專家學者成立變壓器工作組,編寫典型計算免費發放各單位,作為計算依據,每個單位都有自己的變壓器設計人員,由于有了參數表的存在,各廠設計出來的變壓器各參數基本一致,連圈數和線徑都可能一一模一樣。驗收的規則也是統一到變壓器總技術條件上來。改革開放以后國營企業的變壓器設計人員,除極少數外,下海的不多。典型計算資料本不可多得,要按失密論處。加上典型計算是原蘇聯的一套鐵心規格與現行得EI鐵心片規格不符,無參照價值。目前基本上是采用師傅帶徒第的方式帶出來一大批變壓器工程人員。。與過去不同現有的工程技術人員大都是自己打樣,由于工頻變壓器市場廣泛,小單子很多。而這些單子很多是從關系接來的。不十分計較價格,因此理論水平一般,實際經驗豐富的工程技術人員大有人在。從設計角度來看師師傅帶徒第的方式帶出來一大批變壓器工程人員,他門的設計風格各不相同。
上傳時間: 2013-10-17
上傳用戶:dudu1210004
單片機終結者出品 第1課:新建一個*.DDB,新建一個SCH文件,并且添加畫SCH要用到的零件庫>> 第2課:利用添加好的零件庫,進行畫第一個可以自動布線的原理圖>> 課后補充:SCH中一些必須要避免的錯誤! 圖片教程的第2天: 學會從SCH到PCB的轉變,并且進行自動布線 第一課:建立一個PCB文件,并且添加自動布線所必需的封裝庫 第二課:把前面的SCH文件變成PCB板 第三課: 對PCB進行自動布線 圖片教程的第3天: 學會自己做SCH零件。說明:SCH零件庫用來畫圖和自動布線 第一課:做一個SCH里面常要用到的電阻零件 圖片教程的第4天: 學會自己做PCB零件封裝 第一課:做一個屬于自己的PCB零件封裝 課后補充:PCB中一些必須要避免的錯誤! 布線方面的高級設置:自動布線和手動布線方面的高級設置問題 圖片教程的第5天: 一些高級的常用技巧 一、SCH中的一些常用技巧 SCH的一些高級設置和常用技巧 二、PCB的一些高級設置和常用技巧 在PCB中,如何校驗和查看PCB單個的網絡連接情況 在PCB中給PCB補淚滴的具體操作 在PCB中給PCB做覆銅的具體操作 在PCB中如何打印出中空的焊盤(這個功能對于熱轉印制板比較有用) 在PCB中如何找到我們要找的封裝 如何在PCB文件中加上漂亮的漢字 附件:PROTEL99SE 安裝 License 5天(每天20分鐘),你就可以搞定PROTEL99SE的常規操作。
上傳時間: 2013-10-18
上傳用戶:jjq719719
c語言編程軟件vc6.0使用教程,附件包含二個教程文件,VC++6.0培訓教程完整版及VC6.0介紹。 Visual C++ 6.0,簡稱VC或者VC6.0,是微軟的一款C++編譯器,將“高級語言”翻譯為“機器語言(低級語言)”的程序。Visual C++是一個功能強大的可視化軟件開發工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業程序員進行軟件開發的首選工具。雖然微軟公司推出了 Visual C++.NET(Visual C++7.0),但它的應用有很大的局限性,只適用于Windows 2000、Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平臺。 vc6.0使用你首先要打開VC6.0界面,一般用得較多的是Win32控制臺應用程序(源程序,擴展名.cpp), 步驟是:(先工程—后文件—編譯—連接---運行) 1,建立一個工程,“文件”——“新建”,出現下面界面:選擇“Win32 Console Application”(控制臺應用程序,左邊倒數第三個),命名工程名稱,選擇保存位置。 點擊“確定”,進入下一步,看到如下提示界面: 建立一個空工程,對應其他需要的你一可以建立別的工程;點擊“完成”,之后 顯示你創建的工程的信息。 2,再在有一個的工程的條件下,我們再建立一個源文件; “文件”——“新建”(快捷鍵Ctri+N),出現: 建立源文件,選擇“C++ Source ”,一般都是建立這種文件的(適用在當文件中適用)如果要建立頭文件的話,選擇“C/C++ Header File”,(適用在多文件工程中使用)命名,文件名稱,點擊“確定”,之后: 進入編輯區,在主界面編寫代碼:如下編寫完之后呢: 可以按編譯按鈕 調試程序,看看有沒有錯誤,有的話改正,沒有的話就可以再按連接按鈕 檢查連接(多文件工程時常用,檢查文件間是否正常連接),最后,點運行按鈕 ,就可以運行了。 如果是您有代碼如:cpp文件,或 .h 文件,想添加都VC6.0里來測試的話,可以這樣做: 首先,要理解一下 文件擴展名為:cpp和.h 文件擴張名是.h,代表的是頭文件,一般是書寫一些函數原型,以及一些在整個程序中常用到的結構體,頻繁使用的函數說明,定義等等; 文件擴張名為,cpp的,是C++中的源文件,也是最常用到的文件,每建立一個工程都要至少一個源文件(至少要有一個函數入口——主函數main() ),包含了核心代碼; 建立與運行說明:(以VC 6.0編譯器為例,其他編譯器類似) 首先,打開VC 6.0編譯環境; 在菜單欄——文件(的下拉菜單中選擇“新建”),在彈出的選擇窗口中,選擇 Win32 Console Application(控制臺應用程序) ,在填寫工程名稱,選擇一個程序保存路徑, 點擊“完成”,查看工程信息。 在點擊“確定”,就建立一個簡單的工程了。 再點擊左邊的工程信息右下角的“FileView”選項; 可以看到你新建的工程,再雙擊你新建的工程名 可以查看工程的信息。 在雙擊工程文件,在這里是 777.files,可以看到該工程的包含的文件。 其中,Source Files 為包含所有工程的源文件 Header Files 為包含所有工程的頭文件 在源文件選項“Source Files ”,右鍵單擊中的“添加目錄到工程”,添加你要打開的擴展名為 .cpp的源文件。在頭文件選項“ Header Files”,右鍵單擊中的“添加目錄到工程”,添加你要打開的擴展名為 . h的頭文件。添加完你所有的頭文件和源文件之后,檢查一下是否添加完畢,之后就可以編譯了。 其中第一個按鈕 為編譯按鈕,可以找出工程的錯誤信息,有錯誤修改,沒錯誤就可以跳到連接 ,編譯右邊的按鈕 ,即第三個按鈕(多文件工程一定要連接,查看文件是否準確相連接) 當編譯,連接都沒有錯誤時,可以按運行按鈕 ,即可以運行了。 相關資料:vc6.0中文綠色版下載
上傳時間: 2013-10-30
上傳用戶:tianjinfan
DSP的使用正呈爆炸式發展。OFDM、GPS相關器、FFT、FIR濾波器或H.264之類計算密集型算法在從移動電話到汽車的各種應用中都很常見。設計人員實現DSP有三種選擇:他們可以使用DSP處理器、FPGA或掩膜ASIC。ASIC具有最高的吞吐量、最低的功耗和最低的成本,但其極大的NRE和較長研制周期使其對許多設計而言并不適用。定制ASIC的研制周期可達一年之久,比最終產品的使用壽命都長。FPGA已占居較大的市場份額,因為其能提供比DSP處理器更好的吞吐量,而且沒有ASIC的極大NRE和較長研制周期。 因此,常常將基于ARM的MCU和FPGA結合使用來實現這些設計,其中FPGA實現設計的DSP部分。然而,FPGA也有其自身的不足--最突出的是功耗很高(靜態功耗接近2W),且性能比ASIC慢。FPGA時鐘用于邏輯執行時通常限制為50MHz,而ASIC可以400MHz或更高頻率執行邏輯。其他缺點還包括在IP載入基于SRAM的FPGA時安全性還不夠理想,成本也較高。盡管FPGA成本已迅速降低,但價格通常在10,000片左右就不再下降,因此仍比較昂貴。 新型可定制Atmel處理器(CAP)MCU具有的門密度、單元成本、性能和功耗接近基于單元的ASIC,而NRE較低且開發時間較快。與基于ARM的非可定制標準產品MCU一樣,不需要單獨的ARM許可。 可定制MCU利用新型金屬可編程單元結構(MPCF)ASIC技術,其門密度介于170K門/mm2與210K門/mm2之間,與基于單元的ASIC相當。例如,實現D觸發器(DFF)的MPCF單元與標準的單元DFF都使用130nm的工藝,所用面積差不多相同。
上傳時間: 2013-10-29
上傳用戶:xymbian
終于結束了晦澀枯燥的第三章,我自己也長吁了一口氣,現在我真的是非常同情那些教專業基礎課或者工程數學的老師,這里真誠的說一聲:“辛苦你們了”。這一章要輕松不少,相信就算是剛走出校門的雛鳥,多少都有一定的C語言基礎,大學好象都要過一個計算機等級考試,所以C語言自然是逃不了。你不要指望我給你講述C語言原理和指令這類基礎知識,我更不會給你講述C++那些面對對象編程的高級編程方法,這一章講述的內容都是C語言在單片機上應用會遇到的一些有意思的現象,讓你知道C在單片機上是怎么工作的。當然也會告訴你一些C的經驗技巧,這些對提升你的單片機程序能力還是有一定作用的。
上傳時間: 2013-11-20
上傳用戶:zhanditian
AVR單片機技術原理 AVR單片機介紹 單片機又稱單片微控制器,它是把一個計算機系統集成到一個芯片上,概括的講:一塊芯片就成了一臺計算機。單片機技術是計算機技術的一個分支,是簡易機器人的核心元件。 1997年,由ATMEL公司挪威設計中心的A先生與V先生利用ATMEL公司的Flash新技術, 共同研發出RISC精簡指令集的高速8位單片機,簡稱AVR。[編輯本段]AVR單片機的優勢特征 單片機已廣泛地應用于軍事、工業、家用電器、智能玩具、便攜式智能儀表和機器人制作等領域,使產品功能、精度和質量大幅度提升,且電路簡單,故障率低,可靠性高,成本低廉。單片機種類很多,在簡易機器人制作和創新中,為什么選用AVR單片機呢? 一、簡便易學,費用低廉 首先,對于非專業人員來說,選擇AVR單片機的最主要原因,是進入AVR單片機開發的門檻非常低,只要會操作電腦就可以學習AVR單片機的開發。單片機初學者只需一條ISP下載線,把編輯、調試通過的軟件程序直接在線寫入AVR單片機,即可以開發AVR單片機系列中的各種封裝的器件。AVR單片機因此在業界號稱“一線打天下”。 其次,AVR單片機便于升級。AVR程序寫入是直接在電路板上進行程序修改、燒錄等操作,這樣便于產品升級。 再次,AVR單片機費用低廉。學習AVR單片機可使用ISP在線下載編程方式(即把PC機上編譯好的程序寫到單片機的程序存儲器中),不需購買仿真器、編程器、擦抹器和芯片適配器等,即可進行所有AVR單片機的開發應用,這可節省很多開發費用。程序存儲器擦寫可達10000次以上,不會產生報廢品。 二、高速、低耗、保密 首先,AVR單片機是高速嵌入式單片機: 1、AVR單片機具有預取指令功能,即在執行一條指令時,預先把下一條指令取進來,使得指令可以在一個時鐘周期內執行。 2、多累加器型,數據處理速度快。AVR單片機具有32個通用工作寄存器,相當于有32條立交橋,可以快速通行。 3、中斷響應速度快。AVR單片機有多個固定中斷向量入口地址,可快速響應中斷。 其次,AVR單片機耗能低。對于典型功耗情況,WDT關閉時為100nA,更適用于電池供電的應用設備。有的器件最低1.8 V即可工作。 再次,AVR單片機保密性能好。它具有不可破解的位加密鎖Lock Bit技術,保密位單元深藏于芯片內部,無法用電子顯微鏡看到。 三、I/O口功能強,具有A/D轉換等電路 1. AVR單片機的I/O口是真正的I/O口,能正確反映I/O口輸入/輸出的真實情況。工業級產品,具有大電流(灌電流)10~40 mA,可直接驅動可控硅SCR或繼電器,節省了外圍驅動器件。 2. AVR單片機內帶模擬比較器,I/O口可用作A/D轉換,可組成廉價的A/D轉換器。ATmega48/8/16等器件具有8路10位A/D。 3. 部分AVR單片機可組成零外設元件單片機系統,使該類單片機無外加元器件即可工作,簡單方便,成本又低。 4. AVR單片機可重設啟動復位,以提高單片機工作的可靠性。有看門狗定時器實行安全保護,可防止程序走亂(飛),提高了產品的抗干擾能力。 四、有功能強大的定時器/計數器及通訊接口 定時/計數器T/C有8位和16位,可用作比較器。計數器外部中斷和PWM(也可用作D/A)用于控制輸出,某些型號的AVR單片機有3~4個PWM,是作電機無級調速的理想器件。 AVR單片機有串行異步通訊UART接口,不占用定時器和SPI同步傳輸功能,因其具有高速特性,故可以工作在一般標準整數頻率下,而波特率可達576K。
上傳時間: 2013-10-18
上傳用戶:二十八號
高速SOC單片機 基于半導體集成技術的突飛猛進的發展各種類型的單片機正日新月異的涌向市場為單片機技術的應用人員提供了極大的方便INTEL公司在MCS48系列的基礎上推出高性能的MCS51系列八位單片機而今三十二位單片機又以其強大的片內功能提供給應用者無論是那一種位數的單片機也無論是那一種系列的單片機都為新產品的開發應用系統的研制智能控制器的研究高新技術的應用創造了極其有力的硬件環境當前可以說由于世界各生產廠家生產通用型以及衍生出的五花八門的系列及型號的單片機使其單片機技術的應用已達到了無孔不入的地步當初面向工業控制功能的單片機現已遠遠超出了原設計者的想像然而占全球單片機銷量60%65%左右的八位單片機仍是當前應用的主流就國內應用實踐而言使用單片機數量最大的是八位單片機應用范圍最廣的是八位單片機八位單片機仍具有時代的魅力.
上傳時間: 2013-12-18
上傳用戶:642778338
單片機指令系統原理 51單片機的尋址方式 學習匯編程序設計,要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運算碼找操作數的方法。在我們學習的8051單片機中,有6種尋址方法,下面我們將逐一進行分析。 立即尋址 在這種尋址方式中,指令多是雙字節的,一般第一個字節是操作碼,第二個字節是操作數。該操作數直接參與操作,所以又稱立即數,有“#”號表示。立即數就是存放在程序存儲器中的常數,換句話說就是操作數(立即數)是包含在指令字節中的。 例如:MOV A,#3AH這條指令的指令代碼為74H、3AH,是雙字節指令,這條指令的功能是把立即數3AH送入累加器A中。MOV DPTR,#8200H在前面學單片機的專用寄存器時,我們已學過,DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組成。這條指令的意思就是把立即數的高8位(即82H)送入DPH寄存器,把立即數的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機的指令系統中,僅有一條指令的操作數是16位的立即數,其功能是向地址指針DPTR傳送16位的地址,即把立即數的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數直接以單元地址的形式給出,也就是在這種尋址方式中,操作數項給出的是參加運算的操作數的地址,而不是操作數。例如:MOV A,30H 這條指令中操作數就在30H單元中,也就是30H是操作數的地址,并非操作數。 在80C51單片機中,直接地址只能用來表示特殊功能寄存器、內部數據存儲器以及位地址空間,具體的說就是:1、內部數據存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV IE,#85H 前面的學習我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV IE,#85H 的形式表述,也可以MOV 80H,#85H的形式表述。 關于數據存儲器RAM的內部情況,請查看我們課程的第十二課。 直接尋址是唯一能訪問特殊功能寄存器的尋址方式! 大家來分析下面幾條指令:MOV 65H,A ;將A的內容送入內部RAM的65H單元地址中MOV A,direct ;將直接地址單元的內容送入A中MOV direct,direct;將直接地址單元的內容送直接地址單元MOV IE,#85H ;將立即數85H送入中斷允許寄存器IE 前面我們已學過,數據前面加了“#”的,表示后面的數是立即數(如#85H,就表示85H就是一個立即數),數據前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當前寄存器組(工作寄存器組的選擇在前面專用寄存器的學習中,我們已知道,是由程序狀態字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態設置,來進行對當前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進位位CY。 寄存器尋址方式是指操作數在寄存器中,因此指定了寄存器名稱就能得到操作數。例如:MOV A,R0這條指令的意思是把寄存器R0的內容傳送到累加器A中,操作數就在R0中。INC R3這條指令的意思是把寄存器R3中的內容加1 從前面的學習中我產應可以理解到,其實寄存器尋址方式就是對由PSW程序狀態字確定的工作寄存器組的R0-R7進行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數的地址,即操作數是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機規定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內部或外部數據存儲器的256個單元。為什么會是256個單元呢?我們知道,R0或者R1都是一個8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV R0,#30H ;將值30H加載到R0中 MOV A,@R0 ;把內部RAM地址30H內的值放到累加器A中 MOVX A,@R0 ;把外部RAM地址30H內的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數據存儲器時,我們通常就用DPTR做為間址寄存器。例:MOV DPTR,#1234H ;將DPTR值設為1234H(16位) MOVX A,@DPTR ;將外部RAM或I/O地址1234H內的值放到累加器A中 在執行PUSH(壓棧)和POP(出棧)指令時,采用堆棧指針SP作寄存器間接尋址。例:PUSH 30H ;把內部RAM地址30H內的值放到堆棧區中堆棧區是由SP寄存器指定的,如果執行上面這條命令前,SP為60H,命令執行后會把內部RAM地址30H內的值放到RAM的61H內。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,R0、R1、DPTR、SP 寄存器間接尋址范圍總結:1、內部RAM低128單元。對內部RAM低128單元的間接尋址,應使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內容送入累加器A中。外部RAM的低256單元是一個特殊的尋址區,除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內容送入累加器A。 堆棧操作指令(PUSH和POP)也應算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區別寄存器尋址我寄存器間接尋址的區別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計數器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內容相加,所得到的結果作為操作數的地址。這種方式常用于訪問程序存儲器ROM中的數據表格,即查表操作。變址尋址只能讀出程序內存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC A,@A+DPTR這條指令的功能是把DPTR和A的內容相加,再把所得到的程序存儲器地址單元的內容送A假若指令執行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數地址就是54H+3F21H=3F75H。如果3F75H單元中的內容是7FH,則執行這條指令后,累加器A中的內容就是7FH。 變址尋址的指令只有三條,分別如下:JMP @A+DPTRMOVC A,@A+DPTRMOVC A,@A+PC 第一條指令JMP @A+DPTR這是一條無條件轉移指令,這條指令的意思就是DPTR加上累加器A的內容做為一個16位的地址,執行JMP這條指令是,程序就轉移到A+DPTR指定的地址去執行。 第二、三條指令MOVC A,@A+DPTR和MOVC A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現詳細說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個16位的數據指針寄存器,按理,它們的尋址范圍都應是64K。我們在學習特殊功能寄存器時已知道,程序計數器PC是始終跟蹤著程序的執行的。也就是說,PC的值是隨程序的執行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數據指針,我們就可以給空上數據指針DPTR進行賦值。我們再看指令MOVC A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應可明白,MOVC A,@A+PC這條指令的尋址范圍其實就是只能在當前指令下256個地址單元。所在,這在我們實際應用中,可能就會有一個問題,如果我們需要查詢的數據表在256個地址單元之內,則可以用MOVC A,@A+PC這條指令進行查表操作,如果超過了256個單元,則不能用這條指令進行查表操作。剛才我們已說到,DPTR是一個數據指針,這個數據指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC A,@A+DPTR這條指令的尋址范圍達到64K。這就是這兩條指令在實際應用當中要注意的問題。 變址尋址方式是MCS-51單片機所獨有的一種尋址方式。 位尋址 80C51單片機有位處理功能,可以對數據位進行操作,因此就有相應的位尋址方式。所謂位尋址,就是對內部RAM或可位尋址的特殊功能寄存器SFR內的某個位,直接加以置位為1或復位為0。 位尋址的范圍,也就是哪些部份可以進行位尋址: 1、我們在第十二課學習51單片機的存儲器結構時,我們已知道在單片機的內部數據存儲器RAM的低128單元中有一個區域叫位尋址區。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學習中00H、01H。。。。7FH等等,所表示的都是一個字節(或者叫單元地址),而在這里,這些數據都變成了位地址。我們在指令中,或者在程序中如何來區分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現在正在研究的位尋址的一個重要問題。其實,區分這些數據是位地址還是單元地址,我們都有相應的指令形式的。這個問題我們在后面的指令系統學習中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關于專用寄存器的相關文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進行位尋址,當然并不是全部,大家在應用當中應引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態字PSW來進行說明 D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P 1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H MOV C,D5H 2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示 MOV C,F0 3、單元(字節)地址加位表示:D0H單元位5,表示為DOH.5 MOV C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5 MOV C,PSW.5 這四種方法實現的功能都是相同的,只是表述的方式不同而已。 例題: 1. 說明下列指令中源操作數采用的尋址方式。 MOV R5,R7 答案:寄存器尋址方式 MOV A,55H 直接尋址方式 MOV A,#55H 立即尋址方式 JMP @A+DPTR 變址尋址方式 MOV 30H,C 位尋址方式 MOV A,@R0 間接尋址方式 MOVX A,@R0 間接尋址方式 改錯題 請判斷下列的MCS-51單片機指令的書寫格式是否有錯,若有,請說明錯誤原因。 MOV R0,@R3 答案:間址寄存器不能使用R2~R7。 MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。 ADD R0,R1 運算指令中目的操作數必須為累加器A,不可為R0。 MUL AR0 乘法指令中的乘數應在B寄存器中,即乘法指令只可使用AB寄存器組合。
上傳時間: 2013-11-11
上傳用戶:caozhizhi