单片机中的置位和清零分别是什么意思
单片机编程中的对寄存器的操作,置位是不是写1置位?对于清零我就有一点疑惑了。有的书上说清零可以硬件自动清零,还可以软件写1清零,那这样和置位又有什么分别呀,望各位能解除我...
单片机编程中的对寄存器的操作,置位是不是写1置位?对于清零我就有一点疑惑了。有的书上说清零可以硬件自动清零,还可以软件写1清零,那这样和置位又有什么分别呀,望各位能解除我心中的疑惑,谢谢!
展开
4个回答
展开全部
置位就是把该位置1,清零就是把该位置0
硬件自动清零就是当某种条件成立,硬件会自动把该位清零。
比如定时计数器工作时,当定时时间到了,定时中断请求标志位硬件自动置位,当cpu响应了中断以后就会自动把该位清零。
所谓的软件清零,就是要在程序中,通过指令把该位清零。
写1清零应该是某些单片机特有的,比如AVR单片机,要把某个寄存器清零,先写1-既是输入高电平,这样可以使内部的一个三极管导通接地,电容放电,进行清零!
这都是对某些特殊的寄存器,比如中断标志位等,需要这样操作。对于一般的寄存器比如PORTA口等,置位就是写1,清零就是写0
硬件自动清零就是当某种条件成立,硬件会自动把该位清零。
比如定时计数器工作时,当定时时间到了,定时中断请求标志位硬件自动置位,当cpu响应了中断以后就会自动把该位清零。
所谓的软件清零,就是要在程序中,通过指令把该位清零。
写1清零应该是某些单片机特有的,比如AVR单片机,要把某个寄存器清零,先写1-既是输入高电平,这样可以使内部的一个三极管导通接地,电容放电,进行清零!
这都是对某些特殊的寄存器,比如中断标志位等,需要这样操作。对于一般的寄存器比如PORTA口等,置位就是写1,清零就是写0
推荐于2017-09-27
展开全部
所谓的软件清零,就是要在程序中,通过指令把该位清零。
所谓置位就是把该位置1,清零就是把该位置0。
单片机中置位一般指是置1,即高电平;
置0是置低电平,一般说为清零;
传送中TI是低电平,结束时高电平。
TI=0;//TI=0时串口才能发送
while(!TI);//当TI不等时,发送直到发完TI=1
TI=0 /必须人工清0
所谓置位就是把该位置1,清零就是把该位置0。
单片机中置位一般指是置1,即高电平;
置0是置低电平,一般说为清零;
传送中TI是低电平,结束时高电平。
TI=0;//TI=0时串口才能发送
while(!TI);//当TI不等时,发送直到发完TI=1
TI=0 /必须人工清0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
置位就是把该位置1,清零就是把该位置0
硬件自动清零就是当某种条件成立,硬件会自动把该位清零。
比如定时计数器工作时,当定时时间到了,定时中断请求标志位硬件自动置位,当cpu响应了中断以后就会自动把该位清零。
硬件自动清零就是当某种条件成立,硬件会自动把该位清零。
比如定时计数器工作时,当定时时间到了,定时中断请求标志位硬件自动置位,当cpu响应了中断以后就会自动把该位清零。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单片机内部有各种功能的寄存器,比如PIC,C51系列8位的单片机,寄存器的宽度就是八个二进制位,一般是高位在前低位在后,例如:11000011,一共是八位,高四位数据是1100,低四位数据是0011。单片机是可以进行位操作的,一个8位的寄存器我们可以只针对其中一个位或者某些位进行操作,将寄存器相应的位赋值1(高电平)为置位,相反赋值0(低电平)为清零。...
例如c51:
置位指令:SETB,举例:SETB P3.7 ;执行过后P3.7输出为高电平
清零指令 CLR,举例:CLR P3.7 ;执行过后P3.7输出为低电平,这些操作均不影响其它的位。
以上是通过软件来实现的,有的特殊功能寄存器就可能是由硬件自动实现的,比如一些标志位,有些是具有只读属性,用于供程序提供参考。
例如c51:
置位指令:SETB,举例:SETB P3.7 ;执行过后P3.7输出为高电平
清零指令 CLR,举例:CLR P3.7 ;执行过后P3.7输出为低电平,这些操作均不影响其它的位。
以上是通过软件来实现的,有的特殊功能寄存器就可能是由硬件自动实现的,比如一些标志位,有些是具有只读属性,用于供程序提供参考。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询