對單片機的累加器A的邏輯操作:CLR A ;將A中的值清0,單周期單字節(jié)指令,與MOV A,#00H效果相同。CPL A ;將A中的值按位取反RL A ;將A中的值邏輯左移RLC A ;將A中的值加上進位位進行邏輯左移RR A ;將A中的值進行邏輯右
不帶進位位的單片機加法指令A(yù)DD A,#DATA ;例:ADD A,#10HADD A,direct ;例:ADD A,10HADD A,Rn ;例:ADD A,R7ADD A,@Ri ;例:ADD A,@R0用途:將A中的值與其后面的值相加,最終結(jié)果否是回到A中。例:MOV A,#30HA
自然界運行著各種形式的正弦波,比如海浪。地震,聲波,空氣中傳播的聲音或者身體運轉(zhuǎn)的自然節(jié)律,物理世界里,能量,振動粒子和不可見的力無處不見。即使是光也有自己的基
單片機的累加器A與片外RAM之間的數(shù)據(jù)傳遞類指令MOVX A,@RiMOVX @Ri,AMOVX A,@DPTRMOVX @DPTR,A說明:1)在51系列單片機中,與外部存儲器RAM打交道的只能是A累加器。所有需要傳送入外部RAM的數(shù)據(jù)必需要通過A送去,而所
單片機數(shù)據(jù)傳遞類指令(3)以直接地址為目的操作數(shù)的指令MOV direct,A 例: MOV 20H,AMOV direct,Rn MOV 20H,R1MOV direct1,direct2 MOV 20H,30HMOV direct,@Ri MOV 20H,@R1MOV direct,#data MOV 20H,#34H(4)以間接地址
通過前面的學(xué)習(xí),我們已經(jīng)了解了單片機內(nèi)部的結(jié)構(gòu),并且也已經(jīng)知道,要控制單片機,讓它為我們干學(xué),要用指令,我們已學(xué)了幾條指令,但很零散,從現(xiàn)在開始,我們將要系統(tǒng)地學(xué)習(xí)8051單片機的指令部份。
通過前面的學(xué)習(xí),我們已知單片機的內(nèi)部有ROM、有RAM、有并行I/O口,那么,除了這些東西之外,單片機內(nèi)部究竟還有些什么,這些個零碎的東西怎么連在一起的,讓我們來對單片機內(nèi)部的寄存器作一個完整的功能分析吧!
一、確定任務(wù)開發(fā)單片機最小系統(tǒng)二、任務(wù)分析:該系統(tǒng)具有的功能:(1)具有2位LED數(shù)碼管顯示功能。(2)具有八路發(fā)光二極管顯示各種流水燈。(3)可以完成各種奏樂,報警等發(fā)聲音
上兩次我們做過兩個實驗,都是讓P1.0這個管腳使燈亮,我們能設(shè)想:既然P1.0能讓燈亮,那么其它的管腳可不能呢?看一下圖1,它是8031單片機管腳的說明,在P1.0旁邊有P1.1,P1.2….P1.7,它們是否都能讓燈亮呢?除
上一次課中,我們已經(jīng)知道,程序中的符號R7、R6是代表了一個個的RAM單元,是用來放一些數(shù)據(jù)的,下面我們再來看一下其它符號的含義。DELAY: MOV R7,#250 ;(6)D1: MOV R6,#250 ;(7)D2: DJNZ R6,D2
上一次我們的程序?qū)嵲谑菦]什么用,要燈亮還要重寫一下片子,下面我們要讓燈持續(xù)地閃爍,這就有一定的實用價值了,比如能把它當(dāng)成汽車上的一個信號燈用了。怎樣才能讓燈持續(xù)地閃爍呢?實際上就是要燈亮一段時間,再滅一
我們來思考一個問題,當(dāng)我們在編程器中把一條指令寫進單片要內(nèi)部,然后取下單片機,單片機就可以執(zhí)行這條指令,那么這條指令一定保存在單片機的某個地方,并且這個地方在單片機掉電后依然可以保持這條指令不會丟失,這是個什么地方呢?這個地方就是單片機內(nèi)部的只讀存儲器即ROM(READ ONLY MEMORY)。為什么稱它為只讀存儲器呢?剛才我們不是明明把兩個數(shù)字寫進去了嗎?原來在89C51中的ROM是一種電可擦除的ROM,稱為FLASH ROM,剛才我們是用的編程器,在特殊的條件下由外部設(shè)備對ROM進行寫的操作,在單片機正常工作條件下,只能從那面讀,不能把數(shù)據(jù)寫進去,所以我們還是把它稱為ROM。
隨機數(shù)在單片機的應(yīng)用中也是很多的,當(dāng)然產(chǎn)生隨機數(shù)的方法有很多,當(dāng)中有一個就是利用單片機定時器,取出未知的定時器THX和TLX的值,再加以運算得到一個規(guī)定范圍內(nèi)的隨機數(shù)值。
底層驅(qū)動是程序以訪問底層硬件的形式實現(xiàn)人機交互,驅(qū)動程序和應(yīng)用程序之間需要實現(xiàn)相應(yīng)的信息交互,一方面,應(yīng)用程序通過對驅(qū)動程序發(fā)送相應(yīng)的指令,實現(xiàn) 硬件控制的動作指令,另一方面,驅(qū)動程序?qū)⒂布x寫的狀態(tài)、從硬件上獲得的數(shù)據(jù)傳送給應(yīng)用程序,實現(xiàn)應(yīng)用程序與驅(qū)動程序間的交互。
51系列單片機內(nèi)部的串行口具有通信的功能,該串口可以作為通信接口,利用該串行口與PC機的串行口COM1或COM2進行串行通信,將單片機采集的數(shù)據(jù)傳送到PC機中,由PC機的高級語言或數(shù)據(jù)庫語言對數(shù)據(jù)進行整理及統(tǒng)計等復(fù)雜處理,就能滿足實際的應(yīng)用需要。
一、 程序運行跑飛現(xiàn)象:單片機中的程序計數(shù)器(PC)的值出乎我們所需要的,發(fā)生了異常的偏移,脫離了原本設(shè)定好的程序要執(zhí)行的位置,進入原定程序以外的區(qū)域,例如:程序的空白區(qū)、程序以外的空間或者是某種死循環(huán)中。
1、4位共陽數(shù)碼管的有一個位的其中一段不亮,而其他位的該段能正常顯示。這有些不符合常理,因為共陽數(shù)碼管的4個為的段是連在一起的,如果是程序問題或者硬件連接有問題,應(yīng)該4位全不亮。原因:經(jīng)排查,原因是發(fā)現(xiàn)電
c8051f單片機是在MCS51單片機基礎(chǔ)上發(fā)展起來的,既有繼承,又有很大的創(chuàng)新。按照功能可分為專用型和通用型。專用型:100MHz高速型的如f120芯片;24位高分辨率AD的如f350芯片;帶usb功能的芯片如f320和f340;超低功耗的芯片如f410;還有帶CAN總線的芯片如f040和f060。通用型:f020,f330d等,內(nèi)部帶有AD,DA,SPI,I2C,WDT,PWM,uart,片內(nèi)溫度傳感器等,有的還可以擴展外部數(shù)據(jù)總線。
位運算應(yīng)用口訣:清零取位要用與,某位置一可用或,若要取反和交換,輕輕松松用異或!移位運算要點1 它們都是雙目運算符,兩個運算分量都是整形,結(jié)果也是整形。2 "<<" 左移:右邊空出的位上補0,左邊的位將從字頭擠掉
直接訪問寄存器和端口定義sfr P0 0x80sfr P1 0x81sfr ADCON; 0xDEsbit EA 0x9F操作ADCON = 0x08;P1 = 0xFF;io_status = P0 ;EA = 1;在使用了interrupt 1 關(guān)鍵字之后,會自動生成中斷向量在 ISR中不能 與其他 “