① 關於單片機,用匯編語言
#include<reg51.h>
#defineucharunsignedchar
sbitled1=P0^0;
sbitled2=P0^1;
sbitkey=P3^0;
voiddelay(ucharx)
{
uchari,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
main()
{
ucharflag;
while(1)
{
if(key==0)
{
delay(30);
if(key==0)
{
while(key==0);
flag++;
flag%=4;
switch(flag)
{
case0:led1=1;led2=0;break;
case1:led1=0;led2=1;break;
case2:led1=0;led2=0;break;
case3:led1=1;led2=1;break;
default:break;
}
}
}
}
}
② 單片機匯編語言
mov a,40h; A=50H
mov r0,a ;R0=50H
mov @r0,20h ;(50H)=30h
mov 50h,r0 ;(50H)=50H
mov a,@r0 ; A=50H
按照順序執行最後的結果是:
(20H)=30H,(30H)=40H,(40H)=30H,(50H)=50H ,A=50H。
③ 單片機(匯編語言)程序
開發當然是用C,又快又易懂好維護,但是想要優化程序還是要懂匯編的,要不然實現同樣一個功能的程序,好的程序員可以把程序設計得又短又快,而不做優化的可能會又臭又長,2K以下可以搞定的,你非要搞到4K以上去那最終產品的成本每個至少會相差幾毛到一兩塊錢,而且成本升高時質量卻是下降的,這樣當然就不好了,所以我個人認為做單片機編程,應當是匯編和C都會才是最好的,次一點的是會C,且能大致看懂匯編,可以幫助優化C程序,
只會匯編,一個程序開發下來,得花幾周到幾個月,開發成本太高了,不值得
只會C完全不懂匯編,那也是很難做出高質量的單片機程序的
④ 單片機匯編語言程序
問題較多。
1. 延時程序:
DELAY:
DS1:MOV R4,#0X7F
DS2:MOV R5,#250
......
其中的#0X7F,#代表數字,0x7F代表16進制形式數字,即十進制127;
#250就簡單了,就是數字,250。
2。DPTR增1是什麼意思,是0100增1嗎?
是的,DPTR的內容將變為0101。
⑤ 單片機匯編程序
SJMP $就是「原地踏步走」的意思,即當程序執行的該處時,什麼事也不做。一般用來進行延時作用
SJMP $是在原地循環,一般都用在等待中斷到來,然後進入中斷處理程序。
處理完了,再繼續在原地循環。
比如你的手機現在不用了,估計也在這里循環,你按下鍵,它就當是有中斷
來了,就去處理,處理完了,它又開始循環等待你的操作了。
END是每個程序必須寫的指令,如果你的程序走到了這條指令就停下來了。
一般的程序是不會讓它走到這條指令的,因為走到了就結束了,不能去處理
你的實時中斷了。
引用:http://..com/question/92880942.html
dxw0712的回答
⑥ 急求!單片機匯編語言寫程序:
;本程序晶振為12MHZ
SWBITp0.0 ;存放按鍵值
CNTEQU30H ;存放1s計數值
DATEEQU31H ;存放數據值
ORG0000H
LJMPMAIN
ORG0030H
MAIN: MOVTMOD,#01H ;定時器為T0工作方式1
MOVTH0,#3CH;定時50ms
MOVTL0,#0B0H
MOVCNT,#20 ;1s初值
MOVDATE,#00H ;數據初始值為0
SETBTR0
MLOOP:JNBTF0,$;50ms?
CLRTF0
MOVTH0,#0F0H ;50mS定時重設
MOVTL0,#60H
SETBSW ;讀I/O口之前先寫1
JNBSW,ML01 ;判斷按鍵
DJNZCNT,ML02 ;1s到了沒?
MOVCNT,#20
INCDATE ;數據值加1
ML01: MOVDATE,#00H ;數據值清零
ML02: MOVA,DATE
MOVDPTR,#LED7 ;差數碼管顯示碼
MOVCA,@A+DPTR
MOVP1,A ;七段碼值送顯示
AJMPMLOOP
;====LED段碼表====
LED7: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB80H,90H,88H,83H,86H,0A1H,86H,8EH
流程圖為:
希望可以幫助你。
⑦ 單片機匯編語言程序的三種基本結構
匯編語言程序有順序程序、分支程序、循環程序三種。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。
分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。
(7)單片機匯編程序擴展閱讀:
注意事項:
匯編指令不區分大小寫,目的操作數是存結果的,原操作數是被操作的。
二進制數後跟b,十六進制數後跟h,十進制數不需特殊標記。
匯編源程序中,數據不能以字母開頭,需要在前面加上0,如0a000h。
⑧ 單片機匯編語言實例
參考一下:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/8dd9ee9443f40e117af480ee.html
⑨ 單片機匯編語言是什麼
要控制單片機,讓單片機按照程序工作,就需要告訴單片機怎麼工作,需要一種計算機語言(單片機=單片微型計算機),最基本的是機器語言,是一堆二進制代碼。操作數,指令(控制單片機運行的命令)都用二進制代碼表示。而匯編語言就是將二進制代碼一對一的換成字母,十六進制數等易於理解,閱讀的語言,用於控制單片機
當然,更深入的學習後會有偽指令(並不對應與二進制代碼),這些偽指令在匯編(將匯編語言還原為二進制代碼的過程)的時候會被去掉,然後利用其提供的信息進行匯編。
⑩ 單片機匯編語言
DATA1 BIT P1.0;DATA不能作為符號名定義,改為DATA1 BIT表示P1.0定義為DATA1
SCK BIT P1.1
noACK EQU 0;noACK 定義為0
ACK EQU 1