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時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應(yīng)模式下的堆棧設(shè)置; 3、檢測主時鐘源(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)于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當(dāng)BOOT程序完成了把合法的映像搬到SRAM的任務(wù)以后,接下來就進(jìn)行存儲器的REMAP,經(jīng)過REMAP之后,SRAM從映設(shè)前的0X200000地址處被映設(shè)到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時只能在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啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內(nèi)啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設(shè)計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設(shè)計的大,所以這里編寫的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啟動,這時rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時我們打開超級終端會看到ccccc...。這說明系統(tǒng)已經(jīng)啟動,同時xmodem協(xié)議已經(jīng)啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協(xié)議,為下載和啟動uboot做準(zhǔn)備。當(dāng)下載了loader.bin后,超級終端會繼續(xù)打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內(nèi)存、flash、網(wǎng)絡(luò)、系統(tǒng)啟動等一些命令。 如果系統(tǒng)上電時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。
上傳時間: 2013-10-27
上傳用戶:wsf950131
關(guān)于PCB封裝的資料收集整理. 大的來說,元件有插裝和貼裝.零件封裝是指實(shí)際零件焊接到電路板時所指示的外觀和焊點(diǎn)的位置。是純粹的空間概念.因此不同的元件可共用同一零件封裝,同種元件也可有不同的零件封裝。像電阻,有傳統(tǒng)的針插式,這種元件體積較大,電路板必須鉆孔才能安置元件,完成鉆孔后,插入元件,再過錫爐或噴錫(也可手焊),成本較高,較新的設(shè)計都是采用體積小的表面貼片式元件(SMD)這種元件不必鉆孔,用鋼膜將半熔狀錫膏倒入電路板,再把SMD 元件放上,即可焊接在電路板上了。晶體管是我們常用的的元件之一,在DEVICE。LIB庫中,簡簡單單的只有NPN與PNP之分,但實(shí)際上,如果它是NPN的2N3055那它有可能是鐵殼子的TO—3,如果它是NPN的2N3054,則有可能是鐵殼的TO-66或TO-5,而學(xué)用的CS9013,有TO-92A,TO-92B,還有TO-5,TO-46,TO-52等等,千變?nèi)f化。還有一個就是電阻,在DEVICE 庫中,它也是簡單地把它們稱為RES1 和RES2,不管它是100Ω 還是470KΩ都一樣,對電路板而言,它與歐姆數(shù)根本不相關(guān),完全是按該電阻的功率數(shù)來決定的我們選用的1/4W 和甚至1/2W 的電阻,都可以用AXIAL0.3 元件封裝,而功率數(shù)大一點(diǎn)的話,可用AXIAL0.4,AXIAL0.5等等。現(xiàn)將常用的元件封裝整理如下:電阻類及無極性雙端元件:AXIAL0.3-AXIAL1.0無極性電容:RAD0.1-RAD0.4有極性電容:RB.2/.4-RB.5/1.0二極管:DIODE0.4及DIODE0.7石英晶體振蕩器:XTAL1晶體管、FET、UJT:TO-xxx(TO-3,TO-5)可變電阻(POT1、POT2):VR1-VR5這些常用的元件封裝,大家最好能把它背下來,這些元件封裝,大家可以把它拆分成兩部分來記如電阻AXIAL0.3 可拆成AXIAL 和0.3,AXIAL 翻譯成中文就是軸狀的,0.3 則是該電阻在印刷電路板上的焊盤間的距離也就是300mil(因?yàn)樵陔姍C(jī)領(lǐng)域里,是以英制單位為主的。同樣的,對于無極性的電容,RAD0.1-RAD0.4也是一樣;對有極性的電容如電解電容,其封裝為RB.2/.4,RB.3/.6 等,其中“.2”為焊盤間距,“.4”為電容圓筒的外徑。對于晶體管,那就直接看它的外形及功率,大功率的晶體管,就用TO—3,中功率的晶體管,如果是扁平的,就用TO-220,如果是金屬殼的,就用TO-66,小功率的晶體管,就用TO-5,TO-46,TO-92A等都可以,反正它的管腳也長,彎一下也可以。對于常用的集成IC電路,有DIPxx,就是雙列直插的元件封裝,DIP8就是雙排,每排有4個引腳,兩排間距離是300mil,焊盤間的距離是100mil。SIPxx 就是單排的封裝。等等。值得我們注意的是晶體管與可變電阻,它們的包裝才是最令人頭痛的,同樣的包裝,其管腳可不一定一樣。例如,對于TO-92B之類的包裝,通常是1 腳為E(發(fā)射極),而2 腳有可能是B 極(基極),也可能是C(集電極);同樣的,3腳有可能是C,也有可能是B,具體是那個,只有拿到了元件才能確定。因此,電路軟件不敢硬性定義焊盤名稱(管腳名稱),同樣的,場效應(yīng)管,MOS 管也可以用跟晶體管一樣的封裝,它可以通用于三個引腳的元件。Q1-B,在PCB 里,加載這種網(wǎng)絡(luò)表的時候,就會找不到節(jié)點(diǎn)(對不上)。在可變電阻
上傳時間: 2013-11-03
上傳用戶:daguogai
Keil C51使用詳解Keil C51 是美國Keil Software 公司出品的51 系列兼容單片機(jī)C 語言軟件開發(fā)系統(tǒng),與匯編相比,C 語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C 來開發(fā),體會更加深刻。Keil C51 軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細(xì)介紹 Keil C51 開發(fā)系統(tǒng)各部分功能和使用。第二節(jié) Keil C51 單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)C51 工具包的整體結(jié)構(gòu),如圖(1)所示,其中uVision 與Ishell 分別是C51 forWindows 和for Dos 的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE 本身或其它編輯器編輯C 或匯編源文件。然后分別由C51 及A51 編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51 創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51 連接定位生成絕對目標(biāo)文件(.ABS)。ABS 文件由OH51 轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex 文件,以供調(diào)試器dScope51 或tScope51 使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM 中。圖(1) C51 工具包整體結(jié)構(gòu)圖第三節(jié) Keil C51 工具包的安裝81. C51 for Dos在 Windows 下直接運(yùn)行軟件包中DOS\C51DOS.exe 然后選擇安裝目錄即可。完畢后欲使系統(tǒng)正常工作須進(jìn)行以下操作(設(shè)C:\C51 為安裝目錄):修改 Autoexec.bat,加入path=C:\C51\BinSet C51LIB=C:\C51\LIBSet C51INC=C:\C51\INC然后運(yùn)行Autoexec.bat2. C51 for Windows 的安裝及注意事項(xiàng):在 Windows 下運(yùn)行軟件包中WIN\Setup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設(shè)置最簡單(設(shè)安裝于C:\C51 目錄下)。然后將軟件包中crack 目錄中的文件拷入C:\C51\Bin 目錄下。第四節(jié) Keil C51 工具包各部分功能及使用簡介1. C51 與A51(1) C51C51 是C 語言編譯器,其使用方法為:C51 sourcefile[編譯控制指令]或者 C51 @ commandfile其中 sourcefile 為C 源文件(.C)。大量的編譯控制指令完成C51 編譯器的全部功能。包控C51 輸出文件C.LST,.OBJ,.I 和.SRC 文件的控制。源文件(.C)的控制等,詳見第五部分的具體介紹。而 Commandfile 為一個連接控制文件其內(nèi)容包括:.C 源文件及各編譯控制指令,它沒有固定的名字,開發(fā)人員可根據(jù)自己的習(xí)慣指定,它適于用控制指令較多的場合。(2) A51A51 是匯編語言編譯器,使用方法為:9A51 sourcefile[編譯控制指令]或 A51 @ commandfile其中sourcefile 為匯編源文件(.asm或.a51),而編譯控制指令的使用與其它匯編如ASM語言類似,可參考其他匯編語言材料。Commandfile 同C51 中的Commandfile 類似,它使A51 使用和修改方便。2. L51 和BL51(1) L51L51 是Keil C51 軟件包提供的連接/定位器,其功能是將編譯生成的OBJ 文件與庫文件連接定位生成絕對目標(biāo)文件(.ABS),其使用方法為:L51 目標(biāo)文件列表[庫文件列表] [to outputfile] [連接控制指令]或 L51 @Commandfile源程序的多個模塊分別經(jīng) C51 與A51 編譯后生成多個OBJ 文件,連接時,這些文件全列于目標(biāo)文件列表中,作為輸入文件,如果還需與庫文件(.LiB)相連接,則庫文件也必須列在其后。outputfile 為輸文件名,缺少時為第一模塊名,后綴為.ABS。連接控制指令提供了連接定位時的所有控制功能。Commandfile 為連接控制文件,其具體內(nèi)容是包括了目標(biāo)文件列表,庫文件列表及輸出文件、連接控制命令,以取代第一種繁瑣的格式,由于目標(biāo)模塊庫文件大多不止1 個,因而第2 種方法較多見,這個文件名字也可由使用者隨意指定。(2) Bl51BL51 也是C51 軟件包的連接/定位器,其具有L51 的所有功能,此外它還具有以下3 點(diǎn)特別之處:a. 可以連接定位大于64kBytes 的程序。b. 具有代碼域及域切換功能(CodeBanking & Bank Switching)c. 可用于RTX51 操作系統(tǒng)RTX51 是一個實(shí)時多任務(wù)操作系統(tǒng),它改變了傳統(tǒng)的編程模式,甚至不必用main( )函數(shù),單片機(jī)系統(tǒng)軟件向RTOS 發(fā)展是一種趨勢,這種趨勢對于186 和38610及68K 系列CPU 更為明顯和必須,對8051 因CPU 較為簡單,程序結(jié)構(gòu)等都不太復(fù)雜,RTX51 作用顯得不太突出,其專業(yè)版軟件PK51 軟件包甚至不包括RTX51Full,而只有一個RTX51TINY 版本的RTOS。RTX51 TINY 適用于無外部RAM 的單片機(jī)系統(tǒng),因而可用面很窄,在本文中不作介紹。Bank switching 技術(shù)因使用很少也不作介紹。3. DScope51,Tscope51 及Monitor51(1) dScope51dScope51 是一個源級調(diào)試器和模擬器,它可以調(diào)試由C51 編譯器、A51 匯編器、PL/M-51 編譯器及ASM-51 匯編器產(chǎn)生的程序。它不需目標(biāo)板(for windows 也可通過mon51 接目標(biāo)板),只能進(jìn)行軟件模擬,但其功能強(qiáng)大,可模擬CPU 及其外圍器件,如內(nèi)部串口,外部I/O 及定時器等,能對嵌入式軟件功能進(jìn)行有效測試。
上傳時間: 2013-11-01
上傳用戶:zhouxuepeng1
基于單片機(jī)的步進(jìn)電機(jī)開環(huán)控制系統(tǒng):通過ATMEL89C51單片機(jī)對步進(jìn)電機(jī)進(jìn)行控制,主要介紹了步進(jìn)電機(jī)控制器、驅(qū)動電路和LED顯示電路的設(shè)計,實(shí)現(xiàn)了步進(jìn)電機(jī)的開環(huán)控制。在步進(jìn)電機(jī)控制器的設(shè)計中,重點(diǎn)闡述了脈沖產(chǎn)生電路以及對速度的控制。該系統(tǒng)具有成本低、控制方便的特點(diǎn)。關(guān)鍵詞: 單片機(jī); 步進(jìn)電機(jī); 開環(huán)控制 Abstract: The design using ATMEL89C51 single chip to control the step2motor with its controller, driving circuit and LED disp lay circuit to realize step motor open2loop controlwere introduced. For the controller in this design,the circuit to p roduce pulse and the speed controlwere expatiated emphatically. This system possesses features of lower cost, easier control.Key words: single ch ip; step2motor; open2loop con trol
標(biāo)簽: 單片機(jī) 步進(jìn)電機(jī) 開環(huán) 控制系統(tǒng)
上傳時間: 2013-10-13
上傳用戶:cicizoe
基于單片機(jī)的LED漢字顯示屏設(shè)計與制作:在大型商場、車站、碼頭、地鐵站以及各類辦事窗口等越來越多的場所需要用LED點(diǎn)陣顯示圖形和漢字。LED行業(yè)已成為一個快速發(fā)展的新興產(chǎn)業(yè),市場空間巨大,前景廣闊。隨著信息產(chǎn)業(yè)的高速發(fā)展,LED顯示作為信息傳播的一種重要手段,已廣泛應(yīng)用于室內(nèi)外需要進(jìn)行服務(wù)內(nèi)容和服務(wù)宗旨宣傳的公眾場所,例如戶內(nèi)外公共場所廣告宣傳、機(jī)場車站旅客引導(dǎo)信息、公交車輛報站系統(tǒng)、證券與銀行信息顯示、餐館報價信息豆示、高速公路可變情報板、體育場館比賽轉(zhuǎn)播、樓宇燈飾、交通信號燈、景觀照明等。顯然,LED顯示已成為城市亮化、現(xiàn)代化和信息化社會的一個重要標(biāo)志。 本文基于單片機(jī)(AT89C51)講述了16×16 LED漢字點(diǎn)陣顯示的基本原理、硬件組成與設(shè)計、程序編譯與下載等基本環(huán)節(jié)和相關(guān)技術(shù)。2 硬件電路組成及工作原理本產(chǎn)品擬采用以AT89C51單片機(jī)為核心芯片的電路來實(shí)現(xiàn),主要由AT89C51芯片、時鐘電路、復(fù)位電路、列掃描驅(qū)動電路(74HC154)、16×16 LED點(diǎn)陣5部分組成,如圖1所示。 其中,AT89C51是一種帶4 kB閃爍可編程可擦除只讀存儲器(Falsh Programmable and Erasable Read OnlyMemory,F(xiàn)PEROM)的低電壓、高性能CMOS型8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,能夠進(jìn)行1 000次寫/擦循環(huán),數(shù)據(jù)保留時間為10年。他是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。因此,在智能化電子設(shè)計與制作過程中經(jīng)常用到AT89C51芯片。時鐘電路由AT89C51的18,19腳的時鐘端(XTALl及XTAL2)以及12 MHz晶振X1、電容C2,C3組成,采用片內(nèi)振蕩方式。復(fù)位電路采用簡易的上電復(fù)位電路,主要由電阻R1,R2,電容C1,開關(guān)K1組成,分別接至AT89C51的RST復(fù)位輸入端。LED點(diǎn)陣顯示屏采用16×16共256個象素的點(diǎn)陣,通過萬用表檢測發(fā)光二極管的方法測試判斷出該點(diǎn)陣的引腳分布,如圖2所示。 我們把行列總線接在單片機(jī)的IO口,然后把上面分析到的掃描代碼送人總線,就可以得到顯示的漢字了。但是若將LED點(diǎn)陣的行列端口全部直接接入89S51單片機(jī),則需要使用32條IO口,這樣會造成IO資源的耗盡,系統(tǒng)也再無擴(kuò)充的余地。因此,我們在實(shí)際應(yīng)用中只是將LED點(diǎn)陣的16條行線直接接在P0口和P2口,至于列選掃描信號則是由4-16線譯碼器74HC154來選擇控制,這樣一來列選控制只使用了單片機(jī)的4個IO口,節(jié)約了很多IO資源,為單片機(jī)系統(tǒng)擴(kuò)充使用功能提供了條件。考慮到P0口必需設(shè)置上拉電阻,我們采用4.7 kΩ排電阻作為上拉電阻。
標(biāo)簽: LED 單片機(jī) 漢字 顯示屏設(shè)計
上傳時間: 2013-10-16
上傳用戶:ywcftc277
離散傅里葉變換,(DFT)Direct Fouriet Transformer(PPT課件) 一、序列分類對一個序列長度未加以任何限制,則一個序列可分為: 無限長序列:n=-∞~∞或n=0~∞或n=-∞~ 0 有限長序列:0≤n≤N-1有限長序列在數(shù)字信號處理是很重要的一種序列。由于計算機(jī)容量的限制,只能對過程進(jìn)行逐段分析。二、DFT引入由于有限長序列,引入DFT(離散付里葉變換)。DFT它是反映了“有限長”這一特點(diǎn)的一種有用工具。DFT變換除了作為有限長序列的一種付里葉表示,在理論上重要之外,而且由于存在著計算機(jī)DFT的有效快速算法--FFT,因而使離散付里葉變換(DFT)得以實(shí)現(xiàn),它使DFT在各種數(shù)字信號處理的算法中起著核心的作用。三、本章主要討論離散付里葉變換的推導(dǎo)離散付里葉變換的有關(guān)性質(zhì)離散付里葉變換逼近連續(xù)時間信號的問題第二節(jié)付里葉變換的幾種形式傅 里 葉 變 換 : 建 立 以 時 間 t 為 自 變 量 的 “ 信 號 ” 與 以 頻 率 f為 自 變 量 的 “ 頻 率 函 數(shù) ”(頻譜) 之 間 的 某 種 變 換 關(guān) 系 . 所 以 “ 時 間 ” 或 “ 頻 率 ” 取 連 續(xù) 還 是 離 散 值 , 就 形 成 各 種 不 同 形 式 的 傅 里 葉 變 換 對 。, 在 深 入 討 論 離 散 傅 里 葉 變 換 D F T 之 前 , 先 概 述 四種 不 同 形式 的 傅 里 葉 變 換 對 . 一、四種不同傅里葉變換對傅 里 葉 級 數(shù)(FS):連 續(xù) 時 間 , 離 散 頻 率 的 傅 里 葉 變 換 。連 續(xù) 傅 里 葉 變 換(FT):連 續(xù) 時 間 , 連 續(xù) 頻 率 的 傅 里 葉 變 換 。序 列 的 傅 里 葉 變 換(DTFT):離 散 時 間 , 連 續(xù) 頻 率 的 傅 里 葉 變 換.離 散 傅 里 葉 變 換(DFT):離 散 時 間 , 離 散 頻 率 的 傅 里 葉 變 換1.傅 里 葉 級 數(shù)(FS)周期連續(xù)時間信號 非周期離散頻譜密度函數(shù)。 周期為Tp的周期性連續(xù)時間函數(shù) x(t) 可展成傅里葉級數(shù)X(jkΩ0) ,是離散非周期性頻譜 , 表 示為:例子通過以下 變 換 對 可 以 看 出 時 域 的 連 續(xù) 函 數(shù) 造 成 頻 域 是 非 周 期 的 頻 譜 函 數(shù) , 而 頻 域 的 離 散 頻 譜 就 與 時 域 的 周 期 時 間 函 數(shù) 對 應(yīng) . (頻域采樣,時域周期延 拓)2.連 續(xù) 傅 里 葉 變 換(FT)非周期連續(xù)時間信號通過連續(xù)付里葉變換(FT)得到非周期連續(xù)頻譜密度函數(shù)。
標(biāo)簽: Fouriet Direct DFT Tr
上傳時間: 2013-11-19
上傳用戶:fujiura
所學(xué)的指令LD、LDI、OUT AND、ANI OR、 ORI LDP、 LDF、ANDP、ANDF、 ORP、 ORF ORB、 ANB MPS、 MRD、 MPP MC、 MCRSET RSTNOP END 自鎖電路觸點(diǎn)的動作發(fā)光二極管的工作原理。八段碼顯示是利用發(fā)光二極管的不同段碼組合來實(shí)現(xiàn)的,它可以實(shí)現(xiàn)0到F的顯示。搶答器的顯示就是利用八段碼顯示的特性,來完成幾個不同組別的顯示。用PLC實(shí)現(xiàn)八段碼顯示0~9組的3組以上搶答器的程序編寫,并完成以下要求:1)設(shè)計由PLC實(shí)現(xiàn)的八段碼顯示0~9組的3組以上搶答器的程序編寫,并完成以下要求: ①列出PLC的輸入輸出地址分配表 ②畫出PLC的輸入輸出接線圖(即I/O接線圖) ③設(shè)計PLC的梯形圖 ④根據(jù)梯形圖列寫指令表 2)按PLC控制I/O口(輸入/輸出)接線圖在模擬實(shí)驗(yàn)設(shè)備上正確接線。
上傳時間: 2013-11-22
上傳用戶:lmeeworm
介紹用PIC16F84單片機(jī)制作的電子密碼鎖。PIC16F84單片機(jī)共18個引腳,13個可用I/O接口。芯片內(nèi)有1K×14的FLASHROM程序存儲器,36×8的靜態(tài)RAM的通用寄存器,64×8的EEPROM的數(shù)據(jù)存儲器,8級深度的硬堆棧。 用PIC單片機(jī)設(shè)計的電子密碼鎖微芯公司生產(chǎn)的PIC8位COMS單片機(jī),采用類RISC指令集和哈弗總線結(jié)構(gòu),以及先進(jìn)的流水線時序,與傳統(tǒng)51單片機(jī)相比其在速度和性能方面更具優(yōu)越性和先進(jìn)性。PIC單片機(jī)的另一個優(yōu)點(diǎn)是片上硬件資源豐富,集成常見的EPROM、DAC、PWM以及看門狗電路。這使得硬件電路的設(shè)計更加簡單,節(jié)約設(shè)計成本,提高整機(jī)性能。因此PIC單片機(jī)已成為產(chǎn)品開發(fā),尤其是產(chǎn)品設(shè)計和研制階段的首選控制器。本文介紹用PIC16F84單片機(jī)制作的電子密碼鎖。PIC16F84單片機(jī)共18個引腳,13個可用I/O接口。芯片內(nèi)有1K×14的FLASHROM程序存儲器,36×8的靜態(tài)RAM的通用寄存器,64×8的EEPROM的數(shù)據(jù)存儲器,8級深度的硬堆棧。硬件設(shè)計 電路原理見圖1。Xx8位數(shù)據(jù)線接4x4鍵盤矩陣電路,面板布局見表1,A、B、C、D為備用功能鍵。RA0、RA7輸出4組編碼二進(jìn)制數(shù)據(jù),經(jīng)74LS139譯碼后輸出逐行掃描信號,送RB4-RB7列信號輸入端。余下半個139譯碼器動揚(yáng)聲器。RB2接中功率三極管基極,驅(qū)動繼電器動作。有效密碼長度為4位,根據(jù)實(shí)際情況,可通過修改源程序增加密碼位數(shù)。產(chǎn)品初始密碼為3345,這是一隨機(jī)數(shù),無特殊意義,目的是為防止被套解。用戶可按*號鍵修改密碼,按#號鍵結(jié)束。輸入密碼并按#號確認(rèn)之后,腳輸出RB2腳輸出高電平,繼電器閉合,執(zhí)行一次開鎖動作。 若用戶輸入的密碼正確,揚(yáng)聲器發(fā)出一聲稍長的“滴”提示聲,若輸入的密碼與上次修改的不符,則發(fā)出短促的“滴”聲。連續(xù)3次輸入密碼錯誤之后,程序鎖死,揚(yáng)聲器報警。直到CPU被復(fù)位或從新上電。軟件設(shè)計 軟件流程圖見圖3。CPU上電或復(fù)位之后將最近一次修改并保存到EEPROM的密碼讀出,最為參照密匙。然后等待用戶輸入開鎖密碼。若5分鐘以內(nèi)沒有接受到用戶的任何輸入,CPU自動轉(zhuǎn)入掉電模式,用戶輸入任意值可喚醒CPU。每次修改密碼之后,CPU將新的密碼存入內(nèi)部4個連續(xù)的EEPROM單元,掉電后該數(shù)據(jù)任有效。每執(zhí)行一次開鎖指令,CPU將當(dāng)前輸入密碼與該值比較,看是否真確,并給出相應(yīng)的提示和控制。布 局 所有元件均使用SMD表貼封裝,縮小體積,便于產(chǎn)品安裝,60X60雙面PCB板,頂層是一體化輸入鍵盤,底層是元件層。成型后的產(chǎn)品體積小巧,能很方便的嵌入防盜鐵門、保險箱柜。
標(biāo)簽: PIC 單片機(jī)設(shè)計 電子密碼鎖
上傳時間: 2013-10-31
上傳用戶:uuuuuuu
8.1 模擬接口概述單片機(jī)的外部設(shè)備不一定都是數(shù)字式的,也經(jīng)常會和模擬式的設(shè)備連接。 例如單片機(jī)來控制溫度、壓力時,溫度和壓力都是連續(xù)變化的,都是模擬量,在單片機(jī)與外部環(huán)境通信的時候,就需要有一種轉(zhuǎn)換器來把模擬信號變?yōu)閿?shù)字信號,以便能夠輸送給單片機(jī)進(jìn)行處理。而單片機(jī)送出的控制信號,也必須經(jīng)過變換器變成模擬信號,才能為控制電路所接受。這種變換器就稱為數(shù)模(D/A)轉(zhuǎn)換器和模數(shù)(A/D)轉(zhuǎn)換器。CPU與模擬外設(shè)之間的接口電路稱為模擬接口。在這一章里將介紹單片機(jī)與 A/D及D/A轉(zhuǎn)換器接口,以及有關(guān)的應(yīng)用。 8.2 DAC及其接口一、DAC介紹:1.DAC結(jié)構(gòu):DAC芯片上集成有D/A轉(zhuǎn)換電路和輔助電路。2.DAC的參數(shù):描述D/A轉(zhuǎn)換器性能的參數(shù)很多,主要有以下幾個:分辨率(Resolution) 偏移誤差(OffsetError) 線性度(Linearity) 精度(Accuracy) 轉(zhuǎn)換速度(ConvemionRate) 溫度靈敏度(TemperatureSensitivity) 二、典型DAC芯片及其接口一、DAC介紹:1.DAC結(jié)構(gòu):DAC芯片上集成有D/A轉(zhuǎn)換電路和輔助電路。2.DAC的參數(shù):描述D/A轉(zhuǎn)換器性能的參數(shù)很多,主要有以下幾個:分辨率(Resolution) 偏移誤差(OffsetError) 線性度(Linearity) 精度(Accuracy) 轉(zhuǎn)換速度(ConvemionRate) 溫度靈敏度(TemperatureSensitivity) 8.3 ADC及其接口DAC 0832的結(jié)構(gòu)DAC 0832的引腳DAC 0832的接口DAC 0832的應(yīng)用DAC0832是CMOS工藝,雙列直插式20引腳。① VCC電源可以在5-15V內(nèi)變化。典型使用時用15V電源。② AGND為模擬量地線,DGND為數(shù)字量地線,使用時,這兩個接地端應(yīng)始終連在一起。③ 參考電壓VREF接外部的標(biāo)準(zhǔn)電源,VREF一般可在+10V到—10V范圍內(nèi)選用。
標(biāo)簽: 模擬接口
上傳時間: 2013-10-10
上傳用戶:ukuk
微型打印機(jī)的C語言源程序:微型打印機(jī)的C51源程序#define uchar unsigned char#define uint unsigned int#include <reg52.h>#include <stdio.h>#include <absacc.h>#include <math.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#define PIN XBYTE[0x8000]#define POUT XBYTE[0x9000]sbit PRINTSTB =P1^6;sbit DOG=P1^7;bdata char pin&#118alue;sbit PRINTBUSY=pin&#118alue^7;sbit PRINTSEL =pin&#118alue^6;sbit PRINTERR =pin&#118alue^5;sbit PRINTACK =pin&#118alue^4; void PrintString(uchar *String1,uchar *String2);void initprint(void);void print(uchar a); void initprint(void) //打印機(jī)初始化子程序 { pin&#118alue=PIN; if((PRINTSEL==1)&&(PRINTERR==1)) { print(0x1b); print(0x40); print(0x1b); print(0x38); print(0x4); }}void print(uchar a) //打印字符a{ pin&#118alue=PIN; if((PRINTSEL==0)||(PRINTERR==0)) return; for(;;) { DOG=~DOG; pin&#118alue=PIN; if(PRINTBUSY==0) break; } DOG=~DOG; POUT=a; PRINTSTB=1; PRINTSTB=1; PRINTSTB=1; PRINTSTB=1; PRINTSTB=0; PRINTSTB=0; PRINTSTB=0; PRINTSTB=0; PRINTSTB=1;}void PrintString(uchar *String) //打印字符串后回車{ uchar CH; for (;;) { DOG=~DOG; CH=*String; if (CH==0) { print(0x0d); break; } print(CH); String++; } initprint();}
上傳時間: 2013-10-18
上傳用戶:hasan2015
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1