【廣告】
單片機 | 寫1清零,寫0清零,有什么區(qū)別?
單片機內(nèi)部有各種功能的寄存器,比如PIC、C51系列8位的單片機,寄存器的寬度就是八個二進制位,一般是高位在前低位在后,例如:11000011,一共是八位,高四位數(shù)據(jù)是1100,低四位數(shù)據(jù)是0011。
單片機是可以進行位操作的,一個8位的寄存器,我們可以只針對其中一個位或者某些位進行操作,將寄存器相應(yīng)的位賦值1(高電平)為置位,相反賦值0(低電平)為清零。這是一種比較容易理解的方式。
單片機為什么要使用C語言?
將C向MCU(俗稱單片機)8051上的移植始于80年代的中后期。客觀上講,C向8051 MCU移植的難點不少。如:
8051的非馮·諾依慢結(jié)構(gòu)(程序與數(shù)據(jù)存儲器空間分立),再加上片上又多了位尋址存儲空間;片上的數(shù)據(jù)和程序存儲器空間過小和同時存在著向片外擴展它們的可能;
片上集成外圍設(shè)備的被寄存器化(即SFR),而并不采用慣用的I/O地址空間;
8051芯片的派生門類特別多(達到了上百種之多),而C語言對于它們的每一個硬件資源又無一例外地要能進行操作。
這些都是過去以MPU為基礎(chǔ)的C語言所沒有的。經(jīng)過Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艱若不懈的努力,終于于90年代才開始而趨成熟,成為專業(yè)化的MCU語言了。過去長期困擾人們的所謂“語言產(chǎn)生代碼太長,運行速度太慢,因此不適合單片機使用”的致使缺點已被大幅度地克服。目前,8051上的C語言的代碼長度,已經(jīng)做到了匯編水平的1.2~1.5倍。4K字節(jié)以上的程度,C語言的優(yōu)勢更能得到發(fā)揮。至于執(zhí)行速度的問題,找出關(guān)鍵代碼,進一步用人工優(yōu)化,就可很簡單地達到十分美滿的程度。如果談到開發(fā)速度、軟件質(zhì)量、結(jié)構(gòu)嚴謹、程序堅固等方面的話,則C語言的絕非匯編語言編程所可比擬的。今天,確實已經(jīng)到MCU開發(fā)人員拿起C語言利器的時候了。
單片機加
單片機加可劃分為兩大類,一類是硬件加,一類是軟件加。硬件加密,對于單片機來說,一般是單片機廠商將加密熔絲固化在IC內(nèi),熔絲有加密狀態(tài)及不加密狀態(tài),如果處于加密狀態(tài),一般的工具是讀取不了IC里面的程序內(nèi)容的,要讀取其內(nèi)容,這就涉及到硬件,必須有專業(yè)的硬件工具及專業(yè)的工程師。
其實任何一款單片機從理論上講,攻擊者均可利用足夠的投資和時間使用以上方法來攻破。這是系統(tǒng)設(shè)計者應(yīng)該始終牢記的基本原則,因此,作為電子產(chǎn)品的設(shè)計工程師非常有必要了解當前單片機攻擊的很新技術(shù),做到知己知彼,心中有數(shù),才能有效防止自己花費大量金錢和時間辛辛苦苦設(shè)計出來的產(chǎn)品被人家一夜之間模仿的事情發(fā)生。
單片機
隨著單片機系統(tǒng)越來越廣泛地應(yīng)用于消費類電子、工業(yè)自動化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。如果一個單片機系統(tǒng)符合下面三個條件,則該系統(tǒng)是電磁兼容的:
① 對其它系統(tǒng)不產(chǎn)生干擾;
② 對其它系統(tǒng)的發(fā)射不敏感;
③ 對系統(tǒng)本身不產(chǎn)生干擾。
假若干擾不能完全消除,但也要使干擾減少到較小。干擾的產(chǎn)生不是直接的(通過導(dǎo)體、公共阻抗耦合等),就是間接的(通過串擾或輻射耦合)。電磁干擾的產(chǎn)生是通過導(dǎo)體和通過輻射,很多電磁發(fā)射源,如光照、繼電器、DC電機和日光燈都可引起干擾;AC電源線、互連電纜、金屬電纜和子系統(tǒng)的內(nèi)部電路也都可能產(chǎn)生輻射或接收到不希望的信號。在高速單片機系統(tǒng)中,時鐘電路通常是寬帶噪聲的很大產(chǎn)生源,這些電路可產(chǎn)生高達300 MHz的諧波失真,在系統(tǒng)中應(yīng)該把它們?nèi)サ簟A硗?,在單片機系統(tǒng)中,很容易受影響的是復(fù)位線、中斷線和控制線。