问题标签 [8051]

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.

0 投票
2 回答
6331 浏览

microcontroller - 通过 8051 微控制器上的中断进行 UART 传输

我的平台是一个 c8051F120 微控制器。我想使用中断通过 UART0 发送(=tx)字节。到目前为止,我的设计如下:

我很确定通过 Timer2(不是上述代码的一部分)对 UART0 寄存器和计时进行的初始化是正确的,因为我可以使用阻塞功能:

当我想切换到中断设计时,当然我也设置了

有人在我的设计中发现试图使用中断的缺陷吗?或者,有人有这方面的示例代码吗?谢谢!对 jszakmeister 大喊一声,他回答了我关于阅读 TCNT 寄存器的问题。

0 投票
2 回答
2928 浏览

c - 8051 μCU - 如何处理并发中断?

我一直在 8051 微控制器上编程,在处理中断时发现了一些奇怪的东西。假设发生了中断。在处理该中断时,正在发生另一个具有更高优先级的中断。控制器不应该跳入服务较高优先级的中断,然后返回到较低的中断吗?

以下说明了我的问题。连接键盘以触发外部中断 1(较低优先级)并启用定时器 0 中断(较高优先级)。



0 投票
1 回答
1449 浏览

android - 通过 USB MIDI 将 8051 微控制器与安卓平板电脑连接

我想通过 USB 将数字数据从我的 android 设备发送到 8051 微控制器(从平板电脑上的 otg 到 8051 板上的 USB MIDI),这会导致连接到 8051 的 LED 闪烁......但是当我尝试编写 USB 设备检测时代码它不起作用..我无法检测到 8051 MC。谁能告诉我我必须如何以及从哪里开始。

0 投票
2 回答
190 浏览

c - 指向结构的指针成员

我的编译器出现如下错误:

C51 编译器 V9.01 - SN:C1ADC-HAI60D 版权所有 KEIL ELEKTRONIK GmbH 1987 - 2009 * SEQUENCE.C 第 300 行中的 C260 警告:'=':指针截断 * SEQUENCE.C 第 301 行中的错误 C190:'&':不是左值

以下是我的代码:

0 投票
2 回答
2152 浏览

c - 在keil ide中从c源代码调用汇编程序

我在汇编语言中有 8051 微控制器的延迟例程。Ana 我可以在汇编语言程序中使用它们,但我想从 c 语言中使用这些例程,因为这些例程对我来说是完美的延迟。

我在下面发布的延迟代码是 delay.asm 文件...

我将这段代码包含在汇编语言中并简单地使用。但我想从 c 源代码中调用这些例程。

0 投票
3 回答
1617 浏览

c - 8051 控制器端口位读/写

这个想法是从端口读取任何位。无论如何访问一个已知位很简单,比如

但是如果我需要通过函数访问位 y?

使用 SDCC 编程和 8051 标头。

0 投票
1 回答
1499 浏览

c - 如何编程 I2C 从机模式

我不明白我将如何编写我的 MCU 以在 I2C 总线上监听它的地址并相应地执行。C 中的许多示例代码都是针对主设备的。我想更好地了解如何为从设备编写代码。我是否使用 SMB0STA 状态寄存器?我在下面发布了一个函数,我认为它会“监听”提示以启动和输出数据。0xA8是“收到自己的地址 + R。ACK 已发送”的状态代码。根据我的 C8051F020 MCU 数据表。

0 投票
2 回答
2875 浏览

assembly - 处理 8051 程序集的十六进制数

我在循环 8051 程序集中的十六进制数字以进行正确减法时遇到问题,

这是迭代 30 次并显示从 40 到 70 的值(40,41,42,43,....70)的简单代码

这就是它调整每个值的方式,

但是当我想反转循环时,即如果我想以从 70 到 40 的相反顺序输出(70,69,68,67,66,65,64,.....40)

我该怎么办?

这是第一个数字是 90 时它应该如何工作的示例

但是由于减法后没有小数调整,我怎么能达到预期的结果?

所需的输出,

90 89 88 87 86 85....

0 投票
1 回答
874 浏览

assembly - 通过单个位或作为 8051 架构上的字节设置 SFR

将整个字节分配给 SFR 或对其值应用 AND 或 OR 是否有区别?

换句话说,如果我将一些位设置为与以前相同的值,或者这会触发一些硬件反应,这是否重要?

例如我从:

然后我可以用相同的最终值

或者

甚至

有什么区别吗?

我在这里不是特别谈论 UARTCON,而是谈论 SFR 的一般机制。是一组位重要还是只是那个位的变化?

UPD我可以缩小问题的范围:即使使用CLR,SETB和?ORLAND

0 投票
0 回答
158 浏览

assembly - 用8051中的新数据替换已经发出的串口数据

我有一个数字计数程序,它将串行数据(三位)传输到超级终端。该程序每秒计数(增加/减少)。无论何时计数,它都会发送到串行输出。

但是,它只是在超级终端中添加了三个数字。我想先清除以前的数据

怎么做?我试过退格(08h)。这很奇怪,随机删除。

谢谢。