问题标签 [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 投票
3 回答
965 浏览

c - Configure port1 of 8051 micro-controller as input

I am writing a very simple application which allows one to change the temperature. The temperature is displayed using LEDS (BCD format)

I wrote the following code in Keil C51:

I then complied this and obtained the Intel hex file which i then tried to simulate using the Edsim.

According to the C code the temp should change when prog=1 and when either up(p1.0) or down(p1.1) is pressed, but in the simulation it only changes when both select(p1.7) and up/down is pressed!

Why is this happening?

0 投票
1 回答
439 浏览

c - 8051 中外部中断的素数例程

我为8051写了一个中断例程,使用Keil C51,如下:

当我试图模拟它时,它显示正确的素数直到 128,然后它变成一个 8 位计数器,然后返回素数显示,即在 127(最后一个预期的素数)之后,输出为 128,129,130​​。 ...255,质数直到 127,128,129....

我还为外部中断 0 编写了一个例程,它是一个 4 位计数器(它工作正常),但我想这不应该影响上述内容。

0 投票
2 回答
1835 浏览

c - 8051F340 微控制器中的闪存被擦除

好吧,我希望这个问题适合 Stackoverflow(如果不是这样,我已经想道歉了)

我有来自 Silabs 的 C8051F340 微控制器。我写了一个小接口,它将信息存储在来自 uC 的非易失性闪存中。现在就像在描述的数据表中一样,我将所有数据保存在地址 0x0200 - 0x0300 之间。要在那里复制我的数据,我只需使用 memcpy。

好吧,复制本身运行良好(我查看了闪存,它正确保存了我的数据) - 如果我现在断开我的 uC 并在 5 秒内再次连接它,数据仍然存在。但是,如果我让它断开连接,我的数据或多或少会“重置” - 这意味着它每次都会获得几乎相同的“重置值”。那我做错了什么?我的意思是闪存数据不是非易失性的还是我做错了什么?

0 投票
1 回答
1481 浏览

assembly - 汇编代码中的错误

我使用了 ASEM51 汇编器,所以我可以汇编这个给定的代码。我对汇编语言的了解为零,但我必须在我的项目模型的微控制器中刻录这段代码。这是超声波测距仪的代码。我使用“M-IDE Studio for MCS-51”来模拟代码。它在第 (51) 行出现一个错误,指出“符号未定义”。给出此错误的行是:

我需要删除这个错误,这样我才能成功地刻录这个程序。请不要以“在你开始跑步之前走”的方式发表评论,因为我不是要求完成我的整个代码,因为我已经说过我不了解该语言,而且编码是在一个参考,其中编码未对齐,因此有 40 个错误,我自己整理出来。这只是一个错误。以下是 ASM 文件的相应链接以及我从中获取代码的参考。

http://www.mediafire.com/file/kp738c4gr32bgy4/ULTRSND.asm http://kitsnspares.com/admin/pdffiles/Ultrasonic%20Distance%20Meter.pdf(最后两页)

0 投票
1 回答
2129 浏览

assembly - 在汇编程序中移动(移位)两个寄存器

我有 8 个 LED 和 2 个按钮,最初第一个和最后一个 LED 点亮,如果我按下第一个按钮,第一个 LED 向右移动,如果我按下第二个按钮,最后一个 LED 向左移动。如果两个灯“相遇”,通过相互转换,它们就会关闭。

按下按钮后,我不知道如何更新单行上的 LED,所以我为每个按钮制作了 2 行,P1 和 P2。第一行似乎正确移动,但第二行真的搞砸了。我究竟做错了什么?

下面是我的代码:

0 投票
1 回答
1558 浏览

c - 8051/C:按下按钮时进入闪烁模式,再次按下或 30 秒后退出

所以我有一个 LED 和一个按钮。

按下按钮时,LED 应开始闪烁。它要么在 30 秒后停止闪烁,要么在再次按下按钮时停止闪烁。

我已经实现了进入闪烁状态并在30s后离开,但我不知道如何通过按下按钮随时离开。任何帮助表示赞赏!

0 投票
2 回答
1885 浏览

serial-port - 微控制器 8051 中的异步 UART 传输

嗨,我正在尝试将我的 89c52 与 sim548c 模块通信。我正在发送 AT 命令,然后让微控制器将所有回复存储在一个数组中,并通过搜索功能查看是否发送了正确的回复,以便它可以继续执行下一个 AT 命令。这需要双向串行传输。我必须首先串行发送 AT 命令,然后启用接收并将来自模块的所有回复存储在一个数组中。我正在使用这个程序,但我无法让微控制器接受传入的数据并将其存储在数组中。它传输成功但没有收到。你能确定是什么问题吗?

0 投票
1 回答
795 浏览

md5 - 8051 MCU 的 SHA1 实现?

我正在为 8051 微控制器寻找一种节省空间的 SHA1 或类似加密哈希的实现。C 或组装。到目前为止,谷歌搜索一无所获。有什么指导吗?

0 投票
2 回答
654 浏览

c - 这个 for() 循环迭代了多少次?

我不确定我是否在这个 for 循环中遗漏了一些东西。我希望它在循环内执行 8 次代码,这将导致它在 LCD 上输出 8 个字符,但它循环了 7 次,我只看到 7 个字符。我为此使用了 Keil 编译器。请问谁能发现我哪里弄错了?

0 投票
6 回答
12990 浏览

c - 有没有办法解决C中的单个位?

我已经对位可寻址微控制器进行了一些研究。在我的路径中遇到的唯一一个是英特尔 MCS-51(维基页面),它今天仍然非常常用......我想知道你是否可以直接在 C 中解决一些问题,例如在 SFR 区域wiki 8051内存架构

我在 SFR 中寻址的位,它们是直接位寻址的,还是字节寻址的位域中的按位运算,或者完全是别的什么?

具体来说,从这里开始:检查是否设置了单个位,看起来该位是直接用 MOV 操作的,我想知道这在 C(带扩展名)中是否可行,或者它只是看起来像按位运算,但在背景有一些只使用字节的编译器吗?

作为后续问题,是否有任何可寻址的现代处理器?