8051

    -1熱度

    1回答

    我有這樣的代碼在8051彙編: MOV A,#04H RL A MOVC A,@A+PC SJMP Cont Cont: DB 10H, 20H, 30H, 40H, 50H, 60H, 70H, 80H 的問題是,這些指令執行後,什麼是有價值的;答案是A保持值(A)= 70H。 我已經搜索了關於MOV和RL的指令,並且我明白了,但是我不清楚,剩下的指令和我們如

    -2熱度

    1回答

    我正在爲8051編譯器設計。我想聲明一個說30位置的內存,每個位置都是8位。我如何在C中聲明?

    -1熱度

    2回答

    我已經編寫了8051大約兩個月的時間,並且對C語言有點新手。我目前正在使用閃存來讀取,寫入,擦除和分析它。我目前正在編寫階段,我需要做的其中一項任務是指定一個地址位置,然後用數據填充該位置,然後遞增到下一個位置並填充補充數據。等等,直到我結束。 我的困境是我有18個地址位可以播放,目前有三個字節分配給這18位。無論如何,我可以將這18位合併爲一個int或unsigned int並且像這樣增加?或者

    0熱度

    1回答

    結束外部中斷服務程序(ISR)我寫的與硬件一個簡單的LED閃爍代碼中斷的8051 0當按下按鈕,它進入中斷服務程序(ISR)。執行後它應該回到主函數但它不會到來。 這是我的c代碼。任何積極的答覆將不勝感激。 sbit LED = P1^0; void delay(int ms) { int i; for(i=0;i<ms;i++) { TMOD =

    0熱度

    1回答

    我知道8051可以處理電平觸發和邊沿觸發的中斷。然而,爲了讓他們工作,引腳必須不斷處於高位並轉換到低位。如果設備與引腳相連的設備一直處於低電平,我希望ISR在觸發高電平時觸發,我該怎麼辦?是不是我唯一的選擇?或者我可以繞過軟件的問題嗎?

    0熱度

    3回答

    我正在用C語言編程8051,使用Si Labs IDE。我目前有三個字節:address_byte3, address_byte2, and address_byte1。然後我初始化的變量address_sum是一個unsigned long int然後做就可以了以下操作... address_sum=(address_byte3<<16)+(address_byte2<<8)+(address_

    2熱度

    1回答

    幾乎我到目前爲止所看到的所有簡單的8051程序都以代碼 LOOP: SJMP LOOP結尾。 從我的理解,我認爲上述指令通過一次又一次地調用相同的指令創建了一個無限循環。但是,什麼是具有在節目結束無限循環的目的,如果它保持連連運行,那麼什麼時候該程序被終止。

    -1熱度

    1回答

    我有嵌入式8051內核(在cypress FX2中)的遺留代碼,使用與其他版本的SDCC編譯。然而,目前的SDCC不知道_naked預選賽: delay.c:27: syntax error: token -> '_naked' ; column 21 通過 static void udelay1 (void) _naked { _asm ; lcall that got

    -3熱度

    1回答

    我正在研究8051微控制器的基礎知識。爲什麼在8051中使用11.059Mhz晶振而不是12Mhz?

    0熱度

    2回答

    我試圖在C(使用KeilμVision5,設備:AT89C51AC3)中編寫代碼,讓我輸入2個整數,然後將它們打印出來。問題是我被限制在最大的字節碼大小。 2048. 我的實際代碼需要2099字節才能運行。 任何想法如何使用更少的內存來做同樣的事情? #include <stdio.h> #include <REG52.H> int main() { int a, b;