51单片机里所得置位SETB是什么意思啊 有什么用呢 本人初学者 真心求教 谢谢
SETB是汇编指令,意思是把其后面的那个寄存器的位置1。ET0是定时/计数器0的中断允许位,为1时,单片机会响应定时/计数器0的溢出中断(当然,总中断也必须容许)。为0时,单片机不响应。这句意思就是,把ET0置为1。
这会导致单片机会响应定时/计数器0的溢出中断SETB TR0 ,定时/计数器0开始运行 TR0是单片机会响应定时/计数器0的启动位,为1,就启动定时/计数器0;为0,就停止定时/计数器0的运行。
扩展资料:
51单片机应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统。
注意事项:
1、降低外时钟频率:外时钟是高频的噪声源,除能引起对本应用系统的干扰之外,还可能产生对外界的干扰,以8051单片机为例,最短指令周期1μs时,外时钟是12MHz。而同样速度的Motorola 单片机系统时钟只需4MHz微控制器产生的最有影响的高频噪声大约是时钟频率的3倍。
2、低噪声系列单片机:改进的技术将电源、地安排在两个相邻的引脚上,外部去耦电容在PCB设计上更容易安排。
3、每个集成电路的电源、地之间应配置一个去耦电容, 吸收或提供该集成电路内部三极管导通、截止引起的电流变化(di/dt),从而降低系统噪声, 要选高频特性好的独石电容或瓷片电容作去耦电容。每块印制电路板电源引入的地方要安放一只大容量的储能电容。
参考资料来源:百度百科-SETB
SETB是汇编指令,意思是把其后面的那个寄存器的位置1。ET0是定时/计数器0的中断允许位,为1时,单片机会响应定时/计数器0的溢出中断(当然,总中断也必须容许)。为0时,单片机不响应。这句意思就是,把ET0置为1。
这会导致单片机会响应定时/计数器0的溢出中断SETB TR0 ,定时/计数器0开始运行 TR0是单片机会响应定时/计数器0的启动位,为1,就启动定时/计数器0;为0,就停止定时/计数器0的运行。
扩展资料:
单片机复位后各寄存器的状态:
1、A=00H,表明累加器已被清零。
2、PSW=00H,表明选寄存器0组为工作寄存器组。
3、SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中。
4、Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出。
5、IP=×××00000B,表明各个中断源处于低优先级。
6、IE=0××00000B,表明各个中断均被关断。
而置位可以把它初始化到任意一个状态。复位、置位是指将器件的逻辑值设为特定的值,“复位”一般指将寄存器的Q端输出设为0,“置位”指将寄存器的Q端输出设为1。利用单片机的setb指令可以实现置1这个操作。
参考资料来源:百度百科——SETB
51指令表 有以下指令 供参考
数据传送类指令
MOV A, Rn 寄存器内容送入累加器
MOV A, direct 直接地址单元中的数据送入累加器
MOV A, @Ri 间接RAM中的数据送入累加器
MOV A, #data 立即送入累加器
MOV Rn, A 累加器内容送入寄存器
MOV Rn, direct 直接地址单元中的数据送入寄存器
MOV Rn, #data 立即数送入寄存器
MOV direct, A 累加器内容送入直接地址单元
MOV direct, Rn 寄存器内容送入直接地址单元
MOV direct, direct 直接地址单元中的数据送入另一个直接地址单元
MOV direct, @Ri 间接RAM中的数据送入直接地址单元
MOV direct, #data 立即数送入直接地址单元
MOV @Ri, A 累加器内容送间接RAM单元
MOV @Ri, direct 直接地址单元数据送入间接RAM单元
MOV @Ri, #data 立即数送入间接RAM单元
MOV DPTR,#data16 16位立即数送入地址寄存器
MOVC A, @A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器
MOVC A, @A+PC 以PC为基地址变址寻址单元中的数据送入累加器
MOVX A, @Ri 逻辑上在外部的片内扩展RAM,(8位地址)送入累加器
MOVX A, @DPTR 逻辑上在外部的片内扩展RAM,(16位地址)送入累加器
MOVX @Ri, A 累加器送逻辑上在外部的片内扩展RAM(8位地址)
MOVX @DPTR, A 累加器送逻辑上在外部的片内扩展RAM(16位地址)
PUSH direct 直接地址单元中的数据压入堆栈
POP direcct 出栈送直接地址单元
XCH A, Rn 寄存器与累加器交换
XCH A,direct 直接地址单元与累加器交换
XCH A, @Ri 间接RAM与累加器交换
XCHD A, @Ri 间接RAM的低半字节与累加器交换
算术操作类指令
ADD A,Rn 寄存器内容送入累加器
ADD A,direct 直接地址单元中的数据加到累加器
ADD A,@Ri 间接RAM中的数据加到累加器
ADD A,#data 立即加到累加器加到累加器累加器
ADDC A,Rn 寄存器内容带?位加到累加器
ADDC A,direct 直接地址单元的内容带?位加到累加器
ADDC A,@Ri 间接RAM内容带?位加到累加器
ADDC A,#data 立即数带?位加到累加器
SUBB A,Rn 累加器带借位减寄存器内容容
SUBB A,direct 累加器带借位减直接地址单元的内容容
SUBB A,@Ri 累加器带借位减间接RAM中的内容容
SUBB A,#data 累加器带借位减立即数数
INC A 累加器加1
INC Rn 寄存器加1
INC direct 直接地址单元加1
INC @Ri 间接RAM单元加1
DEC A 累加器减1
DEC Rn 寄存器减1
DEC direct 直接地址单元减1
DEC @Ri 间接RAM单元减1
INC DPTR 地址寄存器DPTR加1
MUL AB A乘B
DIV AB A除B
DA A 累加器十制调整整
逻辑操作类指令
ANL A,Rn 累加器与寄存器相“与”
ANL A,direct 累加器与直接地址单元相“与”
ANL A,@Ri 累加器与间接RAM单元相“ 与”
ANL A,#data 累加器与立即数相“与”
ANL direct, A 直接地址单元与累加器相“与”
ANL direct,#data 直接地址单元与立即数相“与”
ORL A, Rn 累加器与寄存器相“或”
ORL A,direct 累加器与直接地址单元相“或”
ORL A,@Ri 累加器与间接RAM单元相“或”
ORL A,#data 累加器与立即数相“或”
ORL direct, A 直接地址单元与累加器相“或”
ORL direct, #data 直接地址单元与立即数相“或”
XRL A, Rn 累加器与寄存器相“异或”
XRL A, d irect 累加器与直接地址单元相“异或”
XRL A, @Ri 累加器与间接RAM单元相“异或”
XRL A, # data 累加器与立即数相“异或”
XRL direct, A 直接地址单元与累加器相“异或”
XRL direct,#data 直接地址单元与立即数相“异或”
CLR A 累加器清“0”
CPL A 累加器求反反
RL A 累加器循环左移移
RLC A 累加器带?位位循环左移移
RR A 累加器循环右移移
RRC A 累加器带?位位循环右
SWAP A 累加器半字节交换换
控制转移类指令
ACALL addr11 绝对(短)调用子程序序
LCALL addr16 长调用子程序序
RET 子程序返回回
RETI 中断返回回
AJMP addr11 绝对(短)转移移
LJMP addr16 长转移
SJMP re1 相对转移
JMP @A+DPTR 相对于DPTR的间接转移移
JZ re1 累加器为零转移移
JNZ re1 累加器非零转移移
CJNE A,direct,re1 累加器与直接地址单元比较,不相等则转移移
CJNE A,#data,re1 累加器与立即数比较,不相等则转移移
CJNE Rn,#data,re1 寄存器与立即数比较,不相等则转移移
CJNE @Ri,#data,re1 间接RAM单元与立即数比较,不相等则转移移
DJNZ Rn,re1 寄存器减1,非零转移移
DJNZ direct,re1 直接地址单元减1,非零转移移
NOP 空操作
布尔变量位操作类指令
CLR C 清零进位位
CLR bit 清0直接地址位
SETB C 置1进位位
SETB bit 置1直接地址位
CPL C 进位位求反
CPL bit 直接地址位求反
ANL C, bit 进位位和直接地址位相“与”
ANL C, /bit 进位位和直接地址位的反码相“与”
比如启动定时器需要将TR0或者TR1置1,那么就用:SETB TR0
置1一般有什么用呢
根据硬件不同,置1作用不一样,比如I/O口的置1就是输出高电平,SETB P1.0
定时器运行开关置1相当于合上开关,SETB TR0
中断优先级相应的位置1相当于提高了优先级,SETB PX1