单片机ota功能开发新单词汇报文档出炉
今天朋友介绍了一单,单片机OTA功能开发,基于51单片机stc,外挂了一个cat1模组。有段时间没用51单片机了,看寄存器真的发现生疏了好多,比起stm32单片机的hal库,明显hal库调起来方便,只需要偶尔看看寄存器手册就行,文档相比,明显stm32写的比较通俗易懂,stc的文档写的就没那么清晰了。
1、51单片机led显示地址问题“08004代表p0口,08002h代表p2口,两者是等价的”:我觉得理解有偏差,p0,p2是地址/数据复用口,比如地址08004h,在执行movdptr,a的时候,80在p2口输出,04在p0口输出,而a则会在al锁信号使能后由p0口输出。我不知道你的电路里的数码管片选地址是怎么分配的,但是在某些汇编环境里可以用MOVP2,
你可以通过两片74hc573来连接6个数码管,只有一个P0口就可以了,可以节约单片机i/o口,用一片573输出接6个数码管的ag个段,另一个573的输出接6个数码管的片选,两个573的输入都接P0口,这样你可以先往P0口送片选信号,然后送想要显示的数字的二进制码就可以了。
2、在51单片机中,操作数的地址是如何形成的。MOVdata,data;(data)→(data)直接地址单元中的内容送到直接地址单元MOVdata,#data;#data→(data)立即数送到直接地址单元MOVdata,A;(A)→(data)累加器A中的内容送到直接地址单元MOVdata,Rn;(Rn)→(data)寄存器Rn中的内容送到直接地址单元MOVdata,
这是汇编指令才考虑操作数的地址的。指令中,形成操作数地址有几种方式,根据指令的寻址方式不同,形成地址的方式就不同,第一种,操作数地址就在指令中给出。如MOV20H,#58H;操作数地址是20HMOVA,42H;操作数地址是42H这两条指令是直接寻址方式,操作数地址就是指令中给出的。