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;