Ominivision公司的新型攝像頭模組OV7670,具有體積小、輸出圖像格式多、接口方便、寄存器可讀寫等特點,是嵌入式系統中圖像采集的理想選擇。通過設置OV7670的寄存器的值,可以更好地實現對攝像頭的控制,得到更加理想的圖像。本文介紹了PC104系統對OV7670攝像頭模組寄存器讀寫的過程及編程方法。
上傳時間: 2013-11-23
上傳用戶:songyue1991
合格的電子工程師需要掌握的知識和技能 愚以為,掌握了一下的硬件和軟件知識,基本上就可以成為一個合格的電子工程師: 第一部分:硬件知識 一、 數字信號 1、 TTL和帶緩沖的TTL信號 2、 RS232和定義 3、 RS485/422(平衡信號) 4、 干接點信號 二、 模擬信號視頻 1、 非平衡信號 2、 平衡信號 三、 芯片 1、 封裝 2、 7407 3、 7404 4、 7400 5、 74LS573
上傳時間: 2013-11-11
上傳用戶:sammi
以C8051F020為核心處理器,設計無線傳感器網絡數據采集系統。系統采用SZ05-ADV型無線通訊模塊組建Zigbee無線網絡,結合嵌入式系統的軟硬件技術,完成終端節點的8路傳感器信號的數據采集。現場8路信號通過前端處理后,分別送入C8051F020的12位A/D轉換器進行轉換。經過精確處理、存儲后的現場數據,通過Zigbee無線網絡傳送到上位機,系統可達到汽車試驗中無線測試的目的。 Abstract: This paper designs a wireless sensor network system for data acquisition with C8051F020 as core processors.The system used SZ05-ADV wireless communication module,set up a Zigbee wireless network, combined with hardware and software technologies of embedded systems,completed the end-node 8-locale sensor signal data acquisition.Eight locale signals were sent separately into the 12-bit ADC of C8051F020 for conversion through front treatment.After accurate processing and storage,the locale data was transmitted to the host computer through Zigbee wireless.The system achieves the purpose of wireless testing in vehicle trial.
標簽: C8051F020 Zigbee 汽車測試 系統設計
上傳時間: 2013-11-23
上傳用戶:dsgkjgkjg
本書面向由傳統51單片機轉向ARM嵌入式開發的硬件工程師、由硬件轉嵌入式軟件開發的工程師、沒有嵌入式開發經驗的軟件工程師。分9個部分:1、開發環境建立2、S3C2410功能部件介紹與實驗(含實驗代碼)3、bootloader vivi詳細注釋4、linux移植5、linux驅動6、yaffs文件系統詳解7、調試工具8、GUI開發簡介9、UC/OS移植通過學習第二部分,即可了解基于ARM CPU的嵌入式開發所需要的外圍器件及其接口。對應的實驗代碼實現了對這些接口的操作,這可以讓硬件工程師形成一個嵌入式硬件開發的概念。這部分也可以當作S3C2410的數據手冊來使用。一個完整的嵌入式linux系統包含4部分內容:bootloader、parameters、kernel、root file system。3、4、5、6部分詳細介紹了這4部分的內容,這是linux底層軟件開發人員應該掌握的。通過學習這些章節,您可以詳細了解到如何在一個裸板上裁減、移植linux,如何構造自己的根文件系統,如何編寫適合客戶需求的驅動程序——驅動程序這章將結合幾個經典的驅動程序進行講解。您還可以了解到在用在nand flash上的非常流行的yaffs文件系統是如何工作的,本書將結合yaffs代碼詳細介紹yaffs文件系統。第7部分介紹了嵌入式linux開發中使用gdb進行調試的詳細過程。
上傳時間: 2013-10-31
上傳用戶:yunfan1978
廣州致遠電子有限公司的EDS 系列模塊是為了專門為客戶的工業設備而開發的嵌入式模塊,通過該模塊可以使客戶的工業設備迅速具有交換機的功能,為客戶搭建安全可靠的工業網絡通信環境。EDS-1210 模塊讓客戶的設計人員能夠從復雜的網絡產品設計中解放出來,更加專注于自己的工業設計部分,符合現代模塊化的設計理念。可以廣泛應用于電力配網自動化、煤炭井下監控系統、水利水電監控系統、石油化工管道監控系統、智能交通道路監控系統、水處理監控系統、國防軍事工程等設備當中。
上傳時間: 2014-12-27
上傳用戶:wgh_kf
MFC 六大技術之簡化仿真(Console 程序) 第㆓篇【欲善工事先利其器】提供給對 Visual C++ 整合環境全然陌生的朋友㆒個導引。 這㆒篇當然不能取代 Visual C++ User's Guide 的㆞位,但對整個軟件開發環境有全盤以 及概觀性的介紹,可以讓初學者迅速了解手㆖掌握的工具,以及它們的主要功能。 第㆔篇【淺出 MFC 程序設計】介紹㆒個 MFC 程序的生死因果。已經有 MFC 程序經 驗的朋友,不見得不會對本篇感到驚艷。根據我的了解,太多㆟使用 MFC 是「只知道 這么做,不知道為什么」;本篇詳細解釋 MFC 程序之來龍去脈,為初入 MFC 領域的 讀者奠定扎實的基礎。說不定本篇會讓你有醍醐灌頂之感。
上傳時間: 2013-12-16
上傳用戶:qq527891923
實驗目的: 設計一個單片機應用綜合系統。三人一組,共同完成電子工程作品,包括系統功能確定,方案選擇,硬件制作,程序編寫,調試,論文編寫全過程。讓學生合作完成一個較復雜,又有實際意義的工程作品,進而有效培養學生的電子工程實踐能力。
上傳時間: 2013-11-03
上傳用戶:vmznxbc
單片機入門基礎知識大全免費下載 單片機第八課(尋址方式與指令系統) 通過前面的學習,我們已經了解了單片機內部的結構,并且也已經知道,要控制單片機,讓它為我們干學,要用指令,我們已學了幾條指令,但很零散,從現在開始,我們將要系統地學習8051的指令部份。 一、概述 1、指令的格式 我們已知,要讓計算機做事,就得給計算機以指令,并且我們已知,計算機很“笨”,只能懂得數字,如前面我們寫進機器的75H,90H,00H等等,所以指令的第一種格式就是機器碼格式,也說是數字的形式。但這種形式實在是為難我們人了,太難記了,于是有另一種格式,助記符格式,如MOV P1,#0FFH,這樣就好記了。 這兩種格式之間的關系呢,我們不難理解,本質上它們完全等價,只是形式不一樣而已。 2、匯編 我們寫指令使用匯編格式,而計算機只懂機器碼格式,所以要將我們寫的匯編格式的指令轉換為機器碼格式,這種轉換有兩種方法:手工匯編和機器匯編。手工匯編實際上就是查表,因為這兩種格式純粹是格式不同,所以是一一對應的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計算機軟件,用計算機軟件來替代手工查表,這就是機器匯編。 二、尋址 讓我們先來復習一下我們學過的一些指令:MOV P1,#0FFH,MOV R7,#0FFH這些指令都是將一些數據送到相應的位置中去,為什么要送數據呢?第一個因為送入的數可以讓燈全滅掉,第二個是為了要實現延時,從這里我們可以看出來,在用單片機的編程語言編程時,經常要用到數據的傳遞,事實上數據傳遞是單片機編程時的一項重要工作,一共有28條指令(單片機共111條指令)。下面我們就從數據傳遞類指令開始吧。 分析一下MOV P1,#0FFH這條指令,我們不難得出結論,第一個詞MOV是命令動詞,也就是決定做什么事情的,MOV是MOVE少寫了一個E,所以就是“傳遞”,這就是指令,規定做什么事情,后面還有一些參數,分析一下,數據傳遞必須要有一個“源”也就是你要送什么數,必須要有一個“目的”,也就是你這個數要送到什么地方去,顯然在上面那條指令中,要送的數(源)就是0FFH,而要送達的地方(目的地)就是P1這個寄存器。在數據傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。 這條指令中,送給P1是這個數本身,換言之,做完這條指令后,我們可以明確地知道,P1中的值是0FFH,但是并不是任何時候都可以直接給出數本身的。例如,在我們前面給出的延時程序例是這樣寫的: MAIN: SETB P1.0 ;(1) LCALL DELAY ;(2) CLR P1.0 ;(3) LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,#250 ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表1 MAIN: SETB P1.0 ;(1) MOV 30H,#255 LCALL DELAY ; CLR P1.0 ;(3) MOV 30H,#200 LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,30H ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表2 這樣一來,我每次調用延時程序延時的時間都是相同的(大致都是0.13S),如果我提出這樣的要求:燈亮后延時時間為0.13S燈滅,燈滅后延時0.1秒燈亮,如此循環,這樣的程序還能滿足要求嗎?不能,怎么辦?我們可以把延時程序改成這樣(見表2):調用則見表2中的主程,也就是先把一個數送入30H,在子程序中R7中的值并不固定,而是根據30H單元中傳過來的數確定。這樣就可以滿足要求。 從這里我們可以得出結論,在數據傳遞中要找到被傳遞的數,很多時候,這個數并不能直接給出,需要變化,這就引出了一個概念:如何尋找操作數,我們把尋找操作數所在單元的地址稱之為尋址。在這里我們直接使用數所在單元的地址找到了操作數,所以稱這種方法為直接尋址。除了這種方法之外,還有一種,如果我們把數放在工作寄存器中,從工作寄存器中尋找數據,則稱之為寄存器尋址。例:MOV A,R0就是將R0工作寄存器中的數據送到累加器A中去。提一個問題:我們知道,工作寄存器就是內存單元的一部份,如果我們選擇工作寄存器組0,則R0就是RAM的00H單元,那么這樣一來,MOV A,00H,和MOV A,R0不就沒什么區別了嗎?為什么要加以區分呢?的確,這兩條指令執行的結果是完全相同的,都是將00H單元中的內容送到A中去,但是執行的過程不同,執行第一條指令需要2個周期,而第二條則只需要1個周期,第一條指令變成最終的目標碼要兩個字節(E5H 00H),而第二條則只要一個字節(E8h)就可以了。 這么斤斤計較!不就差了一個周期嗎,如果是12M的晶振的話,也就1個微秒時間了,一個字節又能有多少? 不對,如果這條指令只執行一次,也許無所謂,但一條指令如果執行上1000次,就是1毫秒,如果要執行1000000萬次,就是1S的誤差,這就很可觀了,單片機做的是實時控制的事,所以必須如此“斤斤計較”。字節數同樣如此。 再來提一個問題,現在我們已知,尋找操作數可以通過直接給的方式(立即尋址)和直接給出數所在單元地址的方式(直接尋址),這就夠了嗎? 看這個問題,要求從30H單元開始,取20個數,分別送入A累加器。 就我們目前掌握的辦法而言,要從30H單元取數,就用MOV A,30H,那么下一個數呢?是31H單元的,怎么取呢?還是只能用MOV A,31H,那么20個數,不是得20條指令才能寫完嗎?這里只有20個數,如果要送200個或2000個數,那豈不要寫上200條或2000條命令?這未免太笨了吧。為什么會出現這樣的狀況?是因為我們只會把地址寫在指令中,所以就沒辦法了,如果我們不是把地址直接寫在指令中,而是把地址放在另外一個寄存器單元中,根據這個寄存器單元中的數值決定該到哪個單元中取數據,比如,當前這個寄存器中的值是30H,那么就到30H單元中去取,如果是31H就到31H單元中去取,就可以解決這個問題了。怎么個解決法呢?既然是看的寄存器中的值,那么我們就可以通過一定的方法讓這里面的值發生變化,比如取完一個數后,將這個寄存器單元中的值加1,還是執行同一條指令,可是取數的對象卻不一樣了,不是嗎。通過例子來說明吧。 MOV R7,#20 MOV R0,#30H LOOP:MOV A,@R0 INC R0 DJNZ R7,LOOP 這個例子中大部份指令我們是能看懂的,第一句,是將立即數20送到R7中,執行完后R7中的值應當是20。第二句是將立即數30H送入R0工作寄存器中,所以執行完后,R0單元中的值是30H,第三句,這是看一下R0單元中是什么值,把這個值作為地址,取這個地址單元的內容送入A中,此時,執行這條指令的結果就相當于MOV A,30H。第四句,沒學過,就是把R0中的值加1,因此執行完后,R0中的值就是31H,第五句,學過,將R7中的值減1,看是否等于0,不等于0,則轉到標號LOOP處繼續執行,因此,執行完這句后,將轉去執行MOV A,@R0這句話,此時相當于執行了MOV A,31H(因為此時的R0中的值已是31H了),如此,直到R7中的值逐次相減等于0,也就是循環20次為止,就實現了我們的要求:從30H單元開始將20個數據送入A中。 這也是一種尋找數據的方法,由于數據是間接地被找到的,所以就稱之為間址尋址。注意,在間址尋址中,只能用R0或R1存放等尋找的數據。 二、指令 數據傳遞類指令 1) 以累加器為目的操作數的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一條指令中,Rn代表的是R0-R7。第二條指令中,direct就是指的直接地址,而第三條指令中,就是我們剛才講過的。第四條指令是將立即數data送到A中。 下面我們通過一些例子加以說明: MOV A,R1 ;將工作寄存器R1中的值送入A,R1中的值保持不變。 MOV A,30H ;將內存30H單元中的值送入A,30H單元中的值保持不變。 MOV A,@R1 ;先看R1中是什么值,把這個值作為地址,并將這個地址單元中的值送入A中。如執行命令前R1中的值為20H,則是將20H單元中的值送入A中。 MOV A,#34H ;將立即數34H送入A中,執行完本條指令后,A中的值是34H。 2)以寄存器Rn為目的操作的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 這組指令功能是把源地址單元中的內容送入工作寄存器,源操作數不變。
上傳時間: 2013-10-13
上傳用戶:3294322651
介紹了以單片機SST89E554RC 為控制器的點陣中文顯示控制屏的設計。詳細介紹了系統硬件的結構與軟件的控制,以及如何通過PC 機將要顯示的漢字漢模提取出來并發送給單片機,然后顯示在點陣控制屏上的過程,并對模塊中采用USB 接口的原理進行說明。
上傳時間: 2013-11-02
上傳用戶:lty6899826
32位MCU(單片機)開發全攻略:本文因為內容很多,分為上下冊,上冊為基礎知識篇,從第一章到第五章,下冊為開發技巧篇,為第六章以后內容。本書可以作為MCU應用工程師、大中專學生或MCU愛好者學習32位MCU開發的參考教材。 1、匯集32位MCU基礎知識與開發工具應用知識,一書在手迅速掌握32位MCU開發!2、首次獨家披露LPC1700系列MCU權威中文開發信息! 3、問答實例結合讓你的開發難題迎刃而解! 隨著節能、高效、綠色理念的深入,32位MCU的應用已呈燎原之勢,有數據顯示僅在過去一年,基于ARM Cortex-M3的MCU的出貨量增長率就達到200%!這些高性能、低功耗的32位MCU廣泛應用于汽車電子、工業應用、醫療電子等領域,而據研究機構預測,中國MCU的可用市場總量(TAM)將從2009年的20億美元增長到2013年的30億美元以上,其增幅為全球水平的兩倍!面對如此誘人的前景,立即學習掌握32位MCU開發基本技巧并將其用于個人設計中已經成為本土工程師的當務之急。 但是,一個有趣的現象是目前有關MCU的圖書中大部分還以8位單片機為主要例舉對象,很多圖書傳授的還是51單片機開發知識,可見在知識需求和供給之間出現了巨大的落差,這也是電子創新網推出《32位MCU開發全攻略》電子書的初衷之一。 基于上述原因,本電子書主要講述32位MCU應用開發知識,對于8位單片機的開發,因為已經有大量書籍,這里不再贅述。本書的第一章主要介紹了嵌入式系統的背景知識、基本概念和目前發展狀況,讓大家對嵌入式系統的發展有大致的了解。第二章主要介紹了微控制器的基本原理、結構和32位ARM MCU供應商的信息。第三章主要介紹了ARM內核的一些特點及ARM指令集。第四章以恩智浦公司的MCU為例詳細介紹了32位ARM MCU的具體結構、功能和特點。第五章是本書的重點內容,以恩智浦的LPC17xx系列MCU為例,分模塊詳細介紹了MCU的應用開發,這些介紹把軟硬件結合在一起,這是本書和其他類似書籍的區別之一。第六章介紹了MCU開發工具及開發流程。第七章我們搜集了多個MCU開發應用實例,通過這些實例,進一步強化MCU開發技巧和系統設計方法。第八章我們以問答的形式介紹MCU開發的技巧,這些問答具有一定的基礎性和代表性,可以幫助工程師解決MCU應用開發中遇到的難題。第九章我們羅列了一些MCU開發資源信息,工程師朋友可以通過鏈接獲得所需的知識。第十章是有關本書的編委信息。第十一章是本書的版權聲明,我們授權工程師朋友和媒體免費下載此書并進行推廣,但是不得以本書切割或進行商業活動。《32位MCU開發全攻略》電子書主編張國斌。
標簽: MCU
上傳時間: 2013-12-18
上傳用戶:wincoder