1樓:
這個是外部擴充套件的ram,fef0h是存資料的地址,mov dptr #0fef0h是給資料指標賦值,movx @dptr,a是間接定址,將a中資料送到外部ram的fef0h中,中斷服務程式後面應該有reti,
2樓:匿名使用者
挺容易的,看看書,這例題允許了中斷,給出了中斷處理程式,自己看書學得較為深刻。
ofefoh指的是你看的例題所用的系統的預設模擬量輸入介面的地址
還有你這個程式不全
3樓:一萬光年
clr ex1 ;關閉中斷
reti ;返回
int1:movx @dptr,a ;存轉換結果reti ;返回
4樓:賽先生德先生
初始化程式:
mov r0,#a0h; 設定片內ram首地址,存放採集資料
mov r2,#08h; 設定通道數8個
setb it1 ; 設外部中斷1為跳沿觸發,因為轉換完成後eoc產生跳變
setb ea ; 開總中斷
setb ex1 ; 開外部中斷1
mov dptr,#0fef0h ;設定通道in0地址(根據外部連線,低電平有效)
loop:movx @dptr,a ;啟動ad轉換(只要執行一條寫語句即可a值無所謂)
here: sjmp here ;等待中斷的到來,中斷未來原地踏步來了就進入中斷
中斷服務程式:(一次轉換完成eoc就有效,進入中斷程式)
movx a,@dptr ;讀取in0通道ad轉換值
movx @r0,a ;ad轉換值轉存至內部ram
inc dptr ;dptr指標加一,指向下一個通道
inc r0 ;r0加一,指向下一個ram單元
djnz r2,int1 ;當8個通道都採集完後,關閉中斷,結束
clr ea
微控制器(組合語言)程式
5樓:匿名使用者
開發當bai然是用c,又快又易懂好維
du護,但是想要優zhi化程式dao還是要懂彙編的,要不然實回現同樣一個功能答的程式,好的程式設計師可以把程式設計得又短又快,而不做優化的可能會又臭又長,2k以下可以搞定的,你非要搞到4k以上去那最終產品的成本每個至少會相差幾毛到一兩塊錢,而且成本升高時質量卻是下降的,這樣當然就不好了,所以我個人認為做微控制器程式設計,應當是彙編和c都會才是最好的,次一點的是會c,且能大致看懂彙編,可以幫助優化c程式,
只會彙編,一個程式開發下來,得花幾周到幾個月,開發成本太高了,不值得只會c完全不懂彙編,那也是很難做出高質量的微控制器程式的
6樓:匿名使用者
程式中有ret語句時表來明該程源序段是一個子bai程式,且第一條語句必
du須有標zhi號(程式中沒有),可在主程式或dao其它子程式中的lcall (或acall)語句對其進行呼叫,返回時返回到呼叫語句的下一條指令。
若這是一個完整的程式,不能用ret指令,一定要用等待(結束)指令sjmp $ 。
7樓:沙裡波特
你寫的,是一個子程式。
末尾的 ret,是返回到主程式去。
微控制器(組合語言)需要的軟體?
8樓:i多多問題多多
51微控制器是襲keil 軟體
9樓:匿名使用者
關鍵你學過什麼語言??如果學過c語言就用c,上手快。學過其他的高階語言也可以,和c也大都是相通的。要是學過彙編的話就用匯編,畢竟彙編對硬體的操作
10樓:匿名使用者
建議你還是先學微控制器c語言,這樣不會因為彙編這個攔路虎,而降低你持續學習的熱情。
微控制器組合語言填空,微控制器組合語言作業
delay mov r3,20 設定50ms計數迴圈初值 mov tmod,10h 設定時器1方式1mov th1,03ch 置定時器初值mov tl1,0b0h setb tr1 啟動t1lp1 jbc tf1 lp2 查詢計數溢位sjmp lp1 lp2 mov th1,03ch 重新制定時器初...
關於微控制器組合語言開頭幾句
0100h的意思是將start 標號後面的指令地址放到100h這個地方,這是說給編譯器聽的.ljmp start 之後的地址到9fh都給別人用.0100意思就是從下面那句話開始,到再次出現 偽 的語句之前的程式全放在從0100h這個地址開始的程式段內。0100h表示主程式的起始地址。前面的類似pc中...
51微控制器的指令是組合語言嗎
組合語言 assembly language 是一種用於電子計算機 微處理器版 微控制器或其他可程式設計器件的低權級語言,亦稱為符號語言。在組合語言中,用助記符 mnemonics 代替機器指令的操作碼,用地址符號 symbol 或標號 label 代替指令或運算元的地址。在不同的裝置中,組合語言對...