问题标签 [c51]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Keil uVision(C51编译器),一元运算符“!”是什么意思?
我正在使用 Keil uVision 4 进行编程。
我有一些这样的代码:
我可以控制`P3^3
通用输入引脚,因为在这个引脚上我有一个 PIR(脉冲红外传感器)。它在闪烁时给我 1 在那条线上,在它睡觉时给我 0。
当P3^3
被上拉到 时1
,输出为(如预期的那样)10101010101010..
当它仍然为0时,输出为(如预期的那样)0000000000000..
我得到的行为是我上面描述的,考虑到这sbit X
是由 PIR 设置/取消设置的。
那么问题来了,!
Keil C51编译器中的操作符是什么意思呢?
assembly - C51 C 编译器内联汇编到 SDCC 内联汇编
我不是很喜欢汇编,但对于一个项目,我必须将 C51 C 编译器的几行汇编代码修改为 SDCC。
这是 C51 的代码
其中,用 SDCC 编译产生
作为编译器错误/警告。
- 我知道
$
- 符号被汇编器替换为指令的实际地址 - 但是 SDCC 等价物是什么? - 如何解决
T0Run
等的警告?
assembly - SDCC/C51:重新定义 SDCC 符号
我想在SDCC下编译一个我以前在C51下编译的程序..
这将被翻译成75A800
(十六进制)
当我在 SDCC 下编译这个
在我看来,SDCC 忽略了我对 TCON 寄存器的定义,如下所示:
所以这是我的问题:
如何告诉 SDCC 使用我在另一个头文件中定义的地址?
整个事情当然是这样的:
c - printf() 导致乱码
我有这个代码:
它使用这个功能:
这是结果:
这是在 Keil C51 编译器上,在 AT89C55WD 上,printf()
通过串行端口。
到底是怎么回事?
编辑
我将 printf 行更改为
所以它看起来像一个错误printf
。程序员们,请永远不要制作一个说谎的调试工具。我祈求你。
c - 为什么使用 data 而不是 xdata 会显着减少代码空间
我曾尝试寻找答案,但找不到明确的原因。
我正在尝试优化一些 8051 C 代码以减少代码空间。我做了以下更改..
至
...并看到我的代码大小减少了 39 字节(感觉像圣诞节)。
来自:程序大小:data=9.0 ...code=10509
to:程序大小:数据=11.0 ...代码=10468
问题:为什么代码空间因如此微小的变化而减少了这么多?
c - 我想在 c51 (Keil) 的液晶显示器上打印一个多维字符数组
(数组用一堆字符初始化)
当我使数组更大时,我也会收到一条错误消息“数据段太大”。如何将数组从“CODE”复制到“XDATA”?或者这不是问题吗?
编辑:另外,当我以这种方式调用函数时,lcd 会跳过数组中的元素 [i] [] 并打印下一个元素 [i]。
任何帮助我都会非常感激。
c - 为 GCC 适配 sbit
我正在为一些 C 模块编写测试工具,其中一个包含“sbit”关键字。该代码最初是为 Keil C51 编译器编写的,其中 sbit 用于定义 sfr 中的位,更多信息请参见此处。但是,我正在使用 GCC 编写测试工具,其中未定义 sbit。我尝试了静态、const、int 和 bool 的所有组合,但似乎没有一个能满足编译器的要求。#define 也不起作用,因为这些变量在代码的更下方被赋值。
这个站点上有一个类似的问题,表明 sbit 对 GCC 来说可能太低了。无论如何,我能做些什么来解决这个问题吗?
8051 - 绝对函数地址keil 8051
C51 Keil如何定位和调用具有绝对地址的函数?后台 ROM 有一些实用功能。我想调用这些函数以优化闪存的代码空间。
microcontroller - keil c51 奇怪的掩蔽行为
我正在尝试从 c8051f040 控制器读取两个引脚。
直接读取端口可以工作,但是即使调试器显示正确的值,将相同的端口值保存到变量也不起作用。
这是一个 KEIL c51 错误还是正在优化的东西。
8051 - 8051句词计数器
我在互联网上找到了下面的这段代码,假设它可以计算 8051 MCU 上的句子。有人可以向我解释一下有问号的地方到底发生了什么。任何形式的帮助将不胜感激。