LED燈帶紅綠藍(lán)白漸亮漸滅(低速模式1024點)
上傳時間: 2013-10-30
上傳用戶:dalidala
摘要:現(xiàn)場總線已成為數(shù)據(jù)總線領(lǐng)域中最為活躍的熱點,CAN 總線被公認(rèn)為最有前途的現(xiàn)場總線之一,CAN 總線節(jié)點的設(shè)計、調(diào)試是CAN 總線通訊系統(tǒng)設(shè)計的重點。在此介紹了C8051F040單片機(jī)內(nèi)部集成的CAN 控制器,并基于C8051F040單片機(jī)設(shè)計了一個CAN通信節(jié)點,并給出了CAN 節(jié)點測試模式軟件設(shè)計程序,可以用于CAN 總線模塊的測試,節(jié)省測試時間。
標(biāo)簽: C8051F040 CAN 單片機(jī) 總線
上傳時間: 2013-11-12
上傳用戶:蠢蠢66
對于ISP編程進(jìn)入不了編程模式的總結(jié)
上傳時間: 2013-10-18
上傳用戶:xiaohuanhuan
1、該控制板是基于modbus協(xié)議RTU模式進(jìn)行通訊,是一種工業(yè)標(biāo)準(zhǔn)協(xié)議,具有穩(wěn)定性高,使用廣泛,從而可以兼容其他設(shè)備 2、三十路帶光電隔離輸出控制繼電器。 3、標(biāo)準(zhǔn)的11.0592M晶振。(便于設(shè)置串口波特率) 4、具有上電復(fù)位和手動復(fù)位。 5、支持51系列DIP40封裝單片機(jī)。
標(biāo)簽: modbus_RTU 模式 工控板 存儲
上傳時間: 2013-11-10
上傳用戶:niumeng16
適用于51單片機(jī)的串口發(fā)n
標(biāo)簽: 51單片機(jī) 串口 字節(jié)
上傳時間: 2014-12-25
上傳用戶:qingzhuhu
89c51一種用N+1條線實現(xiàn)矩陣鍵盤
標(biāo)簽: 矩陣鍵盤
上傳時間: 2014-12-26
上傳用戶:lhw888
LM3S系列單片機(jī)主要有3種工作模式:運行模式(Run-Mode)、睡眠模式(Sleep-Mode)、深度睡眠模式(Deep-Sleep-Mode)。某些型號還具有單獨的極為省電的冬眠模塊(Hibernation Module)。而對各個模式下的外設(shè)時鐘選通以及系統(tǒng)時鐘源的控制主要由表 2.1中的寄存器來完成。 運行模式是正常的工作模式,處理器內(nèi)核將積極地執(zhí)行代碼。在睡眠模式下,系統(tǒng)時鐘不變,但處理器內(nèi)核不再執(zhí)行代碼(內(nèi)核因不需要時鐘而省電)。在深度睡眠模式下,系統(tǒng)時鐘可變,處理器內(nèi)核同樣也不再執(zhí)行代碼。深度睡眠模式比睡眠模式更為省電。有關(guān)這3種工作模式的具體區(qū)別請參見表 2.2的描述。調(diào)用函數(shù)SysCtlSleep( )可使處理器立即進(jìn)入睡眠模式,而調(diào)用函數(shù)SysCtlDeepSleep( )可使處理器立即進(jìn)入深度睡眠模式。任一中斷都可以將處理器從睡眠或深度睡眠模式喚醒,并使處理器恢復(fù)到睡眠前的運行狀態(tài)。因此在進(jìn)入睡眠或深度睡眠之前,必須配置某個片內(nèi)外設(shè)的中斷并允許其在睡眠或深度睡眠模式下繼續(xù)工作,如果不這樣,則只有復(fù)位或重新上電才能結(jié)束睡眠或深度睡眠狀態(tài)。
上傳時間: 2013-11-08
上傳用戶:ArmKing88
LPC900 FLASH單片機(jī),是PHILIPS公司推出的一款高性能、微功耗51內(nèi)核單片機(jī),主要集成了字節(jié)方式的I2C總線、SPI總線、增強(qiáng)型UART接口、實時時鐘、E2PROM、A/D轉(zhuǎn)換器、ISP/IAP在線編程和遠(yuǎn)程編程方式等一系列有特色的功能部件。LPC900系列單片機(jī)提供從8腳DIP到28腳的PLCC等豐富的封裝形式,可以滿足各種對成本、線路板空間有限制而又要求高性能、高可靠性的應(yīng)用。且其具有高速率(6倍于普通51單片機(jī)),低功耗(完全掉電模式功耗僅為1uA),高穩(wěn)定性,小封裝,多功能(內(nèi)嵌眾多流行的功能模塊),多選擇等特點(該系列有多款不同封裝,不同價位,不同功能的型號供用戶選擇)。
上傳時間: 2013-10-19
上傳用戶:hanbeidang
單片機(jī)串行通信發(fā)射機(jī) 我所做的單片機(jī)串行通信發(fā)射機(jī)主要在實驗室完成,參考有關(guān)的書籍和資料,個人完成電路的設(shè)計、焊接、檢查、調(diào)試,再根據(jù)自己的硬件和通信協(xié)議用匯編語言編寫發(fā)射和顯示程序,然后加電調(diào)試,最終達(dá)到準(zhǔn)確無誤的發(fā)射和顯示。在這過程中需要選擇適當(dāng)?shù)脑侠淼碾娐穲D扎實的焊接技術(shù),基本的故障排除和糾正能力,會使用基本的儀器對硬件進(jìn)行調(diào)試,會熟練的運用匯編語言編寫程序,會用相關(guān)的軟件對自己的程序進(jìn)行翻譯,并燒進(jìn)芯片中,要與對方接收機(jī)統(tǒng)一通信協(xié)議,要耐心的反復(fù)檢查、修改和調(diào)試,直到達(dá)到預(yù)期目的。單片機(jī)串行通信發(fā)射機(jī)采用串行工作方式,發(fā)射并顯示兩位數(shù)字信息,既顯示00-99,使數(shù)據(jù)能夠在不同地方傳遞。硬件部分主要分兩大塊,由AT89C51和多個按鍵組成的控制模塊,包括時鐘電路、控制信號電路,時鐘采用6MHZ晶振和30pF的電容來組成內(nèi)部時鐘方式,控制信號用手動開關(guān)來控制,P1口來控制,P2、P3口產(chǎn)生信號并通過共陽極數(shù)碼管來顯示,軟件采用匯編語言來編寫,發(fā)射程序在通信協(xié)議一致的情況下完成數(shù)據(jù)的發(fā)射,同時顯示程序?qū)Πl(fā)射的數(shù)據(jù)加以顯示。畢業(yè)設(shè)計的目的是了解基本電路設(shè)計的流程,豐富自己的知識和理論,鞏固所學(xué)的知識,提高自己的動手能力和實驗?zāi)芰Γ瑥亩邆湟欢ǖ脑O(shè)計能力。我做得的畢業(yè)設(shè)計注重于對單片機(jī)串行發(fā)射的理論的理解,明白發(fā)射機(jī)的工作原理,以便以后單片機(jī)領(lǐng)域的開發(fā)和研制打下基礎(chǔ),提高自己的設(shè)計能力,培養(yǎng)創(chuàng)新能力,豐富自己的知識理論,做到理論和實際結(jié)合。本課題的重要意義還在于能在進(jìn)一步層次了解單片機(jī)的工作原理,內(nèi)部結(jié)構(gòu)和工作狀態(tài)。理解單片機(jī)的接口技術(shù),中斷技術(shù),存儲方式,時鐘方式和控制方式,這樣才能更好的利用單片機(jī)來做有效的設(shè)計。我的畢業(yè)設(shè)計分為兩個部分,硬件部分和軟件部分。硬件部分介紹:單片機(jī)串行通信發(fā)射機(jī)電路的設(shè)計,單片機(jī)AT89C51的功能和其在電路的作用。介紹了AT89C51的管腳結(jié)構(gòu)和每個管腳的作用及各自的連接方法。AT89C51 與MCS-51 兼容,4K字節(jié)可編程閃爍存儲器,壽命:1000次可擦,數(shù)據(jù)保存10年,全靜態(tài)工作:0HZ-24HZ,三級程序存儲器鎖定,128*8 位內(nèi)部RAM,32 跟可編程I/O 線,兩個16 位定時/計數(shù)器,5 個中斷源,5 個可編程串行通道,低功耗的閑置和掉電模式,片內(nèi)震蕩和時鐘電路,P0和P1 可作為串行輸入口,P3口因為其管腳有特殊功能,可連接其他電路。例如P3.0RXD 作為串行輸出口,其中時鐘電路采用內(nèi)時鐘工作方式,控制信號采用手動控制。數(shù)據(jù)的傳輸方式分為單工、半雙工、全雙工和多工工作方式;串行通信有兩種形式,異步和同步通信。介紹了串行串行口控制寄存器,電源管理寄存器PCON,中斷允許寄存器IE,還介紹了數(shù)碼顯示管的工作方式、組成,共陽極和共陰極數(shù)碼顯示管的電路組成,有動態(tài)和靜態(tài)顯示兩種方式,說明了不同顯示方法與單片機(jī)的連接。再后來還介紹了硬件的焊接過程,及在焊接時遇到的問題和應(yīng)該注意的方面。硬件焊接好后的檢查電路、不裝芯片上電檢查及上電裝芯片檢查。軟件部分:在了解電路設(shè)計原理后,根據(jù)原理和目的畫出電路流程圖,列出數(shù)碼顯示的斷碼表,計算波特率,設(shè)置串行口,在與接受機(jī)設(shè)置相同的通信協(xié)議的基礎(chǔ)上編寫顯示和發(fā)射程序。編寫完程序還要進(jìn)行編譯,這就必須會使用編譯軟件。介紹了編譯軟件的使用和使用過程中遇到的問題,及在編譯后燒入芯片使用的軟件PLDA,后來的加電調(diào)試,及遇到的問題,在沒問題后與接受機(jī)連接,發(fā)射數(shù)據(jù),直到對方準(zhǔn)確接收到。在軟件調(diào)試過程中將詳細(xì)介紹調(diào)試遇到的問題,例如:通信協(xié)議是否相同,數(shù)碼管是否與芯片連接對應(yīng),計數(shù)器是否開始計數(shù)等。
標(biāo)簽: 單片機(jī) 串行通信 發(fā)射機(jī)
上傳時間: 2013-10-19
上傳用戶:uuuuuuu
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的指令,其實這樣規(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以及運行XMODEM協(xié)議。對USB DEVICE進(jì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中的編譯器項目,正確填寫你的編譯器的所在路徑。 對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
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1