arm指令集(1) ARM跳轉指令可以從當前指令向前或向后的32MB地址空間跳轉。這類跳轉指令有以下4種。 ?。?)B 跳4專指令 B〔條件) (地址) B指令屬于ARM指令集,是最簡單的分支指令。一旦遇到一個B指令,ARM處理器將立即跳轉到給定的地址,從那里繼續執行。注意:存儲在分支指令中的實際值是相對當前R15的值的一個偏移量,而不是一個絕對地址。它的值由匯編器來計算,是24位有符號數,左移兩位后有符號擴展為32位,表示的有效偏移位為26位(+/- 32 MB)。 ?。?)BL 帶返回的跳轉指令 BI,〔條件) (地址) BL指令也屬于ARM指令集,是另一個分支指令。就在分支之前,在寄存器R14中裝載上R15的內容,因此可以重新裝載R14到R15中來返回到這個分支之后的那個指令處執行,它是子例程的一個基本但強力的實現。 ?。?)BLX 帶返回和狀態切換的跳轉指令 BLX <地址> BLX指令有兩種格式,第1種格式的BLX指令記作BLX(1)。BLX(1)從ARM指令集跳轉到指令中指定的目標地址,并將程序狀態切換到Thumb狀態,該指令同時將PC寄存器的內容復制到LR寄存器中。 BLX(1)指令屬于無條件執行的指令。 第2種格式的BLX指令記作BLX(2)。BLX(2)指令從ARM指令集跳轉到指令中指定的目標地址,目標地址的指令可以是ARM指令,也可以是Thumb指令。目標地址放在指令中的寄存器<dest>中,該地址的bit[0]值為0,目標地址處的指令類型由CPSR中的T位決定。該指令同時將PC寄存器的內容復制到LR寄存器中。 ?。?)BX 帶狀態切換的跳轉指令 BX(條件) (dest) BX指令跳轉到指令中指定的目標地址,目標地址處的指令可以是ARM指令,也可以是Thumb指令。目標地址值為指令的值和0xFl·FFFFFF做“與”操作的結果,目標地址處的指令類型由寄存器決定。
上傳時間: 2014-12-27
上傳用戶:laomv123
EDA9060開關量I/O 模塊在電氣控制柜中的典型應用—— EDA9060結合交流接觸器實現遠程控制EDA9060開關量I/O模塊是山東力創科技自主研發的一款分布式DI/DO工控模塊,主要功能特點:◎4路開關量輸入,4路繼電器輸出。繼電器兩組常開2觸點,兩組常開常閉3觸點。輸出觸點容量為8A 125VAC(5A 250VAC5A30VDC),由于觸點容量較大,可以直接用在很多的常見電氣控制電路中。輸出有兩種方式,一種電平式,一種脈沖式,可以靈活配置?!驑藴实腞S485接口,方便組網,結合GPRS DTU無線模塊可以實現無線遠程控制功能。◎靈活的協議,兼容研華協議,支持標準MODBUS RTU協議,方便上位機的系統組建。EDA9060在電氣控制柜中有著廣泛的應用,通過增加EDA9060遠程控制線路,改變了原來必須依靠人工到現場啟停電氣線路的狀況,實現無人值守,節省資源。線路改造主要通過EDA9060的繼電器輸出控制交流接觸器,從而實現遠程控制現場用電設備(如常見的工業泵)的啟停。同時增加一個轉換開關,將手動控制線路和EDA9060遠程控制線路隔離開,以保證現場操作優先的要求,同時增強操作的可靠性。下面以交流接觸器控制線路在220V電壓等級以內的常見控制電路為例,簡要說明其控制過程,線路容量大的情況只需要通過增加合適容量的中間繼電器,擴大EDA9060的觸點容量即可解決,示意圖:
上傳時間: 2013-11-15
上傳用戶:robter
單片機I/O口的使用:對單片機的控制,其實就是對I/O口的控制,無論單片機對外界進行何種控制,亦或接受外部的控制,都是通過I/O口進行的。單片機總共有P0、P1、P2、P3四個8位雙向輸入輸出端口,每個端口都有鎖存器、輸出驅動器和輸入緩沖器。4個I/O端口都能作輸入輸出口用,其中P0和P2通常用于對外部存儲器的訪問?!?.1 MCS-51單片機的并行端口結構與操作 51系列單片機有4個I/O端口,每個端口都是8位準雙向口,共占32根引腳。每個端口都包括一個鎖存器(即專用寄存器P0~P3)、一個輸出驅動器和輸入緩沖器。通常把4個端口籠統地表示為P0~P3。
標簽: 單片機
上傳時間: 2013-11-06
上傳用戶:zhouxuepeng1
基于 I2C 總線的GPIO 擴展器件為主控器提供了額外的I/O 口,本文介紹了擴展器件的應用場合和選型指南,為設計者在設計中提供了參考。
上傳時間: 2013-11-11
上傳用戶:llwap
The CAT9555 is a CMOS device that provides 16-bitparallel input/output port expansion for I²C and SMBuscompatible applications. These I/O expanders providea simple solution in applications where additional I/Osare needed: sensors, power switches, LEDs,pushbuttons, and fans.
上傳時間: 2014-01-09
上傳用戶:1101055045
數字I/O腳有專用和復用。數字I/O腳的功能通過9個16位控制寄存器來控制??刂萍拇嫫鞣譃閮深悾海?)I/O復用控制寄存器(MCRX),來選擇I/O腳是外設功能還是I/O功能。(2)數據方向控制寄存器(PXDATDIR):控制雙向I/O腳的數據和數據方向。注意:數字I/O腳是通過映射在數據空間的控制寄存器來控制的,與器件的I/O空間無任何關系。240X/240XA多達41只數字I/O腳,多數具有復用功能。
標簽: 數字
上傳時間: 2013-10-31
上傳用戶:qimingxing130
含原理圖+電路圖+程序的波形發生器:在工作中,我們常常會用到波形發生器,它是使用頻度很高的電子儀器。現在的波形發生器都采用單片機來構成。單片機波形發生器是以單片機核心,配相應的外圍電路和功能軟件,能實現各種波形發生的應用系統,它由硬件部分和軟件部分組成,硬件是系統的基礎,軟件則是在硬件的基礎上,對其合理的調配和使用,從而完成波形發生的任務。 波形發生器的技術指標:(1) 波形類型:方型、正弦波、三角波、鋸齒波;(2) 幅值電壓:1V、2V、3V、4V、5V;(3) 頻率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 輸出極性:雙極性操作設計1、 機器通電后,系統進行初始化,LED在面板上顯示6個0,表示系統處于初始狀態,等待用戶輸入設置命令,此時,無任何波形信號輸出。2、 用戶按下“F”、“V”、“W”,可以分別進入頻率,幅值波形設置,使系統進入設置狀態,相應的數碼管顯示“一”,此時,按其它鍵,無效;3、 在進入某一設置狀態后,輸入0~9等數字鍵,(數字鍵僅在設置狀態時,有效)為欲輸出的波形設置相應參數,LED將參數顯示在面板上;4、 如果在設置中,要改變已設定的參數,可按下“CL”鍵,清除所有已設定參數,系統恢復初始狀態,LED顯示6個0,等待重新輸入命令;5、 當必要的參數設定完畢后,所有參數顯示于LED上,用戶按下“EN”鍵,系統會將各波形參數傳遞到波形產生模塊中,以便控制波形發生,實現不同頻率,不同電壓幅值,不同類型波形的輸出;6、 用戶按下“EN”鍵后,波形發生器開始輸出滿足參數的波形信號,面板上相應類型的運行指示燈閃爍,表示波形正在輸出,LED顯示波形類型編號,頻率值、電壓幅值等波形參數;7、 波形發生器在輸出信號時,按下任意一個鍵,就停止波形信號輸出,等待重新設置參數,設置過程如上所述,如果不改變參數,可按下“EN”鍵,繼續輸出原波形信號;8、 要停止波形發生器的使用,可按下復位按鈕,將系統復位,然后關閉電源。硬件組成部分通過綜合比較,決定選用獲得廣泛應用,性能價格高的常用芯片來構成硬件電路。單片機采用MCS-51系列的89C51(一塊),74LS244和74LS373(各一塊),反相驅動器 ULN2803A(一塊),運算放大器 LM324(一塊) 波形發生器的硬件電路由單片機、鍵盤顯示器接口電路、波形轉換(D/ A)電路和電源線路等四部分構成。1.單片機電路功能:形成掃描碼,鍵值識別,鍵功能處理,完成參數設置;形成顯示段碼,向LED顯示接口電路輸出;產生定時中斷;形成波形的數字編碼,并輸出到D/A接口電路;如電路原理圖所示: 89C51的P0口和P2口作為擴展I/O口,與8255、0832、74LS373相連接,可尋址片外的寄存器。單片機尋址外設,采用存儲器映像方式,外部接口芯片與內部存儲器統一編址,89C51提供16根地址線P0(分時復用)和P2,P2口提供高8位地址線,P0口提供低8位地址線。P0口同時還要負責與8255,0832的數據傳遞。P2.7是8255的片選信號,P2.6是0832(1)的片選,P2.5是0832(2)的片選,低電平有效,P0.0、P0.1經過74LS373鎖存后,送到8255的A1、A2作,片內A口,B口,C口,控制口等寄存器的字選。89C51的P1口的低4位連接4只發光三極管,作為波形類型指示燈,表示正在輸出的波形是什么類型。單片機89C51內部有兩個定時器/計數器,在波形發生器中使用T0作為中斷源。不同的頻率值對應不同的定時初值,定時器的溢出信號作為中斷請求??刂贫〞r器中斷的特殊功能寄存器設置如下:定時控制寄存器TCON=(00010000)工作方式選擇寄存器(TMOD)=(00000000)中斷允許控制寄存器(IE)=(10000010)2、鍵盤顯示器接口電路功能:驅動6位數碼管動態顯示; 提供響應界面; 掃面鍵盤; 提供輸入按鍵。由并口芯片8255,鎖存器74LS273,74LS244,反向驅動器ULN2803A,6位共陰極數碼管(LED)和4×4行列式鍵盤組成。8255的C口作為鍵盤的I/O接口,C口的低4位輸出到掃描碼,高4位作為輸入行狀態,按鍵的分布如圖所示。8255的A口作為LED段碼輸出口,與74LS244相連接,B口作為LED的位選信號輸出口,與ULN2803A相連接。8255內部的4個寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH , C口:7FFEH 3、D/A電路功能:將波形樣值的數字編碼轉換成模擬值;完成單極性向雙極性的波形輸出;構成由兩片0832和一塊LM324運放組成。0832(1)是參考電壓提供者,單片機向0832(1)內的鎖存器送數字編碼,不同的編碼會產生不同的輸出值,在本發生器中,可輸出1V、2V、3V、4V、5V等五個模擬值,這些值作為0832(2)的參考電壓,使0832(2)輸出波形信號時,其幅度是可調的。0832(2)用于產生各種波形信號,單片機在波形產生程序的控制下,生成波形樣值編碼,并送到0832(2)中的鎖存器,經過D/A轉換,得到波形的模擬樣值點,假如N個點就構成波形的一個周期,那么0832(2)輸出N個樣值點后,樣值點形成運動軌跡,就是波形信號的一個周期。重復輸出N個點后,由此成第二個周期,第三個周期……。這樣0832(2)就能連續的輸出周期變化的波形信號。運放A1是直流放大器,運放A2是單極性電壓放大器,運放A3是雙極性驅動放大器,使波形信號能帶得起負載。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、電源電路:功能:為波形發生器提供直流能量;構成由變壓器、整流硅堆,穩壓塊7805組成。220V的交流電,經過開關,保險管(1.5A/250V),到變壓器降壓,由220V降為10V,通過硅堆將交流電變成直流電,對于諧波,用4700μF的電解電容給予濾除。為保證直流電壓穩定,使用7805進行穩壓。最后,+5V電源配送到各用電負載。
上傳時間: 2013-11-08
上傳用戶:685
介紹用PIC16F84單片機制作的電子密碼鎖。PIC16F84單片機共18個引腳,13個可用I/O接口。芯片內有1K×14的FLASHROM程序存儲器,36×8的靜態RAM的通用寄存器,64×8的EEPROM的數據存儲器,8級深度的硬堆棧。 用PIC單片機設計的電子密碼鎖微芯公司生產的PIC8位COMS單片機,采用類RISC指令集和哈弗總線結構,以及先進的流水線時序,與傳統51單片機相比其在速度和性能方面更具優越性和先進性。PIC單片機的另一個優點是片上硬件資源豐富,集成常見的EPROM、DAC、PWM以及看門狗電路。這使得硬件電路的設計更加簡單,節約設計成本,提高整機性能。因此PIC單片機已成為產品開發,尤其是產品設計和研制階段的首選控制器。本文介紹用PIC16F84單片機制作的電子密碼鎖。PIC16F84單片機共18個引腳,13個可用I/O接口。芯片內有1K×14的FLASHROM程序存儲器,36×8的靜態RAM的通用寄存器,64×8的EEPROM的數據存儲器,8級深度的硬堆棧。硬件設計 電路原理見圖1。Xx8位數據線接4x4鍵盤矩陣電路,面板布局見表1,A、B、C、D為備用功能鍵。RA0、RA7輸出4組編碼二進制數據,經74LS139譯碼后輸出逐行掃描信號,送RB4-RB7列信號輸入端。余下半個139譯碼器動揚聲器。RB2接中功率三極管基極,驅動繼電器動作。有效密碼長度為4位,根據實際情況,可通過修改源程序增加密碼位數。產品初始密碼為3345,這是一隨機數,無特殊意義,目的是為防止被套解。用戶可按*號鍵修改密碼,按#號鍵結束。輸入密碼并按#號確認之后,腳輸出RB2腳輸出高電平,繼電器閉合,執行一次開鎖動作。 若用戶輸入的密碼正確,揚聲器發出一聲稍長的“滴”提示聲,若輸入的密碼與上次修改的不符,則發出短促的“滴”聲。連續3次輸入密碼錯誤之后,程序鎖死,揚聲器報警。直到CPU被復位或從新上電。軟件設計 軟件流程圖見圖3。CPU上電或復位之后將最近一次修改并保存到EEPROM的密碼讀出,最為參照密匙。然后等待用戶輸入開鎖密碼。若5分鐘以內沒有接受到用戶的任何輸入,CPU自動轉入掉電模式,用戶輸入任意值可喚醒CPU。每次修改密碼之后,CPU將新的密碼存入內部4個連續的EEPROM單元,掉電后該數據任有效。每執行一次開鎖指令,CPU將當前輸入密碼與該值比較,看是否真確,并給出相應的提示和控制。布 局 所有元件均使用SMD表貼封裝,縮小體積,便于產品安裝,60X60雙面PCB板,頂層是一體化輸入鍵盤,底層是元件層。成型后的產品體積小巧,能很方便的嵌入防盜鐵門、保險箱柜。
上傳時間: 2013-10-31
上傳用戶:uuuuuuu
用單片機AT89C51改造普通雙桶洗衣機:AT89C2051作為AT89C51的簡化版雖然去掉了P0、P2等端口,使I/O口減少了,但是卻增加了一個電壓比較器,因此其功能在某些方面反而有所增強,如能用來處理模擬量、進行簡單的模數轉換等。本文利用這一功能設計了一個數字電容表,可測量容量小于2微法的電容器的容量,采用3位半數字顯示,最大顯示值為1999,讀數單位統一采用毫微法(nf),量程分四檔,讀數分別乘以相應的倍率。電路工作原理 本數字電容表以電容器的充電規律作為測量依據,測試原理見圖1。電源電路圖。 壓E+經電阻R給被測電容CX充電,CX兩端原電壓隨充電時間的增加而上升。當充電時間t等于RC時間常數τ時,CX兩端電壓約為電源電壓的63.2%,即0.632E+。數字電容表就是以該電壓作為測試基準電壓,測量電容器充電達到該電壓的時間,便能知道電容器的容量。例如,設電阻R的阻值為1千歐,CX兩端電壓上升到0.632E+所需的時間為1毫秒,那么由公式τ=RC可知CX的容量為1微法。 測量電路如圖2所示。A為AT89C2051內部構造的電壓比較器,AT89C2051 圖2 的P1.0和P1.1口除了作I/O口外,還有一個功能是作為電壓比較器的輸入端,P1.0為同相輸入端,P1.1為反相輸入端,電壓比較器的比較結果存入P3.6口對應的寄存器,P3.6口在AT89C2051外部無引腳。電壓比較器的基準電壓設定為0.632E+,在CX兩端電壓從0升到0.632E+的過程中,P3.6口輸出為0,當電池電壓CX兩端電壓一旦超過0.632E+時,P3.6口輸出變為1。以P3.6口的輸出電平為依據,用AT89C2051內部的定時器T0對充電時間進行計數,再將計數結果顯示出來即得出測量結果。整機電路見圖3。電路由單片機電路、電容充電測量電路和數碼顯示電路等 圖3 部分組成。AT89C2051內部的電壓比較器和電阻R2-R7等組成測量電路,其中R2-R5為量程電阻,由波段開關S1選擇使用,電壓比較器的基準電壓由5V電源電壓經R6、RP1、R7分壓后得到,調節RP1可調整基準電壓。當P1.2口在程序的控制下輸出高電平時,電容CX即開始充電。量程電阻R2-R5每檔以10倍遞減,故每檔顯示讀數以10倍遞增。由于單片機內部P1.2口的上拉電阻經實測約為200K,其輸出電平不能作為充電電壓用,故用R5兼作其上拉電阻,由于其它三個充電電阻和R5是串聯關系,因此R2、R3、R4應由標準值減去1K,分別為999K、99K、9K。由于999K和1M相對誤差較小,所以R2還是取1M。數碼管DS1-DS4、電阻R8-R14等組成數碼顯示電路。本機采用動態掃描顯示的方式,用軟件對字形碼譯碼。P3.0-P3.5、P3.7口作數碼顯示七段筆劃字形碼的輸出,P1.3-P1.6口作四個數碼管的動態掃描位驅動碼輸出。這里采用了共陰數碼管,由于AT89C2051的P1.3-P1.6口有25mA的下拉電流能力,所以不用三極管就能驅動數碼管。R8-R14為P3.0-P3.5、P3.7口的上拉電阻,用以驅動數碼管的各字段,當P3的某一端口輸出低電平時其對應的字段筆劃不點亮,而當其輸出高電平時,則對應的上拉電阻即能點亮相應的字段筆劃。
上傳時間: 2013-12-31
上傳用戶:ming529
用AT89C2051單片機制作的數字電容表:AT89C2051作為AT89C51的簡化版雖然去掉了P0、P2等端口,使I/O口減少了,但是卻增加了一個電壓比較器,因此其功能在某些方面反而有所增強,如能用來處理模擬量、進行簡單的模數轉換等。本文利用這一功能設計了一個數字電容表,可測量容量小于2微法的電容器的容量,采用3位半數字顯示,最大顯示值為1999,讀數單位統一采用毫微法(nf),量程分四檔,讀數分別乘以相應的倍率。
上傳時間: 2013-11-19
上傳用戶:wuyuying