『壹』 求 PIC 8位單片機 匯編指令比較全的,詳細點的
PIC單片機的數據手冊文檔里就有匯編指令的介紹。Microchip公司官網上有下載的。
如果要帶例子的那就找張明峰的書。他出書的時候是Microchip公司中國地區的應用工程師,很多PIC的中文版數據手冊就是他和他同事翻譯的。
『貳』 單片機用匯編做一個控制8個LED燈泡從左到右依次點亮,最後全部亮,再全部熄滅後重復前面的過程
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
//延時
voidDelayMS(uintx)
{
uchari;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
voidmain()
{
uints;
while(1)
{
P0=0xfe;
DelayMS(150);
for(s=8;s>1;s--)
{
P0=_crol_(P0,1);//P0的值向左循環移動
DelayMS(150);
}
P0=0x00;
DelayMS(150);
p0=0xff;
DelayMS(150);
(2)單片機匯編寶典擴展閱讀:
常用單片機匯編指令:
1 .MOV A,Rn寄存器內容送入累加器
2 .MOV A,direct 直接地址單元中的數據送入累加器
3 .MOV A,@Ri (i=0,1)間接RAM 中的數據送入累加器
4 .MOV A,#data立即數送入累加器
5 .MOV Rn,A 累加器內容送入寄存器
6 .MOV Rn,direct 直接地址單元中的數據送入寄存器
7 .MOV Rn,#data 立即數送入寄存器
8 .MOV direct,A 累加器內容送入直接地址單元
9 .MOV direct,Rn寄存器內容送入直接地址單元
10. MOV direct,direct 直接地址單元中的數據送入另一個直接地址單元
11 .MOV direct,@Ri (i=0,1)間接RAM 中的數據送入直接地址單元
12 MOV direct,#data立即數送入直接地址單元
13 .MOV @Ri,A (i=0,1)累加器內容送間接RAM 單元
14 .MOV @Ri,direct (i=0,1)直接地址單元數據送入間接RAM 單元
15 .MOV @Ri,#data (i=0,1)立即數送入間接RAM 單元
16 .MOV DPTR,#data16 16 位立即數送入地址寄存器
17 .MOVC A,@A+DPTR 以DPTR為基地址變址定址單元中的數據送入累加器
18 .MOVC A,@A+PC 以PC 為基地址變址定址單元中的數據送入累加器
19 .MOVX A,@Ri (i=0,1)外部RAM(8 位地址)送入累加器
20 .MOVX A,@DPTR 外部RAM(16 位地址)送入累加器
21 .MOVX @Ri,A (i=0,1)累計器送外部RAM(8 位地址)
22 .MOVX @DPTR,A 累計器送外部RAM(16 位地址)
23 .PUSH direct 直接地址單元中的數據壓入堆棧
24 .POP direct 彈棧送直接地址單元
25 .XCH A,Rn寄存器與累加器交換
26 .XCH A,direct 直接地址單元與累加器交換
27 .XCH A,@Ri (i=0,1)間接RAM 與累加器交換
28 .XCHD A,@Ri (i=0,1)間接RAM 的低半位元組與累加器交換
『叄』 單片機跑馬燈匯編程序詳細解釋
ORG
0000H
SJMP
START
ORG
0030H
START:
MOV
A,
#0FEH
;
先讓第一個發光二極體點亮
LOOP:
MOV
P1,
A
;
從P1口輸出到發光二極體
MOV
R1,
#100
;
延時0.5秒
DEL1:
MOV
R2,
#200
DEL2:
MOV
R3,
#7
DEL3:
DJNZ
R3,
DEL3
DJNZ
R2,
DEL2
DJNZ
R1,
DEL1
RL
A
;
左移一位,點亮下一個發光二極體
LJMP
LOOP
END
這個是我寫的跑馬燈程序,沒有左右振盪,自己參考參考加上去吧