在完成程序编写运行以后看到的结果是存储器中从R0到R7都被占用,而我根本就没用到几个,这是为什么?

答:要看用的是什么型号的单片机,不同型号的单片机R0到R7的定义是不同的。如果R0~R7是被定义成特殊寄存器的话,那么运行过程中自然会影响 到这些寄存器,例如执行运算程序就会影响状态特殊寄存器的值。如果R0~R7是被定义成通用寄存器的话,那么可能就是在程序的开头没有初始化,单片机在上 电复位时,通用寄存器的值通常是随机的。

生成海报
点赞 0

创世纪

单片机学习,电子制作DIY学习与分享,各种新鲜的,有趣的,好玩的,一起来吧!机器人、无人机、树莓派/Raspberry Pi、arduino、极客、创客等

暂无评论

发表评论

相关推荐

对单片机的速度,有何要求?Holtek的单片机能符合该项应用吗?

答:目前HOLTEK的单片机速度最高为8MHz,一条指令执行时间为0.5us,以这样的速度,可以满足大多数项目的开发;不知你说的具体是什么项目。目前HOLTEK单片机主要有OTP和Mask两种,将来会推出Flash的单片机;但 HOLTEK的开发系统很完善,在开发阶段,HOLTEK还可以适当提供免费样片,相对来说,开发成本并不会比用Flash来得高。

在一个由MCU的产品中,开发完成,批量生产时,需要测试。然而,测试员可能不能测试到软件的每一处。在写程序时,做一个专门的测试流程,在某种条件满足时(比如几个键盘的同时按下),进入测试程序。测试程序中用一些比较短的时间来工作。如何实现?

答:以HOLTEK IC生产厂商的角度来看,对于一个MCU成品,一旦它的外围器件连接OK,它的MCU芯片基本逻辑功能运行正常,此MCU成品基本上就是良品了。因为IC在出厂前,都经过了逻辑、烧写测试,所以发给客户的封装片都是合格的。客户生产时所产生的不良片,大多数是I/O遭到破坏造成的(例如ESD破坏、高电压破坏),如果IC的I/O逻辑功能运行正常就说明此IC可以运行 任何程序,并不需要测试到软件的每一处才能保证MCU成品的良率。因此您的测试方法已经可以保证IC的良率了。

Holtek和AT系列编程有何不同,现有AT系列程序如何转为Holtek?

答:从指令集来看,ATMEL的AVR系列是8位RISC型的单片机,共有118条指令,而HOLTEK是63条指令,要将AVR的汇编程序转为HOLTEK的汇编需要熟悉两者的汇编指令将AVR的程序转译成HOLTEK汇编,而不能直接在HOLTEK芯片上使用,如果程序是用C编写,则大部分应该是可以直接使用的,但数据定义以及寄存器的定义可能需要改变;另外在编程的过程还需要考虑两者硬体结构的差异对指令实现功能的影响,有时候可能会因为硬体的不同,需要对项目进行重新的规划。