微控制器實驗 跑馬燈

2021-08-28 13:04:33 字數 1734 閱讀 9508

實驗效果:

知識點:

**:

org 	0000h			;主程式

main: mov a,#0feh ;acc初始化,11111110b

loop: mov p1,a ;將acc的資料傳送到p1口

lcall delay ;呼叫延遲子程式

rl a ;將acc中的資料左右一位

ljmp loop ;回到loop標記處,點亮下一盞燈

delay: mov r1,#200 ;延時子程式

d1: mov r2,#150

d2: djnz r2,d2

djnz r1,d1

ret ;返回主程式

end

我們知道控制p1口的數值可以使得led燈亮或者滅。

那怎麼改變p1口的數值呢?

我們可以通過rl指令。

原理:

我們將11111110b傳給p1口,再用rl指令將11111110b左移,改變11111110b中0的位置,來達到改變p1口8位的數值,從而控制led的亮滅。

rl指令

格式:rl a

功能:將acc中的資料迴圈左移一位,以形成新的資料

rl指令

格式:rr a

功能:同上,迴圈左右移

高128單元

如圖:即80h~ffh

高128單元,稱為特殊功能暫存器區,也稱專用功能暫存器區。這個區包含22個專用暫存器。

這個區主要存放相應功能部件的控制命令、狀態或資料。

特殊功能暫存器:

這些專用暫存器分為3類:

累加器a(或acc)

acc是乙個8位暫存器,常用a表示。

acc是乙個很重要的暫存器,運算的時候經常會用到。

一方面它可以做加法器,一方面也可以作為暫存器。

累加器的常用功能:

存放運算元和運算後的結果

內部與外部ram資料傳送的中轉站

一般來說,a代表累加器,而acc代表累加器的位址。

程式狀態字(psw)暫存器

psw是乙個8位暫存器,用於存放執行指令後的有關狀態資訊。

如圖:進製標誌位cy或c(psw.7)

標誌加法與減法運算中的進製與借位狀態。

加法中:若有進製則cy=1,否則為0。

減法中:若有借位則cy=1,否則為0。

它是最常用到的標誌,通常在位傳送、位與、位或等操作中使用。

輔助進製標誌位ac(psw.6)

用在加或減運算中,表示低四位有沒有向高四位進製或借位。

若有則ac=1,否則為0。

暫存器選擇位rs1和rs0(psw.4和psw.3)

使用者可以通過改變他們的值,來選擇當前工作暫存器區的組別。

如圖:

資料指標(dptr)

是乙個16位的暫存器,本質是兩個8位暫存器組合而成。

dptr比較靈活:

作為16位暫存器使用,此時可以對64k的外部資料儲存器和i/o位址進行定址。

作為兩個8位暫存器使用,此時dph為dptr的高位元組,dpl為dptr的低位元組。

-end-

微控制器控制跑馬燈

一 跑馬燈和流水燈的區別 好多人分不清跑馬燈和流水燈,還以為是同一種狀態,雖然難度等級是一樣的,但是燈的亮滅顯示方式是不一樣的。請看下圖 二 微控制器控制led燈的常用電路接法 弄清楚跑馬燈的顯示狀態後可以開始進行設計了,在日常的跑馬燈設計電路中led燈一般接為這兩種形式,共電源或共地,也就是通常說...

51微控制器實現跑馬燈

今天準備重新把課設時自己焊的51微控制器班子拿出來玩一玩。我的板子晶振是12mhz的,led燈只有兩個,分別接了p0.0和p0.1。下面是跑馬燈的實現,p0是乙個8位的數,每個位就代表了它對應的io口的電平輸出,當然因為我的板子設計時led另一端接的vcc而不是gnd,所以另一端,也就是微控制器端需...

51微控制器跑馬燈程式

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 c documents and settings administrator 桌面 脈衝 mai xheng.uv2 project fil...