一个关于430单片机,程序语句的问题,请各位多多指教

一个关于430单片机,程序语句的问题,请各位多多指教,第1张

这个问题,我也曾经是很难理解,这里牵涉到两个概念

1,|= 和 = 的基本区别

2,UCSCTL4 在上面的两个方式下会发生什么不一样的变化

这样回答你把,可能比较好理解

1,对于 |= 和 = 的基本区别

直接等于的话,是会把原来的UCSCTL4 的值给抹掉,然后再赋给一个全新的值,就是说和原来的值没有任何关系了。

但是|= 呢,和原来的值有直接的关系,只是拉高了 等于 号后面对应位为1的值,而等于号后面位原来为0的值还是0,原来为1的值还是1,举个例子

UCSCTL4 = 0x1F; // (0b1000 1111)

UCSCTL4 = 0x11;

上面的那句话执行之后,就和开始的值为0x1F值没有任何关系了,最后得到的值就是 0x11;

UCSCTL4 = 0x8F;

UCSCTL4 = 0x11; //(0b0001 0001)

这个执行之后,就和原来的0x1F有关系,实际上就做了一个位运算

0b1000 1111

0b0001 0001 ,拉高最后一位,以及倒数第5位和倒数第8位

-----------------

0b1001 1111

最后的值是 0x1F,原来的倒数第8,3,2位,因为和0一起运算,所以本身是1,最后还是1;

2,UCSCTL4 在上面的两个方式下会发生什么不一样的变化,现在你大概能够明白了把,如果把(SELA__XT1CLK+SELS__XT1CLK + SELM__XT1CL)看成我们上面例子的0x11 的话,那么最后的结果,对于两种运算方式来说,一种是和原来的值有关系,一种是和原来的值没有关系。

先答后面的,如果可以读出程序,那么读出的肯定是二进制的,因为芯片本身只会存储并执行二进制的程序。读出的程序可以用反汇编工具得到对应的汇编代码,但很难直接得到C语言的源代码。

再说用IAP上载程序的事,IAP是意思是在应用编程,指得是在用户在编写程序的时候设计一个自编程的功能,ISP的意思是在系统编程,一般指CPU芯片内部有芯片厂家的程序,专用于自编程,这两者都可以实现自我编程,但区别主要是IAP是最终用户自定的,但空芯片是不可以用的,而ISP是芯片厂家预定的,所以空片也可以用。所以,如果用IAP,当然可以上载程序,当然前提是你设计的IAP有这个功能。如果芯片中没有你的IAP程序,那么就不能用了。

使用看门狗。

看门狗是一个定时器,是用来防止万一单片机程序出错造成重大损失。因此可使用看门狗在430单片机中打开看门。

防错的原理很简单,它在硬件上就是一个定时器,当它溢出的时候就会让单片机强制复位使程序重新开始执行。

以上就是关于一个关于430单片机,程序语句的问题,请各位多多指教全部的内容,包括:一个关于430单片机,程序语句的问题,请各位多多指教、430F149单片机用IAR软件可以上载程序吗上载上来是2进制吗怎么能变成源代码、430单片机怎么在程序中打开看门等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10089112.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存