基于HT46R46E/HT46C46E經(jīng)濟(jì)A/D型八位單片機(jī) HT46R46E/HT46C46E 是8 位高性能精簡指令集單片機(jī),專門為需要A/D 轉(zhuǎn)換的產(chǎn)品而設(shè)計(jì),例如傳感器信號輸入。掩膜版本HT46C46E 與OTP 版本HT46R46E 引腳和功能完全相同。在HT46R46E/HT46C46E 封裝片里包含兩顆芯片:一顆是HT46R46E/HT46C46E 單片機(jī),另一顆是作為通用數(shù)據(jù)存儲器的128×8 位的EEPROM。這兩顆芯片邦定在一起封裝為HT46R46E/HT46C46E。
標(biāo)簽: 46 HT 經(jīng)濟(jì) 位單片機(jī)
上傳時(shí)間: 2013-10-31
上傳用戶:fdfadfs
Holtek指令集說明 注:由于資源大小問題,其中以下幾款MCU 只有62 條指令,其余均為63 條指令。HT48CA0/HT48RA0A 無RETI 指令HT48R05A-1 無TABRDL 指令
上傳時(shí)間: 2013-10-16
上傳用戶:txfyddz
NEC78K0/KF1用戶手冊 8位單片微控制器 本手冊適用于那些希望了解78K0/KF1產(chǎn)品功能,并設(shè)計(jì)開發(fā)相關(guān)應(yīng)用系統(tǒng)和程序的用戶。主要產(chǎn)品如下。78K0/KF1: μPD780143,780144,780146,780148,78F0148,780143(A),780144(A),780146(A),780148(A),78F0148(A),780143(A1),780144(A1),780146(A1),780148(A1),78F0148(A1),780143(A2),780144(A2),780146(A2)和780148(A2)
上傳時(shí)間: 2014-12-27
上傳用戶:魚哥哥你好
at91rm9200啟動過程教程 系統(tǒng)上電,檢測BMS,選擇系統(tǒng)的啟動方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個BOOTLOAER(準(zhǔn)確的說應(yīng)該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設(shè)置PLLB產(chǎn)生48M時(shí)鐘頻率提供給USB DEVICE。同時(shí)DEBUG USART也被初始化為48M的時(shí)鐘頻率; 2、相應(yīng)模式下的堆棧設(shè)置; 3、檢測主時(shí)鐘源(Main oscillator); 4、中斷控制器(AIC)的設(shè)置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認(rèn)為BOOT過程結(jié)束,接下來的就是LOADER的過程,或者也可以認(rèn)為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設(shè)備的開始地址處連續(xù)的存放的32個字節(jié),也就是8條指令必須是跳轉(zhuǎn)指令或者裝載PC的指令,其實(shí)這樣規(guī)定就是把這8條指令當(dāng)作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關(guān)于如何計(jì)算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當(dāng)BOOT程序完成了把合法的映像搬到SRAM的任務(wù)以后,接下來就進(jìn)行存儲器的REMAP,經(jīng)過REMAP之后,SRAM從映設(shè)前的0X200000地址處被映設(shè)到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時(shí)只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設(shè)備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準(zhǔn)備從外部載入映像。對DEBUG口的初始化包括設(shè)置參數(shù)115200 8 N 1以及運(yùn)行XMODEM協(xié)議。對USB DEVICE進(jìn)行初始化以及運(yùn)行DFU協(xié)議。現(xiàn)在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設(shè)然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時(shí)片外的FLASH的起始地址就是0X0了,接下來的過程和片內(nèi)啟動的過程是一樣的,只不過這時(shí)就需要自己寫啟動代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設(shè)計(jì)可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設(shè)計(jì)的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內(nèi)啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據(jù)自己的應(yīng)用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務(wù)也不錯,不但提供了片內(nèi)啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結(jié)構(gòu)與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設(shè)的驅(qū)動,是一個功能強(qiáng)大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網(wǎng)站下載。 我們知道,當(dāng)9200系統(tǒng)上電后,如果bms為高電平,則系統(tǒng)從片內(nèi)rom啟動,這時(shí)rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時(shí)我們打開超級終端會看到ccccc...。這說明系統(tǒng)已經(jīng)啟動,同時(shí)xmodem協(xié)議已經(jīng)啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個loder完成的功能主要是初始化時(shí)鐘,sdram和xmodem協(xié)議,為下載和啟動uboot做準(zhǔn)備。當(dāng)下載了loader.bin后,超級終端會繼續(xù)打印:ccccc....。這時(shí)我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內(nèi)存、flash、網(wǎng)絡(luò)、系統(tǒng)啟動等一些命令。 如果系統(tǒng)上電時(shí)bms為低電平,則系統(tǒng)從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內(nèi)rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經(jīng)啟動了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統(tǒng)復(fù)位,就可以看到系統(tǒng)先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環(huán)境,關(guān)于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項(xiàng)目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當(dāng)前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進(jìn)行解壓,除此之外,他和loader并無大的區(qū)別,你可以把boot理解為在loader的基礎(chǔ)上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質(zhì)不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。
上傳時(shí)間: 2013-10-27
上傳用戶:wsf950131
ARM指令集(2) 1.跳轉(zhuǎn)指令 在ARM中有兩種方式可以實(shí)現(xiàn)程序的跳轉(zhuǎn):一種是刀‘轉(zhuǎn)指令;另一種是直接向PC寄存器(R15)中寫入目標(biāo)地址值。 通過直接向PC寄存器中寫入目標(biāo)地址值可以實(shí)現(xiàn)在46B地址空間中任意跳轉(zhuǎn),這種跳轉(zhuǎn)指令又稱為長跳轉(zhuǎn)。如果在長跳轉(zhuǎn)指令之前使用MOV LR,PC等指令,則可以保存將來返回的地址值,這樣就實(shí)現(xiàn)了在46B地址空間中的子程序調(diào)用。 在ARM版本5及以上的體系中,實(shí)現(xiàn)了ARM指令集和Thumb指令集的混合使用。指令使用目標(biāo)地址值的bit[0]來確定目標(biāo)程序的類型。bit[0]的值為1時(shí),目標(biāo)程序?yàn)門humb指令;bit[0]值為0時(shí),目標(biāo)程序?yàn)锳RM指令。 在ARM版本5以前的體系中,傳送到PC寄存器中的目標(biāo)地址值的低兩位bits[1∶0]被忽略,跳轉(zhuǎn)指令只能在ARM指令集中執(zhí)行,即程序不能從ARM狀態(tài)切換到Thumb狀態(tài)。非T系列ARM版本5體系不含Thumb指令,當(dāng)程序試圖切換到Thumb狀態(tài)時(shí),將產(chǎn)生未定義指令異常中斷。 ARM跳轉(zhuǎn)指令可以從當(dāng)前指令向前或向后的32MB地址空間跳轉(zhuǎn)。這類跳轉(zhuǎn)指令有以下4種。
上傳時(shí)間: 2013-11-20
上傳用戶:妄想演繹師
arm指令集(1) ARM跳轉(zhuǎn)指令可以從當(dāng)前指令向前或向后的32MB地址空間跳轉(zhuǎn)。這類跳轉(zhuǎn)指令有以下4種。 (1)B 跳4專指令 B〔條件) (地址) B指令屬于ARM指令集,是最簡單的分支指令。一旦遇到一個B指令,ARM處理器將立即跳轉(zhuǎn)到給定的地址,從那里繼續(xù)執(zhí)行。注意:存儲在分支指令中的實(shí)際值是相對當(dāng)前R15的值的一個偏移量,而不是一個絕對地址。它的值由匯編器來計(jì)算,是24位有符號數(shù),左移兩位后有符號擴(kuò)展為32位,表示的有效偏移位為26位(+/- 32 MB)。 (2)BL 帶返回的跳轉(zhuǎn)指令 BI,〔條件) (地址) BL指令也屬于ARM指令集,是另一個分支指令。就在分支之前,在寄存器R14中裝載上R15的內(nèi)容,因此可以重新裝載R14到R15中來返回到這個分支之后的那個指令處執(zhí)行,它是子例程的一個基本但強(qiáng)力的實(shí)現(xiàn)。 (3)BLX 帶返回和狀態(tài)切換的跳轉(zhuǎn)指令 BLX <地址> BLX指令有兩種格式,第1種格式的BLX指令記作BLX(1)。BLX(1)從ARM指令集跳轉(zhuǎn)到指令中指定的目標(biāo)地址,并將程序狀態(tài)切換到Thumb狀態(tài),該指令同時(shí)將PC寄存器的內(nèi)容復(fù)制到LR寄存器中。 BLX(1)指令屬于無條件執(zhí)行的指令。 第2種格式的BLX指令記作BLX(2)。BLX(2)指令從ARM指令集跳轉(zhuǎn)到指令中指定的目標(biāo)地址,目標(biāo)地址的指令可以是ARM指令,也可以是Thumb指令。目標(biāo)地址放在指令中的寄存器<dest>中,該地址的bit[0]值為0,目標(biāo)地址處的指令類型由CPSR中的T位決定。該指令同時(shí)將PC寄存器的內(nèi)容復(fù)制到LR寄存器中。 (4)BX 帶狀態(tài)切換的跳轉(zhuǎn)指令 BX(條件) (dest) BX指令跳轉(zhuǎn)到指令中指定的目標(biāo)地址,目標(biāo)地址處的指令可以是ARM指令,也可以是Thumb指令。目標(biāo)地址值為指令的值和0xFl·FFFFFF做“與”操作的結(jié)果,目標(biāo)地址處的指令類型由寄存器決定。
上傳時(shí)間: 2014-12-27
上傳用戶:laomv123
1.1 微型計(jì)算機(jī)的組成及工作原理1.1.1 微型計(jì)算機(jī)中的基本概念1. 微處理器2. 微型計(jì)算機(jī) (1)單片微處理機(jī) (2)通用微型計(jì)算機(jī)3. 微型計(jì)算機(jī)系統(tǒng)1.1.2 微機(jī)基本結(jié)構(gòu) 微型計(jì)算機(jī)的基本組成如圖1.1所示,它由中央處理器(CPU)、存儲器(Memory)、輸入輸出接口(I/O接口)和系統(tǒng)總線(BUS)構(gòu)成。 1.1.3 微型計(jì)算機(jī)的基本工作過程 微型計(jì)算機(jī)的基本工作過程是執(zhí)行程序的過程,也就是CPU自動從程序存放的第1個存儲單元起,逐步取出指令、分析指令,并根據(jù)指令規(guī)定的操作類型和操作對象,執(zhí)行指令規(guī)定的相關(guān)操作。如此重復(fù),周而復(fù)始,直至執(zhí)行完程序的所有指令,從而實(shí)現(xiàn)程序的基本功能,這就是微型計(jì)算機(jī)的基本工作原理。 1.2 典型單片機(jī)產(chǎn)品簡介1.2.1 MCS-51單片機(jī)系列 MCS-51可分為兩個子系列和4種類型,如表1-1所示。按資源的配置數(shù)量,MCS-51系列分為51和52兩個子系列,其中51子系列是基本型,而52子系列屬于增強(qiáng)型。表1-1 MCS-51系列單片機(jī)分類
標(biāo)簽: 微型計(jì)算機(jī) 基礎(chǔ)知識
上傳時(shí)間: 2013-11-07
上傳用戶:debuchangshi
單片機(jī)原理及應(yīng)用教程:1.1 微型計(jì)算機(jī)的組成及工作原理1.1.1 微型計(jì)算機(jī)中的基本概念1. 微處理器2. 微型計(jì)算機(jī) (1)單片微處理機(jī) (2)通用微型計(jì)算機(jī)3. 微型計(jì)算機(jī)系統(tǒng)2.1 MCS—51系列單片機(jī)的結(jié)構(gòu)原理2.1.1 MCS-51單片機(jī)邏輯結(jié)構(gòu) MCS-51單片機(jī)的系統(tǒng)結(jié)構(gòu)框圖如圖2.1所示。 3.1 MCS-51單片機(jī)指令格式 一條匯編語言指令中最多包含4個區(qū)段,如下所示: 標(biāo)號:操作碼 目的操作數(shù),源操作數(shù) ;注釋 標(biāo)號與操作碼之間“:”隔開; 操作碼與操作數(shù)之間用“空格”隔開; 目的操作數(shù)和源源操作數(shù)之間有“,”分隔; 操作數(shù)與注釋之間用“;”隔開。 所謂程序設(shè)計(jì),就是按照給定的任務(wù)要求,編寫出完整的計(jì)算機(jī)程序。要完成同樣的任務(wù),使用的方法或程序并不是唯一的。因此,程序設(shè)計(jì)的質(zhì)量將直接影響到計(jì)算機(jī)系統(tǒng)的工作效率、運(yùn)行可靠性。 前面我們學(xué)過了匯編語言形式的指令系統(tǒng),本章重點(diǎn)介紹匯編語言程序結(jié)構(gòu)以及如何利用匯編語言指令進(jìn)行程序設(shè)計(jì)的方法。
標(biāo)簽: 單片機(jī)原理 應(yīng)用教程
上傳時(shí)間: 2013-10-09
上傳用戶:huannan88
TLC5510 是美國德州儀器公司生產(chǎn)的8位閃速結(jié)構(gòu)模數(shù)轉(zhuǎn)換器,采用CMOS 工藝制造,采樣速率高達(dá)20MSPS。廣泛用于數(shù)字TV、醫(yī)學(xué)圖像、視頻會議、高速數(shù)據(jù)轉(zhuǎn)換以及QAM解調(diào)器等方面。本文介紹了TLC5510 的性能指標(biāo)、引腳功能、內(nèi)部結(jié)構(gòu)和操作時(shí)序,給出了TLC5510 與MCS-51 單片微機(jī)的接口應(yīng)用電路設(shè)計(jì)、軟件設(shè)計(jì)及參考電壓的配置方法。
標(biāo)簽: 5510 TLC 閃速 AD轉(zhuǎn)換器
上傳時(shí)間: 2013-11-13
上傳用戶:wangzhen1990
P89LPC913 是一款單片封裝的微控制器適合于許多要求高集成度低成本的場合可以滿足多方面的性能要求P89LPC913 采用了高性能的處理器結(jié)構(gòu)指令執(zhí)行時(shí)間只需2 到4 個時(shí)鐘周期6 倍于標(biāo)準(zhǔn)80C51 器件P89LPC913 集成了許多系統(tǒng)級的功能這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本
上傳時(shí)間: 2013-11-19
上傳用戶:zhuimenghuadie
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1