ZKX's LAB

单片机寄存器写不进去数

2020-07-16知识14
单片机中操控特殊寄存器时,为什么用“或”、“与”而不是直接16进制赋值? 51单片机是8位的,寄存器有8位,每一位都代表不同的含义;STM32单片机是32位的,寄存器也是32位的,每一位也有不同的含义。在配置寄存器时,同一个寄存器会用到多次,如果直接赋值而不用“与”、“或”会发生什么情况呢?下面分析一下。为什么要用逻辑“与”、逻辑“或”赋值在操作寄存器时,可能需要对同一个寄存器要配置多次,如果每次都要直接赋值的话,最后的赋值会把前面的赋值覆盖掉,这样程序就无法实现应有的功能了。所以,为了不改变前面的设置,通常会用逻辑“与”、逻辑“或”来赋值。如下图所示:如何用逻辑“或”给寄存器赋值逻辑或的特性是,有1输入即输出1;全0输入时才输出0。所以,可以看出,如果要不改变某一位的值的话,可以用0与其做或运算。如下图所示。所以,在设置寄存器时,如果要将某一位置1,而将其他位保持不变的话,可以将该位和1作或运算,比如下面的语句: GPIOA->CRH|=0X00000003;低两位置1 上面的语句就是将低两位设置为了11,而其他位保持不变。如何用逻辑“与”给寄存器赋值逻辑与的特性是,有0输入即输出0;全1输入时才输出1。可以看出,如果要不改变某一位的值的话,可以用1与其做与运算。如下图所示:所以,在设置寄存器时,如果要将... 51单片机复位后各寄存器状态是怎样的 单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表。值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。说明:表中符号*为随机状态;A=00H,表明累加器已被清零;PSW=00H,表明选寄存器0组为工作寄存器组;SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;IP=×00000B,表明各个中断源处于低优先级;IE=0×00000B,表明各个中断均被关断;系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序... 8051单片机中,PC寄存器能不能被直接使用,为什么 PC寄存器是单片机的指令指针寄存器,它里面的内容是下一条指令的地址,直接使用极易造成程序混乱而且极有可能达不到你预先的效果 单片机中操控特殊寄存器时,为什么用“或”、“与”而不是直接16进制赋值? 问这样的问题,肯定硬件基础不太好。单片机硬件,情况太多了。有些寄存器是只能写不能读的,有些是只能读不能写的。还有些保留位不能被改变的。更有读和写的含义是不同的。比如有些硬件功能是靠写寄存器启动的。按技术文档来操作寄存器就可以了。非要搞清楚,大公司产品技术文档中会有交代的。 ATNEGA16单片机的AD转化怎么操作,都是操作那几个寄存器,能不能帮着写个程序,我是学习用,谢谢热心的大侠 unsigned int read_adc(void)/查询方式读取ADC单端通道 { unsigned int ADC_BUF;1.打开ADC转换器,并延时等待转换 ADC_EN;ADMUX=(ADC_BASE);ADC_BUF=280;while(-ADC_BUF);2.读取ADC值,然后关闭ADC ADCSRA|=(1);启动AD转换 while(ADCSRA&(1));ADC_BUF=ADC;ADC_DIS;return((ADC_BUF&0x03FF));ADC=ADCH:ADCL } 17、80C51单片机中,唯一一个用户不能直接使用的寄存器是什么? 程序计数器 PC,好像不能给pc赋值,唯一用到pc的好像是汇编中的movc A,@A+pc 单片机的寄存器怎么解释?给IO口1和0就是操作寄存器吗? 特殊功能寄存器 P0、P1、P2、P3,其内容,可以输出到IO引脚。但是,你在外部,对IO引脚置1或0,却并不能影响寄存器内容。 PIC单片机中 如果TRISX设置为0xff时,能不能写PORTX寄存器 如果将TRISX设置为0xFF,则这些相应的引脚为输入,如果你写PORTX,则不影响这些引脚! 单片机里寄存器把对应的位设置为输入 然后再往这位写值有效吗? 如果是可以设置输入输出的单片机,设为输入的话,不改变状态是无法做输出的,比如STC单片机IO可以设为四个状态,输入、输出、双向、高阻,缺省状态一般是双向口,你既然又要做输入又要做输出,当然设为双向比较合适。 单片机寄存器中的保留位是什么意思? 就是暂时还没有对这些位定义的有可能你看比同系列更高级点单片机就有可能对这些位做出定义。而保留这些位的目的是为了使一系列的单片机代码可以兼容。也就是相同的寄存器功能是一样的,如果是没存在这样的功能那么保留寄存器的初始化将是没有效果的。大致意思是这样。

#赋值语句#赋值#指令寄存器#状态寄存器#pic单片机

随机阅读

qrcode
访问手机版