8051

    2热度

    1回答

    我需要在8051微控制器中重命名RAM的位寻址位置。 我用IDA Pro来反汇编二进制文件,并输出结果如下: clr RAM_29.3 clr RAM_29.7 clr P1.5 我可以重新命名端口P1或内存RAM_29,但我怎么可以重命名这些变量的每一位?是否有可能在IDA Pro反汇编做这样的事情: (clr TXpin) ,而不是 (clr P1.5) ------- (

    0热度

    1回答

    有任何软件方法可读取8051 uC端口2上空引脚的状态。我的意思是我需要在8051的未连接引脚上读0。我的8051版本没有内部上拉电阻。此外,我无法进行任何硬件更改。

    0热度

    1回答

    我现在的问题是,自从我启用中断后,程序停滞在无限循环中。如果我禁用中断,那么程序正常执行。 我甚至确保我通过将函数推入堆栈并在函数退出时弹出它们来保护函数中的寄存器(变量),但这并没有帮助。 我甚至采取了甚至用iret替换函数名(以退出中断),我仍然面临同样的问题。 我现在解决问题的唯一方法是通过不执行mov TCON,#50h来禁用中断。这让我认为在互联网上发布的中断向量地址是不正确的,而实际上

    0热度

    1回答

    这是我当前有的代码,当按下按钮时应该检测到这些代码。如果我创建函数,比如我调用同步按钮函数(getkeysync)的firstmenu函数,那么程序将工作并返回正确的密钥。但是,如果我尝试了异步路由(通过getakey)并遵循此示例,并在程序启动后约100毫秒按“右键”运行它,那么无论我按住多少键,第二个菜单的选项被跳过,然后执行menuthree功能。 我明白menuone,menutwo,me

    0热度

    1回答

    虽然与简单Studio和Silabs公司EFM8BB3(8051基于SoC)的工作,我观察到一个巨大的暂停(最多到60毫秒)一个非常低的传输速率之间每个字节传输以及i2c协议上的完整信息(通过smbus主接口)之间(最多160毫秒)。 为什么传输速度这么慢,是有什么我可以做些什么来解决这个问题?

    2热度

    1回答

    我访问了一些链接并查找了I2C编程的一些示例程序。我想写我自己的I2C协议代码。假设DS1307 RTC和LCD连接到8051.我正在使用Keil软件编写一个C程序。这是非常难写I2C的整个程序我,所以我试着在小零件打破程序: 模块1:定义和设置用于LCD和DS1307 RTC 模块2引脚:用于编写C代码DS1307(使功能DS1307例如读,写) 模块3:写LCD C代码(数据,命令初始化等)

    -2热度

    1回答

    我想在特定行列中显示字母16x2液晶屏显示屏8051MCU。例如: Display "R" at 2nd column in first row Display "W" at 3rd column in second row 我使用这些例程用于LCD: #include<reg51.h> /* Data pins connected to port P1 of 8051 */ #def

    0热度

    1回答

    我正在为80C51芯片编写软件,并且当我声明2个64字节的数组时,我突然给我一个错误代码254.含义我用我所有的内存。 该芯片所谓的外部存储器,但我不知道如何使用它。我在mcu 8051 IDE中用C编写它。我尝试在变量前输入'far'和'xdata',但那不能编译。 我必须包含一个单独的头文件吗?

    0热度

    1回答

    我的项目是:读取温度并通过SMS以10分钟的时间间隔发送,并且在此范围内运动,然后发送短信“MOTION DETECTED”。 如此,只是为了测试我用了两个LED一个温带(它将停留在10分钟),SMS和其他的运动(它将闪烁一次)和评论功能的调用语句即的sendMessage,SENDMSG 一切工作正常,但问题是“当我长时间持续晃动我的手在PIR传感器前面时,它持续检测运动并且可能是计数器不会增加

    0热度

    1回答

    我想弄清楚是否有一种简单的方法来一次修改8051端口的几个位。 我会重新解释我的困境更具体的风格。 我的应用程序有端口2分为两个功能。我们称他们为FA和FB。 FA依赖于低三位的输出值,而FB依赖于剩余的5位,但它们可以是I/O。 因为FB中的一位是控制时钟的输出位,所以当我修改FA时,我不想修改FB的任何部分,反之亦然。 以下种类的命令不会为我工作: mov P2,#07h mov P2,#8