導航:首頁 > 操作系統 > 單片機匯編語言大佬

單片機匯編語言大佬

發布時間:2022-08-11 17:34:10

㈠ 求大佬教51單片機代碼,匯編語言

燈亮期間,又有按鍵按下,單片機,將怎麼操作?

㈡ 匯編語言寫單片機串口控製程序,求大佬

//發送端
#include "common.h"

uchar keyStatusList[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar keyValueList[]={1,2,3,4,5,6,7,8};

void main()
{
uchar keyStatus=0,i;
TMOD=0x20;
TH0=0xFD;
TL0=0xFD;
TR1=1;
SCON=0x40;

while(1)
{
keyStatus=P1;
for(i=0;i<8;i++)
{
if(keyStatus==keyStatusList[i])
{
SBUF=keyValueList[i];
while(TI==0);
TI=0;
}
}
}

}
//接收端
#include "common.h"

void main()
{
TMOD=0x20;
TH0=0xFD;
TL0=0xFD;
TR1=1;
SCON=0x50;
while(1)
{
while(RI==0);
RI=0;
P1=font[SBUF];
}

}

㈢ 單片機AD轉換,匯編語言,求助大佬!!!

匯編來做這個題,花費時間很長的,沒人願意白白浪費好幾個小時來做。

㈣ 單片機 匯編語言 求助。

ORG 0000H ;匯編標志,偽指令,就是單片機不執行
;的,表示匯編時從程序地址0000H開始
RESET:AJMP MAIN ;跳轉到MAIN
ORG 000BH ;同上,從000BH開始
AJMP ITOP ;跳轉到ITOP,不要用LCALL
ORG 0100H ;繼續偽指令...從0100H開始
MAIN: MOV SP,#60H ;堆棧從61H開始
MOV TMOD,#01H ; 定時器0在16位方式下工作
ACALL PTOMO ;調用PTOMO
HERE: AJMP HERE ;跳轉到HERE
PTOMO:MOV TLO,#0CH ;這句打錯了,是TL0
MOV THO,#0FEH ;也錯了,是TH0
;這兩句是給T0賦初值
SETB TR0 ;啟動定時器T0
SETB ET0 ;允許T0中斷
SETB EA ;中斷使能
RET ;返回
ITOP:MOV TLO,#0CH ;和PTOMO的前兩句是一樣的
MOV TH0,#0FEH ;這個就打對了呢~~
CPL P1.0 ;P1.0取反
RETI ;中斷返回

定時器的內容就看書吧~

RET
調用返回,彈出堆棧頂的兩位元組作為PC值,然後轉向這個地址

RETI
中斷返回,除了RET的功能外,還會改變一些其它寄存器的值,比如中斷優先標志等等...

PC
指向當前執行語句的下一條語句

單片機執行一條指令可以分為兩個階段:取指令 、執行指令
在取指令階段PC會自動增加,增加值為當前要執行指令位元組數
跳轉、調用、返回指令會在執行階段改變PC內容

假設
ACALL這句地址為 0104H,
HERE為0106H,
PTOMO 為0108H,
ITOP為XXXXH

執行過程如下:

首先從0000H開始
AJMP MAIN 取指時PC=0002H 執行後PC=0100H,下一條執行MAIN

MAIN執行到MOV TMOD,#01H這句時 PC=0104H

到ACALL ... 的時候,先取指令,PC=0106H,再執行ACALL
ACALL執行時,先將PC值0106H壓棧,然後將PC改為PTOMO這句的值,也就是PC=0108H

接下來到PTOMO這句,取指,PC增加,執行......直到RET

執行RET時,取指階段後PC=XXXXH,然後執行時將0106H彈回PC

於是到HERE這句,取指,PC=0108H, 執行,將PC改為0106H

響應中斷時,先將當前PC壓棧,然後機器內部自動執行一條調用指令,執行000BH地址的指令

然後又是轉移,去執行ITOP,直到RETI

如果單片機是在執行完HERE這句響應中斷,會返回到HERE處
否則,也可能返回到PTOMO這句...

此外,我猜測,PTOMO、ITOP中的O可能也是0,不過這個就無所謂了~
================ 以上

㈤ 單片機匯編語言編寫延時程序,求大佬幫看一下程序哪裡錯了

因為語言不統一,所以聽不懂。

㈥ 關於匯編語言的問題,我們學習單片機的匯編語言,但是有些語言的意思不是很懂,求大佬幫我編一下如圖的幾

1、
MOVR0,#20H
LOOP:
MOVA,R0
[email protected],A
INCR0
CJNER0,#50H,LOOP
2、
ORG0000H
LJMPMAIN
ORG000BH
LJMPT0ISR
ORG0030H
MAIN:
MOVTMOD,#01H
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
SETBET0
SETBEA
MOVR2,#5
SJMP$
T0ISR:
CLRTR0
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
DJNZR2,T0E
MOVR2,#5
CPLP1.0
T0E:
RETI
END
3、
MOVDPTR,#500H
MOVR2,#30
MOVR0,#20H
LOOP:
CLRA
MOVCA,@A+DPTR
[email protected],A
INCR0
INCDPTR
DJNZR2,LOOP
4、
MOVDPTR,#500
MOVR2,#30
MOVR0,#20H
LOOP:
MOVXA,@DPTR
MOVA,@R0
INCR0
INCDPTR
DJNZR2,LOOP

㈦ 單片機匯編語言有一道題不會做!各位大佬幫幫我

51單片機的程序89C51,通訊波特率9600/N/8/1
org 0000H
LJMP MAIN1
ORG 0023H
LJMP PCTX;
ORG 0100H
MAIN1:////////-------51單片機初始化程序------
MOV SP,#30H;
MOV TMOD,#20H;
MOV TL1,#0FDH;
MOV TH1,#0FDH;
MOV SCON,#50H;
MOV PCON,#00H;
SETB TR1;
SETB ES;
SETB EA;(總中斷開關控制,1為開,0為關)51單片機串口通信開啟
MOV R7,#00H;
MOV P1,#0FFH;
RUN1: MOV A,R7;
JZ A,RUN1;
CLR EA;//關閉總中斷處理數據
MOV R0,#70H;
MOV R3,#00H;
MOV R4,#04H;
LO: MOV 55H,@R0;
MOV A,R3;
MOV DPTR,#DATE1;
MOVC A,@A+DPTR;
CJNZ A,55H,OUT_1;//字元比對"CMD1"
INC R3;
INC R0;
DJNZ R4,LO;
CLR P1.0;
MOV R7,#00H;
SETB EA;
LJMP RUN1;
OUT_1: MOV A,#05H;
MOVC A,@A+DPTR;
CJNZ A,55H,OUT_2;//第四個字元比對」2"
MOV P1,#00H;
MOV R7,#00H;
SETB EA;
LJMP RUN1;
OUT_2: SET EA;
SETB ES;
MOV R4,#11H;//反饋錯誤數據串,帶空格17個
MOV R3,#00H;
MOV DPTR,#ERRO_D;
LOOP7: MOV A,R3;
MOV A,@A+DPTR;
MOV SBUF,A; 發送數據
JNB TI,$;
INC R3;
CLR TI;
DJNZ R4,LOOP7;
SETB EA;
MOV R7,#00H;
LJMP RUN1;
PCTX: NOP;
MOV R1,#70H;
LOOP:
MOV A,SBUF;
MOV @R1,A;
INC R1;存入數據個數(未用)
INC R7;
CLR RI;
LCALL DELAY10;
JB RI,LOOP;
LCALL DELAY10;
JB RI,LOOP;
RETI
ORG 0F00H
DATA1:
DB 43H,4DH,44H,31H,32H;// "CMD1""2"AIICS碼專成16進制
ERRO_D:
DB 74H,68H,65H,20H,63H,6FH,6DH,6DH,61H,6EH,64H,20H,65H,72H,72H,6FH,72H;//「the command error」

㈧ 大佬們,51單片機用匯編語言編流水燈,八個同時閃爍,老師給了一部分,求大佬補充完

在補充程序,也得發原程序呀,別發截圖。發原程序可以復制,再補充,可是這樣,還得照著截圖現敲那些程序,看著都費勁,就別是敲程序了。

㈨ 求助大佬用匯編語言實現 閃爍燈實驗

#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
ucharled=0xfe;
sbitk1=P1^0;
sbitk2=P1^1;
voiddelay(uchara)
{
uchari;
while(a--)for(i=0;i<120;i++);
}
main()
{
while(1)
{
P0=led;
led=_crol_(led,1);
delay(250);
while(k1==0)
{
P0=0x0f;
delay(250);
P0=0x00;
delay(250);
}
while(k2==0)
{
P0=0x00;
delay(200);
P0=0xff;
delay(200);
}
}
}

閱讀全文

與單片機匯編語言大佬相關的資料

熱點內容
java資料庫jar包 瀏覽:751
圖中的矩形命令 瀏覽:883
pdfkindle轉換 瀏覽:979
安卓手機拼音打字失靈怎麼處理 瀏覽:566
字畫投資轉拍源碼 瀏覽:200
超級馬里奧源碼製作公司 瀏覽:631
安卓機nfc功能是什麼 瀏覽:118
京東app客戶服務在哪裡 瀏覽:399
磁碟加密需要輸入密碼 瀏覽:709
淘寶app如何領心願金 瀏覽:160
魔獸重載命令 瀏覽:417
自動戰斗命令 瀏覽:187
備案時雲伺服器怎麼填寫 瀏覽:982
http代理伺服器是什麼 瀏覽:550
貴州選課伺服器密碼忘了怎麼找回 瀏覽:601
為什麼安卓手機剛買的就卡 瀏覽:241
push是什麼安卓系統應用 瀏覽:571
scan2pdf 瀏覽:404
有關程序員小說 瀏覽:49
linux文件統計命令 瀏覽:355