Ⅰ 单片机汇编比较寄存器和立即数
51单片机没有CMP这个指令,可以用CJNE这条指令来代替。实现上述功能指令如下:
MOV A,P3
CJNE A,#03H,NXT
NXT:
JZ LED
Ⅱ 我买了一块单片机stc89c52,使用伟福给它编程,但是识别不了cmp这个指令。
cmp ? 有这个吗?
好像都用跳跃判断比较多.
jb, jnb, jz, jnz, cjne, ...
上网搜寻
51 instruction set
应该就有了.
Ⅲ 单片机中用什么指令判断两个单元中的数据大小
没见过比较指令,最好还是用减法指令(不会有单片机不支持减法吧 哈哈)判断减法后的数据,看最高位是否是1
Ⅳ 单片机查表指令movc什么意思
MOVC指令意思是表示
程序存储器
里的内容和别的
存储单元
进行传送的,主要是用在
累加器
A和程序存储器的
数据传送
。
单片机的操作语言使用的是
汇编语言
,是一种用于
电子计算机
、微处理器、
微控制器
或其它可编程器件的低级语言。
包括通用数据传送指令MOV、条件传送指令CMOVcc、堆栈操作指令PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交换指令XCHG/XLAT/BSWAP、地址或
段描述符
选择子传送指令LEA/LDS/LES/LFS/LGS/LSS等。
(4)单片机CMP扩展阅读
测试指令BT、位测试并置位指令BTS、位测试并复位指令BTR、位测试并
取反
指令BTC、位向前扫描指令BSF、位向后扫描指令BSR等。
加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC、比较操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV、符号扩展指令CBW/CWDE/CDQE、
十进制调整指令
DAA/DAS/AAA/AAS、
逻辑运算
指令NOT/AND/OR/XOR/TEST等。
无
条件转移指令
JMP、条件转移指令Jcc/JCXZ、循环指令LOOP/LOOPE/LOOPNE、过程调用指令CALL、子过程返回指令RET、
中断指令
INTn、INT3、INTO、IRET等。
参考资料来源:
网络
-MOVC
Ⅳ 单片机程序里面,经常听说底层,中间层,应用层,什么意思 51单片机也需要这么分层吗
一般当程序比较大、功能比较繁多,需要进行结构化程序设计的时候,才会进行分层。分层的好处是可以将应用与硬件剥离,当硬件发生变更(移植,设计更改)时只需改动底层以及少量中间层;当需求发生变更时只需改动上层以及少量中间层。
底层一般是直接访问硬件的接口,以串口而言如寄存器操作函数;中间层一般是在底层与上层之间进行数据及信息的转换,以串口而言如封包/拆包/消息产生/消息响应;上层一般面向应用,在很少考虑硬件实现的前提下以通用的方式实现所需的功能,以串口而言如printf。
分这么多层是为了不同程度的开发人员可以同期工作的原因。比如说,底层就雇佣一个特别熟悉芯片和硬件的人做,中间层大概要找比较熟悉应用的人来把硬件功能来做扩展,应用层就随便抓一把人来开发了。
这样,多个项目可以公用一个硬件层,有两到三组中间层的支持工程师,然后每个项目各有一组应用工程师就好了。51也可以这样做,这和效率无关,层做得好,执行效率不会影响很大,开发效率提高很多。
单片机的应用:
1,通用专用:
这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
2,线型应用:
这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积。
3,控制型应用:
这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是唯一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
Ⅵ 单片机”cmp脚“是什么
单片机”cmp脚“是内部比较器外引脚,一般是以第二功能的形式出现。
Ⅶ 51单片机的汇编指令中有cmp这个吗
没有,c语言中有类似的函数。
Ⅷ 单片机cmpo是什么脚
cmp是比较的意思,o是输出的意思
这是一个电平比较后输出的引脚
还需要跟电平输入引脚配合使用
具体怎么用可以看下芯片手册里电平比较的内容
Ⅸ 以ADC作CMP+的STC15单片机的比较器程序怎样写
我看了一下STC15系列的手册,的确这里语焉不详,说是PIS=1时就可以用ADCIS[2:0]所选中的通道作为比较器同相输入端了,然而查遍手册并无这个位域的相关定义。
就我个人来说,认为这个ADCIS[2:0]有可能指的就是ADC_CONTR寄存器的CHS[2:0]位域。你可以做一下试验:
① 在ADC_POWER=0的情况下,切换CHS[2:0]的值,看看对应的ADC通道有没有作为比较器的同相输入端作用;(理论上我们并不需要ADC模块真的供电工作,只是借用一下其模块前端的多路开关而已)
② 如果不行,就将ADC_POWER=1,看看此时的情况如何。
如果都不行,那就只能咨询STC的技术服务了。