實驗效果:
知識點:
**:
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位暫存器使用,此時可以對64k的外部資料儲存器和i/o位址進行定址。是乙個16位的暫存器,本質是兩個8位暫存器組合而成。
dptr比較靈活:
作為兩個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...