前面我們做了定時器的實驗,現(xiàn)在來看一看計數(shù)實驗,在工作中計數(shù)常常會有兩種要求:第一、將計數(shù)的值顯示出來,第二、計數(shù)值到一定程度即中斷報警。第一種如各種計數(shù)器、里程表,第二種如前面例中講到的生產(chǎn)線上的計
我們在學(xué)單片機時我們第一個例程就是燈的閃爍,那是用延時程序做的,現(xiàn)在回想起來,這樣做不很恰當(dāng),為什么呢?我們的主程序做了燈的閃爍,就不能再干其它的事了,難道單片機只能這樣工作嗎?當(dāng)然不是,我們能用定時器
有關(guān)單片機中斷系統(tǒng)的概念:什么是中斷,我們從一個生活中的例程引入。你正在家中看書,突然電話鈴響了,你放下書本,去接電話,和來電話的人交談,然后放下電話,回來繼續(xù)看你的書。這就是生活中的“中斷&rdqu
從上一節(jié)我們已經(jīng)得知,單片機中的定時/計數(shù)器都能有多種用途,那么我怎樣才能讓它們工作于我所需要的用途呢?這就要通過定時/計數(shù)器的方式控制字來設(shè)置。在單片機中有兩個特殊功能寄存器與定時/計數(shù)有關(guān),這就是TMOD
一、計數(shù)概念的引入從選票的統(tǒng)計談起:畫“正”。這就是計數(shù),生活中計數(shù)的例程處處可見。例:錄音機上的計數(shù)器、家里面用的電度表、汽車上的里程表等等,再舉一個工業(yè)生產(chǎn)中的例程,線纜行業(yè)在電線生產(chǎn)出
單片機與應(yīng)用處理器的核心區(qū)別到底是什么呢?是核心主頻的差異?還是Linux系統(tǒng)的支持?又或者是處理器的架構(gòu)?本文將以NXP的Cortex-M系列為例做簡要介紹。
前面那些流水燈的例程,我們已經(jīng)習(xí)慣了“位”一位就是一盞燈的亮和滅,而我們學(xué)的指令卻全都是用“字節(jié)”來介紹的:字節(jié)的移動、加法、減法、邏輯運算、移位等等。用字節(jié)來處理一些數(shù)學(xué)問題,比
條件轉(zhuǎn)移指令是指在滿足一定條件時進(jìn)行相對轉(zhuǎn)移。判A內(nèi)容是否為0轉(zhuǎn)移指令JZ relJNZ rel第一指令的功能是:如果(A)=0,則轉(zhuǎn)移,不然次序執(zhí)行(執(zhí)行本指令的下一條指令)。轉(zhuǎn)移到什么地方去呢?如果按照傳統(tǒng)的辦法,就要算
ANL A,Rn ;A與Rn中的值按位'與',結(jié)果送入A中ANL A,direct ;A與direct中的值按位'與',結(jié)果送入A中ANL A,@Ri ;A與間址尋址單元@Ri中的值按位'與',結(jié)果送入A中ANL A,#data ;A與立即數(shù)data按位'與',結(jié)果送入A中ANL d
對單片機的累加器A的邏輯操作:CLR A ;將A中的值清0,單周期單字節(jié)指令,與MOV A,#00H效果相同。CPL A ;將A中的值按位取反RL A ;將A中的值邏輯左移RLC A ;將A中的值加上進(jìn)位位進(jìn)行邏輯左移RR A ;將A中的值進(jìn)行邏輯右
不帶進(jìn)位位的單片機加法指令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ù)地閃爍呢?實際上就是要燈亮一段時間,再滅一