8051

    5热度

    1回答

    我试过寻找这个答案,但找不到明确的原因。 我想优化一些8051 C代码以减少代码空间。我做了如下改变.. xdata unsigned char a, b; 到 data unsigned char a, b; ...看到我的代码大小由39Bytes(感觉像圣诞节)减少。 来源:程序大小:数据= 9.0 ...码= 10509 到:程序大小:数据= 11.0 ...码= 10468 问:为

    0热度

    2回答

    我用MegaWin 8051 MPC82G516A编写了一个使用Keil C的程序。当我检查英特尔生成的十六进制文件的文件大小时,它的大小为8kb(我在二进制代码窗口中看到了代码),但是当我使用Megawin的工具编程设备时,它将代码大小增加到大约29kb! ?任何人都可以提供它为什么会这样做的原因吗? 另外,奇怪的事情是它似乎是将代码写入处理器内存的顶部,而不是在开始时。代码的起始处有4个字节,

    0热度

    1回答

    众所周知,大多数8051仿真/仿真软件模拟8051处理器体系结构。 有没有这样的工具,它可以在8051处理器体系结构中附加一些额外的指令并做一些模拟和调试代码。 OR, 如果有这样做的任何方法,你可以建议,没有一个工具?

    -1热度

    3回答

    目前我在液晶屏上遇到了一些问题。我试着做一个倒数计时器,但是当我设置Hour = 0,Min = 1时,sec命中0,我的小时转向某个未知的字符,min = 59,sec = 59.我错过了什么? void Timer1(void) interrupt 3 { TF1 = 0; TH1 = 0xB1; TL1 = 0XE0; cd_msec--;

    1热度

    1回答

    我以前使用Keil编程8051微控制器。出于某种原因,我必须在SDCC中编写代码,但是今天我在编译器中遇到了非常奇怪的行为。我正在使用代码块IDE 12.11和SDCC 3.4版本。 我在编译这段简单的代码。 #include <mcs51/8051.h> #include "Serial.h" unsigned char digits[5]={0}; void main(void)

    -1热度

    2回答

    我有几个例子,除了LABEL概念外,都非常简单。 示例1本身增加25 10次,而示例2取补充寄存器A 700次。 Example-1: MOV A,#0 MOV R2,#10 AGAIN: ADD A,#25 DJNZ R2,AGAIN MOV R5,A Example-2: MOV A,#55H MOV R3

    0热度

    1回答

    这不是一项任务,我只是想学习嵌入式C从Arduino中移走。 (基于this interrupt LED example) 我想创建一个中断输入事件计数器。使用连接到P3.2的去抖按钮开关在LCD上增加一个3位数的数字。 000在启动时显示,并且中断中的触发LED确实关闭&,但显示号码不递增。我的目标是:推1:显示001,推2:显示002等按下重置返回到000. 我认为问题是用while()。当w

    0热度

    4回答

    我有一个问题设置日期,星期一和年份。我们知道每2年4月等于29天,其余为28天。所以我试着编写代码让程序知道2月的哪一年等于28或29天。 下面是我的代码,我想问的是,有没有更简单和短的方法来做到这一点? void Timer(void) interrupt 1 { if(start_timer == 1) { TF0 = 0; TH0 = 0xB1; TL0 = 0XE0; mse

    0热度

    1回答

    我有电子卡上的端口(Atmel卡与8051微控制器)。该端口名为p3_0。端口得到'1'或'0'逻辑。 1 0 1 0 ''''''' '''''''' ' ' ' ' ' ''''''' '''''' And so on.... 我需要使用C为8051(这实际上是原始的C),并编写一个代码,将知道频率是什么。最后我需要在字符数组中的频率,因为我需要将它打印到仅知道

    0热度

    1回答

    我正在尝试编写C8051F340的设备代码以通过USB从主机(PC)获取数据。我从硅实验室的一些例子,代码看起来象下面这样: void Receive_File(void) { ReadStageLength = ((BytesToRead - BytesRead) > MAX_BLOCK_SIZE_READ)? MAX_BLOCK_SIZE_READ:(BytesToRead - B