有源功率因數(shù)校正可減少用電設(shè)備對電網(wǎng)的諧波污染,提高電器設(shè)備輸入端的功率因數(shù)。詳細分析了有源功率因數(shù)校正APFC(active power factor corrector)原理,采用平均電流控制模式控制原理,設(shè)計了基于UC3854BN芯片的一種有源功率因數(shù)校正電路方案,著重分析了電路主要參數(shù)的選擇和設(shè)計。實踐證明,采用APFC后,大大減小了輸入電流的諧波分量,實現(xiàn)了功率因數(shù)校正。
標簽: 開關(guān)電源 有源功率因數(shù) 校正電路 設(shè)計方案
上傳時間: 2013-10-21
上傳用戶:immanuel2006
該文介紹了填谷式無源功率因數(shù)校正( PFC)電路的工作原理及其在基于離線式電源開關(guān)IC的LED驅(qū)動器中的應(yīng)用。
標簽: PFC LED 無源 中的應(yīng)用
上傳時間: 2013-11-08
上傳用戶:84425894
什么叫光無源器件?光無源器件是一種不必借助外部的任何光或電的能量,由自身能夠完成某種光學功能的光學元器件,其工作原理遵守幾何光學理論和物理光學理論,各項技術(shù)指標、各種計算公式和各種測試方法與纖維光學和集成光學息息相關(guān)。
標簽: 無源器件
上傳時間: 2013-11-01
上傳用戶:BIBI
描述了三相電壓源型PWM整流器的工作原理,基于整流器網(wǎng)側(cè)電流矢量推導出同步旋轉(zhuǎn)坐標系下系統(tǒng)的數(shù)學模型,給出了一種電流前饋解耦控制算法。同時詳細介紹了基于電流前饋解耦的PWM整流器雙環(huán)控制系統(tǒng)設(shè)計方法。并且應(yīng)用TMS320LF2407A建立了PWM整流器的DSP數(shù)字化實驗系統(tǒng)。實驗結(jié)果表明,該整流器能獲得單位功率因數(shù)的正弦輸入電流、穩(wěn)定的直流輸出電壓和快速的動態(tài)響應(yīng)。
上傳時間: 2013-10-11
上傳用戶:asdfasdfd
《AVR單片機原理及應(yīng)用》詳細介紹了ATMEL公司開發(fā)的ATmega8系列高速嵌入式單片機的硬件結(jié)構(gòu)、工作原理、指令系統(tǒng)、接口電路、C編程實例,以及一些特殊功能的應(yīng)用和設(shè)計,對讀者掌握和使用其他ATmega8系列的單片機具有極高的參考價值 AVR單片機原理及應(yīng)用》具有較強的系統(tǒng)性和實用性,可作為有關(guān)工程技術(shù)人員和硬件工程師的應(yīng)用手冊,亦可作為高等院校自動化、計算機、儀器儀表、電子等專業(yè)的教學參考書。 目錄 第1章 緒論 1.1 AVR單片機的主要特性 1.2 主流單片機系列產(chǎn)品比較 1.2.1 ATMEL公司的單片機 1.2.2 Mkcochip公司的單片機 1.2.3 Cygnal公司的單片機 第2章 AVR系統(tǒng)結(jié)構(gòu)概況 2.1 AVR單片機ATmega8的總體結(jié)構(gòu) 2.1.1 ATmega8特點 2.1.2 結(jié)構(gòu)框圖 2.1.3 ATmega8單片機封裝與引腳 2.2 中央處理器 2.2.1 算術(shù)邏輯單元 2.2.2 指令執(zhí)行時序 2.2.3 復位和中斷處理 2.3 ATmega8存儲器 2.3.1 Flash程序存儲器 2.3.2 SRAM 2.3.3 E2pROM 2.3.4 I/O寄存器 2.3.5 ATmega8的鎖定位、熔絲位、標識位和校正位 2.4 系統(tǒng)時鐘及其分配 2.4.1 時鐘源 2.4.2 外部晶振 2.4.3 外部低頻石英晶振 2.4.4 外部:RC振蕩器 2.4.5 可校準內(nèi)部.RC振蕩器 2.4.6 外部時鐘源 2.4.7 異步定時器/計數(shù)器振蕩器 2.5 系統(tǒng)電源管理和休眠模式 2.5.1 MCU控制寄存器 2.5.2 空閑模式 2.5.3 ADC降噪模式 2.5.4 掉電模式 2.5.5 省電模式 2.5.6 等待模式 2.5.7 最小功耗 2.6 系統(tǒng)復位 2.6.1 復位源 2.6.2 MCU控制狀態(tài)寄存器——MCUCSR 2.6.3 內(nèi)部參考電壓源 2.7 I/O端口 2.7.1 通用數(shù)字I/O端口 2.7.2 數(shù)字輸入使能和休眠模式 2.7.3 端口的第二功能 第3章 ATmega8指令系統(tǒng) 3.1 ATmega8匯編指令格式 3.1.1 匯編語言源文件 3.1.2 指令系統(tǒng)中使用的符號 3.1.3 ATmega8指令 3.1.4 匯編器偽指令 3.1.5 表達式 3.1.6 文件“M8def.inc” 3.2 尋址方式和尋址空間 3.3 算術(shù)和邏輯指令 3.3.1 加法指令 3.3.2 減法指令 3.3.3 取反碼指令 3.3.4 取補碼指令 3.3.5 比較指令 3.3.6 邏輯與指令 3.3.7 邏輯或指令 3.3.8 邏輯異或 3.3.9 乘法指令 3.4 轉(zhuǎn)移指令 3.4.1 無條件轉(zhuǎn)移指令 3.4.2 條件轉(zhuǎn)移指令 3.4.3 子程序調(diào)用和返回指令 3.5 數(shù)據(jù)傳送指令 3.5.1 直接尋址數(shù)據(jù)傳送指令 3.5.2 間接尋址數(shù)據(jù)傳送指令 3.5.3 從程序存儲器中取數(shù)裝入寄存器指令 3.5.4 寫程序存儲器指令 3.5.5 I/0端口數(shù)據(jù)傳送 3.5.6 堆棧操作指令 3.6 位操作和位測試指令 3.6.1 帶進位邏輯操作指令 3.6.2 位變量傳送指令 3.6.3 位變量修改指令 3.7 MCU控制指令 3.8 指令的應(yīng)用 第4章 中斷系統(tǒng) 4.1 外部向量 4.2 外部中斷 4.3 中斷寄存器 第5章 自編程功能 5.1 引導加載技術(shù) 5.2 相關(guān)I/O寄存器 5.3 Flash程序存儲器的自編程 5.4 Flash自編程應(yīng)用 第6章 定時器/計數(shù)器 6.1 定時器/計數(shù)器預(yù)定比例分頻器 6.2 8位定時器/計數(shù)器O(T/CO) 6.3 16位定時器/計數(shù)器1(T/C1) 6.3.1 T/C1的結(jié)構(gòu) 6.3.2 T/C1的操作模式 6.3.3 T/121的計數(shù)時序 6.3.4 T/C1的寄存器 6.4 8位定時器/計數(shù)器2(T/C2) 6.4.1 T/C2的組成結(jié)構(gòu) 6.4.2 T/C2的操作模式 6.4.3 T/C2的計數(shù)時序 6.4.4 T/02的寄存器 6.4.5 T/C2的異步操作 6.5 看門狗定時器 第7章 AVR單片機通信接口 7.1 AVR單片機串行接口 7.1.1 同步串行接口 7.1.2 通用串行接口 7.2 兩線串行TWT總線接口 7.2.1 TWT模塊概述 7.2.2 TWT寄存器描述 7.2.3 TWT總線的使用 7.2.4 多主機系統(tǒng)和仲裁 第8章 AVR單片機A/D轉(zhuǎn)換及模擬比較器 8.1 A/D轉(zhuǎn)換 8.1.1 A/D轉(zhuǎn)換概述 8.1.2 ADC噪聲抑制器 8.1.3 ADC有關(guān)的寄存器 8.2 AvR單片機模擬比較器 第9章 系統(tǒng)擴展技術(shù) 9.1 串行接口8位LED顯示驅(qū)動器MAX7219 9.1.1 概述 9.1.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.1.3 操作說明 9.1.4 應(yīng)用 9.1.5 軟件設(shè)計 9.2 AT24C系列兩線串行總線E2PPOM 9.2.1 概述 9.2.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.2.3 操作說明 9.2.4 軟件設(shè)計 9.3 AT93C46——三線串行總線E2PPOM接口芯片 9.3.1 概述 9.3.2 內(nèi)部結(jié)構(gòu)及引腳功能 9.3.3 操作說明 9.3.4 軟件設(shè)計 9.4 串行12位的ADCTL543 9.4.1 概述 9.4.2 內(nèi)部結(jié)構(gòu)及引腳功能 9.4.3 操作說明 9.4.4 AD620放大器介紹 9.4.5 軟件設(shè)計 9.5 串行輸出16位ADCMAXl95 9.5.1 概述 9.5.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.5.3 操作說明 9.5.4 應(yīng)用 9.5.5 軟件設(shè)計 9.6 串行輸入DACTLC5615 9.6.1 概述 9.6.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.6.3 操作說明 9.6.4 軟件設(shè)計 9.7 串行12位的DACTLC5618 9.7.1 概述 9.7.2 內(nèi)部結(jié)構(gòu)及引腳功能 9.7.3 操作說明 9.7.4 軟件設(shè)計 9.8 串行非易失性靜態(tài)RAMX24C44 9.8.1 概述 9.8.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.8.3 操作說明 9.8.4 軟件設(shè)計 9.9 數(shù)據(jù)閃速存儲器AT45DB041B 9.9.1 概述 9.9.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.9.3 操作說明 9.9.4 軟件設(shè)計 9.10 GM8164串行I/0擴展芯片 9.10.1 概述 9.10.2 引腳功能說明 9.10.3 操作說明 9.10.4 軟件設(shè)計 9.11 接口綜合實例 附錄1 ICCACR簡介 附錄2 ATmega8指令表 參考文獻
上傳時間: 2013-10-29
上傳用戶:lanwei
單片機 控制 無刷電機:MLX90401 是Melexis 公司新開發(fā)的三相無刷直流電機控制器, 它具有很寬的工作電壓范圍(12~40V) ,同時內(nèi)置自舉電壓,可全部采用N溝道MOSFET,并具有欠壓鎖定功能;其片內(nèi)PWM振蕩器可通過控制下橋驅(qū)動來實現(xiàn)調(diào)速, 并具有正向和反向控制功能; 其BVDSS 大于60V; 因而可對60°/ 120°進行相位選擇。文中介紹了MLX90401 的基本特點、引腳分布、工作原理和典型應(yīng)用。 關(guān)鍵詞:直流電機; 控制; 驅(qū)動; MLX90401
上傳時間: 2013-10-20
上傳用戶:破曉sunshine
介紹一種基于單片機控制的數(shù)控直流電流源。系統(tǒng)以AT89S52單片機為控制核心,由V/I轉(zhuǎn)換電路、DA轉(zhuǎn)換、AD轉(zhuǎn)換等模塊組成。通過按鍵設(shè)定電流值,并在LCD上同步顯示預(yù)設(shè)值,利用模擬閉環(huán)控制原理實現(xiàn)V/I轉(zhuǎn)換功能,采樣電阻兩端的電壓值送給A/D轉(zhuǎn)換電路,經(jīng)單片機換算成實際輸出電流值,并利用LCD顯示,供用戶參考。經(jīng)測試,本系統(tǒng)穩(wěn)定性好、精度較高、操作簡單、人機界面友好。在科學研究和設(shè)備生產(chǎn)中,能夠廣泛應(yīng)用到這種可靠性高、操作簡單的數(shù)控電流源,不僅能夠提高設(shè)備的性能,同時能夠縮短研發(fā)周期,本系統(tǒng)具有較高的實用性。
標簽: 51單片機 多功能 數(shù)控 電流源設(shè)計
上傳時間: 2013-11-06
上傳用戶:csgcd001
在一些需要高頻分辨率、設(shè)置轉(zhuǎn)換度的應(yīng)用場合,直接數(shù)字頻率合成器(DDS)技術(shù)具有其他頻率合成方法無法比擬的優(yōu)勢。在介紹DDS的基本原理及其典型器件AD9858的結(jié)構(gòu)和功能的基礎(chǔ)上,詳細論述了采用單片機+CPLD來控制AD9858實現(xiàn)寬帶雷達信號源的設(shè)計過程。實際應(yīng)用證明,該系統(tǒng)設(shè)計分辨率高,轉(zhuǎn)換速度快,在窄帶時無雜散動態(tài)范圍SFDR優(yōu)于75 dBc,寬帶無雜散動態(tài)范圍SFDR優(yōu)于55 dBC。
上傳時間: 2014-12-27
上傳用戶:ming52900
P87LPC767 OTP 單片機原理 P87LPC767 是20 腳封裝的單片機適合于許多要求高集成度低成本的場合可以滿足許多方面的性能要求作為Philips 小型封裝系列中的一員P87LPC767 提供高速和低速的晶振和RC 振蕩方式可編程選擇具有較寬的操作電壓范圍可編程I/O 口線輸出模式選擇可選擇施密特觸發(fā)輸入LED 驅(qū)動輸出有內(nèi)部看門狗定時器P87LPC767 采用80C51 加速處理器結(jié)構(gòu)指令執(zhí)行速度是標準80C51 MCU 的兩倍特性 操作頻率為20MHz 時除乘法和除法指令外加速80C51 指令執(zhí)行時間為300600ns VDD=4.5 5.5V 時時鐘頻率可達20MHz VDD=2.7 4.5V 時時鐘頻率最大為10MHz 4 通道多路8 位A/D 轉(zhuǎn)換器在振蕩器頻率fosc=20MHz 時轉(zhuǎn)換時間為9.3μs 用于數(shù)字功能時操作電壓范圍為2.7 6.0V 4K 字節(jié)OTP 程序存儲器128 字節(jié)的RAM 32Byte 用戶代碼區(qū)可用來存放序列碼及設(shè)置參數(shù) 2 個16 位定時/計數(shù)器每一個定時器均可設(shè)置為溢出時觸發(fā)相應(yīng)端口輸出 內(nèi)含 2 個模擬比較器 全雙工通用異步接收/發(fā)送器UART 及I2C 通信接口 八個鍵盤中斷輸入另加2 路外部中斷輸入 4 個中斷優(yōu)先級 看門狗定時器利用片內(nèi)獨立振蕩器,無需外接元件,看門狗定時器溢出時間有8 種選擇 低電平復位使用片內(nèi)上電復位時不需要外接元件 低電壓復位選擇預(yù)設(shè)的兩種電壓之一復位可在掉電時使系統(tǒng)安全關(guān)閉也可將其設(shè)置為一個中斷源 振蕩器失效檢測看門狗定時器具有獨立的片內(nèi)振蕩器因此它可用于振蕩器的失效檢測 可配置的片內(nèi)振蕩器及其頻率范圍和RC 振蕩器選項(用戶通過對EPROM 位編程選擇) 選擇RC 振蕩器時不需外接振蕩器件 可編程 I/O 口輸出模式準雙向口,開漏輸出,上拉和只有輸入功能可選擇施密特觸發(fā)輸入 所有口線均有20mA 的驅(qū)動能力 可控制口線輸出轉(zhuǎn)換速度以降低EMI,輸出最小上升時間約為10ns 最少 15 個I/O 口,選擇片內(nèi)振蕩和片內(nèi)復位時可多達18 個I/O 口 如果選擇片內(nèi)振蕩及復位時,P87LPC767 僅需要連接電源線和地線 串行 EPROM 編程允許在線編程2 位EPROM 安全碼可防止程序被讀出 空閑和掉電兩種省電模式提供從掉電模式中喚醒功能低電平中斷輸入啟動運行典型的掉電電流為1μA 低功耗 4MHz-20MHz,1.7-10mA@3.3v 100KHz-4MHz,0.044-1.7mA@3.3v 20KHz-100KHz,9-44μA@3.3v 20 腳DIP 和SO 封裝
上傳時間: 2013-11-06
上傳用戶:xcy122677
單片機指令系統(tǒng)原理 51單片機的尋址方式 學習匯編程序設(shè)計,要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運算碼找操作數(shù)的方法。在我們學習的8051單片機中,有6種尋址方法,下面我們將逐一進行分析。 立即尋址 在這種尋址方式中,指令多是雙字節(jié)的,一般第一個字節(jié)是操作碼,第二個字節(jié)是操作數(shù)。該操作數(shù)直接參與操作,所以又稱立即數(shù),有“#”號表示。立即數(shù)就是存放在程序存儲器中的常數(shù),換句話說就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。 例如:MOV A,#3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能是把立即數(shù)3AH送入累加器A中。MOV DPTR,#8200H在前面學單片機的專用寄存器時,我們已學過,DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組成。這條指令的意思就是把立即數(shù)的高8位(即82H)送入DPH寄存器,把立即數(shù)的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機的指令系統(tǒng)中,僅有一條指令的操作數(shù)是16位的立即數(shù),其功能是向地址指針DPTR傳送16位的地址,即把立即數(shù)的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數(shù)直接以單元地址的形式給出,也就是在這種尋址方式中,操作數(shù)項給出的是參加運算的操作數(shù)的地址,而不是操作數(shù)。例如:MOV A,30H 這條指令中操作數(shù)就在30H單元中,也就是30H是操作數(shù)的地址,并非操作數(shù)。 在80C51單片機中,直接地址只能用來表示特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲器以及位地址空間,具體的說就是:1、內(nèi)部數(shù)據(jù)存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區(qū)。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV IE,#85H 前面的學習我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV IE,#85H 的形式表述,也可以MOV 80H,#85H的形式表述。 關(guān)于數(shù)據(jù)存儲器RAM的內(nèi)部情況,請查看我們課程的第十二課。 直接尋址是唯一能訪問特殊功能寄存器的尋址方式! 大家來分析下面幾條指令:MOV 65H,A ;將A的內(nèi)容送入內(nèi)部RAM的65H單元地址中MOV A,direct ;將直接地址單元的內(nèi)容送入A中MOV direct,direct;將直接地址單元的內(nèi)容送直接地址單元MOV IE,#85H ;將立即數(shù)85H送入中斷允許寄存器IE 前面我們已學過,數(shù)據(jù)前面加了“#”的,表示后面的數(shù)是立即數(shù)(如#85H,就表示85H就是一個立即數(shù)),數(shù)據(jù)前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當前寄存器組(工作寄存器組的選擇在前面專用寄存器的學習中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態(tài)設(shè)置,來進行對當前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC R3這條指令的意思是把寄存器R3中的內(nèi)容加1 從前面的學習中我產(chǎn)應(yīng)可以理解到,其實寄存器尋址方式就是對由PSW程序狀態(tài)字確定的工作寄存器組的R0-R7進行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機規(guī)定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內(nèi)部或外部數(shù)據(jù)存儲器的256個單元。為什么會是256個單元呢?我們知道,R0或者R1都是一個8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV R0,#30H ;將值30H加載到R0中 MOV A,@R0 ;把內(nèi)部RAM地址30H內(nèi)的值放到累加器A中 MOVX A,@R0 ;把外部RAM地址30H內(nèi)的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數(shù)據(jù)存儲器時,我們通常就用DPTR做為間址寄存器。例:MOV DPTR,#1234H ;將DPTR值設(shè)為1234H(16位) MOVX A,@DPTR ;將外部RAM或I/O地址1234H內(nèi)的值放到累加器A中 在執(zhí)行PUSH(壓棧)和POP(出棧)指令時,采用堆棧指針SP作寄存器間接尋址。例:PUSH 30H ;把內(nèi)部RAM地址30H內(nèi)的值放到堆棧區(qū)中堆棧區(qū)是由SP寄存器指定的,如果執(zhí)行上面這條命令前,SP為60H,命令執(zhí)行后會把內(nèi)部RAM地址30H內(nèi)的值放到RAM的61H內(nèi)。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,R0、R1、DPTR、SP 寄存器間接尋址范圍總結(jié):1、內(nèi)部RAM低128單元。對內(nèi)部RAM低128單元的間接尋址,應(yīng)使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應(yīng)使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內(nèi)容送入累加器A中。外部RAM的低256單元是一個特殊的尋址區(qū),除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內(nèi)容送入累加器A。 堆棧操作指令(PUSH和POP)也應(yīng)算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內(nèi)容相加,所得到的結(jié)果作為操作數(shù)的地址。這種方式常用于訪問程序存儲器ROM中的數(shù)據(jù)表格,即查表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC A,@A+DPTR這條指令的功能是把DPTR和A的內(nèi)容相加,再把所得到的程序存儲器地址單元的內(nèi)容送A假若指令執(zhí)行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數(shù)地址就是54H+3F21H=3F75H。如果3F75H單元中的內(nèi)容是7FH,則執(zhí)行這條指令后,累加器A中的內(nèi)容就是7FH。 變址尋址的指令只有三條,分別如下:JMP @A+DPTRMOVC A,@A+DPTRMOVC A,@A+PC 第一條指令JMP @A+DPTR這是一條無條件轉(zhuǎn)移指令,這條指令的意思就是DPTR加上累加器A的內(nèi)容做為一個16位的地址,執(zhí)行JMP這條指令是,程序就轉(zhuǎn)移到A+DPTR指定的地址去執(zhí)行。 第二、三條指令MOVC A,@A+DPTR和MOVC A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現(xiàn)詳細說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個16位的數(shù)據(jù)指針寄存器,按理,它們的尋址范圍都應(yīng)是64K。我們在學習特殊功能寄存器時已知道,程序計數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說,PC的值是隨程序的執(zhí)行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進行賦值。我們再看指令MOVC A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應(yīng)可明白,MOVC A,@A+PC這條指令的尋址范圍其實就是只能在當前指令下256個地址單元。所在,這在我們實際應(yīng)用中,可能就會有一個問題,如果我們需要查詢的數(shù)據(jù)表在256個地址單元之內(nèi),則可以用MOVC A,@A+PC這條指令進行查表操作,如果超過了256個單元,則不能用這條指令進行查表操作。剛才我們已說到,DPTR是一個數(shù)據(jù)指針,這個數(shù)據(jù)指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC A,@A+DPTR這條指令的尋址范圍達到64K。這就是這兩條指令在實際應(yīng)用當中要注意的問題。 變址尋址方式是MCS-51單片機所獨有的一種尋址方式。 位尋址 80C51單片機有位處理功能,可以對數(shù)據(jù)位進行操作,因此就有相應(yīng)的位尋址方式。所謂位尋址,就是對內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個位,直接加以置位為1或復位為0。 位尋址的范圍,也就是哪些部份可以進行位尋址: 1、我們在第十二課學習51單片機的存儲器結(jié)構(gòu)時,我們已知道在單片機的內(nèi)部數(shù)據(jù)存儲器RAM的低128單元中有一個區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區(qū)共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學習中00H、01H。。。。7FH等等,所表示的都是一個字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們在指令中,或者在程序中如何來區(qū)分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現(xiàn)在正在研究的位尋址的一個重要問題。其實,區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應(yīng)的指令形式的。這個問題我們在后面的指令系統(tǒng)學習中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關(guān)于專用寄存器的相關(guān)文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進行位尋址,當然并不是全部,大家在應(yīng)用當中應(yīng)引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態(tài)字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,F(xiàn)0 3、單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5 MOV C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5 MOV C,PSW.5 這四種方法實現(xiàn)的功能都是相同的,只是表述的方式不同而已。 例題: 1. 說明下列指令中源操作數(shù)采用的尋址方式。 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 運算指令中目的操作數(shù)必須為累加器A,不可為R0。 MUL AR0 乘法指令中的乘數(shù)應(yīng)在B寄存器中,即乘法指令只可使用AB寄存器組合。
標簽: 單片機指令 系統(tǒng)原理
上傳時間: 2013-11-11
上傳用戶:caozhizhi
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1