㈠ 单片机中 if-else if语句中无法运算a=_crol_(a,1);这个移位运算!!!!求解救
这裤让个程序从流程看,只能
执行
if(a!=0x7f)
中的语句,而且,每次都重新给a
赋值
a=0xfe,所以敬凳不是不执行
a=_crol_(a,1);
而是
执胡稿局行了也看不到效果。
需要将
a,
b,
c三个变量
定义成全局变量。
㈡ 51单片机只能做控制用,不能完成算术运算
当然不是,只要不是特别复杂的算术有U运算都是谨如哗可以实现。橡拿只是复杂的算术运算在51单片机里面只能通过级数近似,消耗时间过长,所以工程上都使用速度更快并且祥行有更多硬件指令集的单片机来处理。
㈢ c51中51单片机不能进行处理的数据有哪些
c51中51单片机几乎所有的数据都可以处理,其中8位二进制加减乘除可以一次运算处理,其它的要猛升靠多条指令组合成子程序进行处理,如浮点数搭好及双精度浮点型也可以加减乘除,枝枝老但处理速度比较慢。
㈣ 单片机不可以进行什么逻辑运算
基于单片机实现的逻辑运算程序详解
算法&编程学院
2018-05-12
8046
分享海报
算法&编程学院
41文章
30.8w阅读
10粉丝
+关注
描档猜述
编写程序,完成下察腊列逻辑功能:
Q = XYZ\F + XY\ZF + X\YZF + XYZF (\Y表示Y非,\Z表示Z非、、、)
这个逻辑表达式,可以化简,就是:Q = XYZ + XYF + XZF
假设,各个变量对应的引脚如下:
X: P1.0
Y: P1.1
Z: P1.2
F: P1.3
Q: P1.7
程序如下:
MOV C, P1.0
ANL C, P1.1
ANL C, P1.2
MOV F0, C
MOV C, P1.0
ANL C, P1.1
ANL C, P1.3
ORL C, F0
MOV F0, C
MOV C, P1.0
ANL C, P1.2
ANL C, P1.3
ORL C, F0
MOV P1.7, C
END
=============================
单片机:请编写程序实现位X与位Y异或运算。
2010-10-12 22:03无敌的中国人 | 分类:其他编程语言 | 浏览1546次
设X、Y分别存放在00H、01H,结果Z存放在02H。
(注意:00H、01H、02H是位地址,属于内部RAM20H的D0、D1、D2位)
CLR 02H
MOV C, 00H
ANL C, 01H
JC _END_
MOV C, 00H
ORL C, 01H
JNC _END_
SETB 02H
_END_:
;完
END
==========================败蠢滑===
单片机:请编写程序实现位X、位Y 的异或运算。
设X、Y分别存放在 00H、01H,结果 Z 存放在02H。
注意:00H,01H,02H是位地址,属于内部RAM20H的D0,D1,D2位
方法1:
;
MOV C, 00H
ANL C, /01H
MOV F0, C
MOV C, 01H
ANL C, /00H
ORL A, F0
MOV 02H, C
END
;-----------------------
方法2:
;
CLR 02H
JNB 00H, ZZZ
JNB 01H, EXIT
SJMP EXIT
ZZZ:
JB 01H, EXIT
SETB 02H
EXIT:
END
;-----------------------
方法3:
;
MOV A, 20H
RR A
XRL A, 20H
RL A
RL A
ANL A, #00000100B
JZ ZZZ
ORL 20H, A
SJMP EXIT
ZZZ:
CPL A
ANL 20H, A
EXIT:
END。
㈤ 51单片机常识
1.学习单片机要有哪些基础知识
单片机基础知识 飞翔电子技术 2003-11-04 单片机的组成 单片机要自动完成计算,它应该具有哪些最重要的部分呢? 我们以打算盘为例计算一道算术题。
例:36+163*156-166÷34。现在要进行运算,首先需要一把算盘,其次是纸和笔。
我们把要计算的问题记录下来,然后第一步先算163*156,把它与36相加的结果记在纸上,然后计算166÷34,再把它从上一次结果中减去,就得到最后的结果。 现在,我们用单片机来完成上述过程,显然,它首先要有代替算盘进行运算的部件,这就是“运算器”;其次,要有能起到纸和笔作用的器件,即能记忆原始题目、原始数据和中间结果,还要记住使单片机能自动进行运算而编制的各种命令。
这类器件就称为“存贮器”。此外,还需要有能代替人作用的控制器,它能根据事先给定的命令发出各种控制信号,使整个计算过程能一步步地进行。
但是光有这三部分还不够,原始的数据与命令要输入,计算的结果要输出,都需要按先后顺序进行,有时还需等待。 如上例中,当在计算163*156时,数字36就不能同时进入运算器。
因此就需要在单片机上设置按控制器的命令进行动作的“门”,当运算器需要时,就让新数据进入。或者,当运算器得到最后结果时,再将此结没没果输出,而中间结果不能随便“溜出”单片机。
这种对输入、输出数据进行一定管理的“门”电路在单片机中称为“口”(Port)。在单片机中,基本上有三类信息在流动,一类是数据,即各种原始数据(如上例中的36、163等)、中间结果(如166÷34所得的商4、余数30等)、程序(命令的 *** )等。
这样要由外部设备通过“口”进入单片机,再存放在存贮器中,在运算处理过程中,数据从存贮器读入运算器仔察慎进行运算,运算的中间结果要存入存贮器中,或最后由运算器经“出入口”输出。 用户要单片机执行的各种命令(程序)也以数据的形式由存贮器送入控制器,由控制器解读(译码)后变为各种控制信号,以便执行如加、减、乘、除等功能的各种命令。
所以,这一类信息就称为控制命令,即由控制器去控制运算器一步步地进行运算和处理,又控制存贮器的读(取出数据)和写(存入数据)等。第三类信息是地址信息,其作用是告诉运算器和控制器在何处去取命令取数据,将结果存放到什么地方,通过哪个口输入和输出信息等。
存贮器又分为只读存贮器和读写存贮器两种,前者存放调试好的固定程序和常数,后者存放一些随时有可能变动的数据。顾名思义,只读存贮器一旦将数据存入,就只能读出,不能更改(EPROM、E2PROM等类型的ROM可通过一定的方法来更改、写入数据——编者注)。
而读写存贮器可随时存入或读出数据。 实际上,人们往往把运算器和控制器合并称为中央处理单元——CPU。
单片机除了进行运算外,还要完成控制功能。所以离不开计数和定时。
因此,在单片机中就设置有定时器兼计数器,其基本结构与本连载之(二)中的举例类似。到这里为止,我们已经知道了单片机的基本组成,即单片机是由中央处理器(即CPU中的运算器和控制器)、只读存贮器(通常表示为ROM)、读写存贮器(又称随机存贮器通常表示为RAM)、输入/输出口(又分为并行口和串行口,表示为I/O口)等等组成。
实际上单片机里面还有一个时钟电路,使单片机在进行运算和控制时,都能有节奏地进行。另外,还有所谓的“中断系统”,这个系统有“传达室”的作用,当单片机控制对象的参数到达某个需要加以干预的状态时,就可经此“传达室”通报给CPU,使念敬CPU根据外部事态的轻重缓急来采取适当的应付措施。
现在,我们已经知道了单片机的组成,余下的问题是如何将它们的各部分连接成相互关联的整体呢?实际上,单片机内部有一条将它们连接起来的“纽带”,即所谓的“内部总线”。此总线有如大城市的“干道”,而CPU、ROM、RAM、I/O口、中断系统等就分布在此“总线”的两旁,并和它连通。
从而,一切指令、数据都可经内部总线传送,有如大城市内各种物品的传送都经过干道进行。 单片机指令系统与汇编语言程序 前面已经讲述了单片机的几个主要组成部分,这些部分构成了单片机的硬件。
所谓硬件(Hardware),就是看得到,摸得到的实体。但是,光有这样的硬件,还只是有了实现计算和控制功能的可能性。
单片机要真正地能进行计算和控制,还必须有软件(Software)的配合。软件主要指的是各种程序。
只有将各种正确的程序“灌入”(存入)单片机,它才能有效地工作。单片机所以能自动地进行运算和控制,正是由于人把实现计算和控制的步骤一步步地用命令的形式,即一条条指令(Instruction)预先存入到存贮器中,单片机在CPU的控制下,将指令一条条地取出来,并加以翻译和执行。
就以两个数相加这一简单的运算来说,当需要运算的数已存入存贮器后,还需要进行以下几步: 第一步:把第一个数从它的存贮单元(Location)中取出来,送至运算器。 第二步:把第二个数从它所在的存贮单元中取出来,送至运算器; 第三步:相加; 第四步:把相加完的结果,送至存贮器中指定的单元。
所有这些取数、送数、相加、存数等等都是一种操。
2.学习单片机需要具备哪些基础知识
我是大四学生,大三学的单片机,参加了一些大赛,个人认为学单片机首先把单片机课本熟读两遍,这可不能拖太长时间,对单片机的内部资源理解。外围电路能熟练。
模电、数电不好也不要紧,不懂时再回去看看不就好了。
汇编不用学的太好,但起码你能用汇编把课程设计做完。然后得话就学c吧。
学c不是说拿着c语言书,而是做些小制作之类的。在设计中学。
没单片机基础的话,先学c51吧。
不要听别人说51不行,学51是为了以后学别的更方便,更快。以后可以学arm等更高级的。
3.51单片机应该掌握哪些
上面说的是什么乱七八糟啊
1.基本要掌握哪些型号的单片机
首先说明一点,现在的像ATMEL,SST,STC,PHILIPS等等大多数单片机都是51内核,所以说你学会一样就行了,要说具体型号像AT89S52,STC89C51等等都可以,它是的区别只是内部资源不一样,也就是说功能多少的问题,但指令完全兼容.
2.要会哪些编程语言?
老大,你学哪个系列的单片机,那就会相应的汇编就行了.(51系列的指令兼容)而且应用也很广泛.
3.还有其他需要注意的东西吗?谢谢~~
不用谢谢,学会单片机软件并不难,但模电.数电要是不好也做不了什么大项目的,所以电子基础比较重要.
4.有时有汇编做算法很难,建议你学C语言,很容易学,而且用起来比汇编容易的多,但汇编也得懂(这个很重要).
5.有什么问题可以发消息给我,我会尽量帮你的.
6.祝你早日成功
4.什么是单片机
随着大范畴集成电路的显现和发展,将计算机的cpu、ram、rom、定时/数器和多种i/o接口集成在一片芯片上,组成芯片级的计较机,因此单片机早期的含义称为单片微型计较机,直译为单片机。
单片机是一种集成在电路芯片,是采用超大范畴集成电路技能把具有数据处理本事的中心处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和间断系统、定时器/计时器等成果(大要还包括表现驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完竣的计算机系统。
5.51单片机初学重点
引脚是肯定要学的 比如51有40个脚 有P0,P1,P2这3个口,另外还有特殊功能引脚还有P0口是作为数据口 也可以作为地址口 存放低8位地址信号那么P2口也可以作为数据口 同时也可以作为地址口 存放高8位地址信号这样你要外部访问16位的地址 那么就要P0和P2一起用了这只是个例子 这些引脚都要背熟的存储器结构还好吧 也就编程的时候用到比较多 一般不怎么用到 只要知道你的芯片RAM,ROM大小就行了 如果你写的程序太大 超过了 就要用到外部扩展的RAM了关键还是多画一些电路吧 熟悉一些常见的电路的画法比如连LED显示啦 键盘啦 外部中断啦 计时器啦还有一些常见的东西 比如动态显示啦 简单计算器啦 简单电子表啦。