⑴ 汽车电控学些什么
你好,学习汽车电控需要学习电工技术 ,电子技术 PLC控制, 单片机 计算机 CAD制图 等内容。
⑵ 请问哪里能下载ABB的电机控制装置(保护器) M101-M/M102-M参数设置软件--MCUsetup有加分!
马达控制单元 52093396群可以共享ABB资料和传动经验
⑶ 单片机控制两个步进电机,控制传动系统实现X,Y轴向直线运动,如何实现还有就是怎么编程啊
可以根据输入步进电机的方波频率调速,算下转动的角度和圈数再乘以轮子的周长,就知道前进了多少距离。每个方向都知道走了多少距离就可以知道X、Y地址了。编程问题太多细节,自己去弄懂吧,这个不难。自己努力了才会真正明白。
⑷ 单片机中伪指令 求教
你提的问题是一个很多学生甚至教单片机的老师都不理解的一个问题。我们大学学单片机只是了解但是没有真正的把硬件和软件与实际联系到一起。不过为了深入了解我也细细的说一些单片机的工作机制,这样学起来也比较简单(呵呵,本人编程编的实在太累了,就当休息),在这里可能我讲了一些要慢慢了解。
在了解之前要说几个概念、单片机工程文件、烧录文件、程序存储区、运算单元、RAM
先从硬件开始说,因为工程文件、烧录文件是后来发展形成的。这要从计算机历史讲起。最初的计算机是没有程序存储器的,采用布线接板进行控制,后来改用带孔的纸板插入计算机光电管和灯泡之间来表示数据和程序,控制程序流程的走向。这是程序存储器的最初雏形,传动装置将纸板传入光电管和灯泡之间,计算机开始计算或控制程序走向。比如10cm的纸板有3个孔表示程序结束,10cm的纸板有2个孔表示数据相加,那么传动到哪里就执行哪里的程序。遇到10cm的纸板有3个孔计算机就停止。
最初是10进制。后来因为二进制对于计算机好识别才有了二进制。也增添了程序存储器,程序存储器就是用来控制程序走向和数据计算的依据单元。
了解硬件发展以后我们看一段程序,程序很简单。计算4+5=9,呵呵幼儿班数学,可是单片机是如何算出来的呢,我们看个究竟。设RAM中R0的数据为4,R1里的数据为5,结果存到R2中,循环计算。 程序如下(一会通过加入其它伪指令来讲述)
ORG 0000H
LJMP Start
ORG 0006H
Start: MOV R0,#04H
MOV R1,#05H
Main: MOV A,R0
ADD A,R1
MOV R2,A
LJMP Start
END
其中ORG为伪指令END也为伪指令。
有了这些程序单片机是如何工作的呢,我们能看懂程序但是单片机并不认识程序,它只能识别0和1组成的数据,为了不像最初的控制计算机流程一样布线接板或者插纸板单片机中增加了很多东西如程序指针SP和程序存储器。
我们编写完程序后建立工程文件然后编译成烧录文件烧录到单片机里(后面再讲编译)。
我们看看程序存储区是什么个样子。
地址 数据
0x0000 02H
0x0001 00
0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78
0x0007 04
0x0008 79
0x0009 05
0x000A E8
0x000B 29
0x000C FA
0x000D 02
0x000E 00
0x000F 06
我们看到只是一些数据而已,单片机是如何执行的呢。下面我们分析一下。
单片机指令是由操作码、操作数组成,操作码是表明指针所指指令作用的标志数据,操作数则是要执行任务的数据依据,如LJMP Start 操作码、操作数分别为02H和Start。在上电后SP指针的值指向0x0000位置。遇到的第一个指令是SJMP Start由于Start是人为为地址起的名字因此不会被存入单片机存储器中,而是找到地址计算其跳转地址(名称相同就求出地址了),这个程序计算结果是0x0006,这样LJMP Start 的指令字节数为3个。
地址 数据
SP->0x0000 02H
0x0001 00
0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78
0x0007 04
0x0008 79
0x0009 05
0x000A E8
0x000B 29
0x000C FA
0x000D 02
0x000E 00
0x000F 06
我将程序存储区数据和数据表联系起。
地址 数据
0x0000 02H ORG 0000H
LJMP Start
0x0001 00
SP->0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78 ORG 0006H
Start: MOV R0,#04H
0x0007 04
0x0008 79 MOV R1,#05H
0x0009 05
0x000A E8 Main: MOV A,R0
0x000B 29 ADD A,R1
0x000C FA MOV R2,A
0x000D 02 LJMP Start
0x000E 00
0x000F 06
END
ORG表示下一行指令从哪一个地址开始写,END表示程序结束,如果我们在加入一个伪指令EQU 编译后会出现什么结果。
First EQU R0
Second EQU R1
Result EQU R2
ORG 0000H
LJMP Start
ORG 0006H
Start: MOV First,#04H
MOV Second,#05H
Main: MOV A,First
ADD A,Second
MOV Result,A
LJMP Start
END
地址 数据
First EQU R0
Second EQU R1
Result EQU R2
0x0000 02H ORG 0000H LJMP Start
0x0001 00
SP->0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78 ORG 0006H
Start: MOV First,#04H
0x0007 04
0x0008 79 MOV Second,#05H
0x0009 05
0x000A E8 Main: MOV A,First
0x000B 29 ADD A,Second
0x000C FA MOV Result,A
0x000D 02 LJMP Start
0x000E 00
0x000F 06
END
我们会发现编译后的结果是一样的,这些伪指令虽然作用不同但是有一个共同特点就是在程序存储器中不产生可执行的操作码和操作数,只是为了编程人方便或注释或可以影响数据存储位置的指令称为伪指令。
First EQU R0
Second EQU R1
Result EQU R2
ORG 0000H
LJMP Start
ORG 0006H
Start: MOV First,#04H
MOV Second,#05H
Main: MOV A,First
ADD A,Second
MOV Result,A
LJMP Start
DW 30H,60H,90H
END
编译结果如下,从10H开始。因此DW30H是0030
0x0000 02H
0x0001 00
SP->0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78
0x0007 04
0x0008 79
0x0009 05
0x000A E8
0x000B 29
0x000C FA
0x000D 02
0x000E 00
0x000F 06
0x0010 00
0x0011 30
0x0012 00
0x0013 60
0x0014 00
0x0015 90
晕,网络知道复制超过太多字节的数据复制不上
⑸ 本人现在大二了,想用单片机或者plc做一个控制系统,主要用到的有齿轮、传送带、传感器、微型马达等等。
按照你的意思,那的用到两台电机吧?一台负责输送物品,一台负责分类。还对?PLC应该用到4个输入点,分别是启动,停止,传感器1和2(1,比如说检测大物品,2,小的物品),还有就是3个输出点,分别是输送电机启动,还有就是,选择电机的正,反转
。大概过程就是这样,程序自己设计吧,比较简单的。
⑹ 请问步进减速电机和直流减速电机有什么区别,我想用单片机来控制,不知它们有什么区别。控制方式是什么
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
而直流电机就是普通的小电机,没有什么特殊的,只要电源功率够,就可以。要想用单片机控制,可以用脉冲波控制,调速用占空比控制,不过要加功率放大电路。
⑺ 用单片机控制一个类似书的开合的装置,让它转动180度再转回来,需要什么机械装置
舵机
⑻ 单片机怎么控制电机转动圈数
1、首先电机要是可调速的;
2、用两个按钮,分别接入单片机的两个输入脚,一个按钮作为增速计数用,一个作为减速计数用。每按一次增速按钮,单片机计数一次,并输出控制信号控制电机增加速度,减速按钮反之。
3、例如用单片机pwm控制电机转速:
带注释软件清单
;
==========使用单元设定==========
//.
.................................使用单元设定
DIS0
EQU
30H
DIS1
EQU
31H
DIS2
EQU
32H
DIS3
EQU
33H
LED
EQU
34H
TM1
EQU
35H;
TM2
EQU
36H;
INTV
BIT
37H;
中断标志
THX
EQU
38H;
定时脉宽高电平
CISHU
EQU
39H
FIRST
BIT
41H;
检测加减是否第一次按下
SET1
BIT
42H
SETZ0
EQU
43H;设定当前设定值SETZ0~SETZ3
SETZ1
EQU
44H
SETZ2
EQU
45H
SETZ3
EQU
46H
TM3
EQU
47H;
循环次数单元
JIA1
BIT
48H;
单步加标志
LIANJIA
BIT
49H;
连加标志
JIAN1
BIT
50H;
单步减标志
LIANJIAN
BIT
51H;
连减标志
SETDATA
EQU
52H;
设定速度暂存单元
REALDATA
EQU
53H;
实测速度暂存单元
YK1
EQU
54H;
上次输出数据暂存单元
KP
EQU
56H;比例系数
KI
EQU
57H;
积分系数
EK
EQU
58H;
设定值和实测值的差值
EK1
EQU
59H;
上次的EK值
OUTPUT
EQU
60H;
EK2
EQU
61H;
EK-EK1的值
ONPRESS
BIT
62H;
判定ENTER键是否弹起标志
TMS
EQU
63H;
闪烁时长
SHAN
BIT
64H;
闪烁标志
;
==========主程序==========
ORG
0000H
SJMP
MAIN
ORG
0013H;
外部中断1入口地址
AJMP
INX1
ORG
001BH;
定时器T1中断入口地址
AJMP
ITX1
ORG
0070H
MAIN:
MOV
SP,#70H;
设定堆栈指针入口地址
ACALL
INIT;
调用初始化程序
M1:
JB
SET1,FLASH;
当前为设置状态则跳到闪烁显示模块
ACALL
DISP;
否则为一般显示
SJMP
NEXTT
FLASH:
ACALL
DISP1
NEXTT:
ACALL
DELAY;
调用按键延时程序
ACALL
M2;调用按键程序
DJNZ
CISHU,M1;
第隔100MS刷新一下实测值
MOV
CISHU,#20
ACALL
CONTROL;
调用控制调速模块
SJMP
M1
//
==========初始化模块==========
INIT:MOV
DPTR,#0FD00H
;
设置PA、PB为输出口,PC为输入口
MOV
A,#03H
MOVX
@DPTR,A
MOV
TMOD,#21H
;
定时器/计数器T1为方式2,定时器/计数器T0为方式1
MOV
TL0,#00H
;
定时器/计数器T0赋初值#00H
MOV
TH0,#00H
MOV
THX,#0BBH
;
输出单元赋初值#0BBH,即脉冲高电平宽度
MOV
TH1,THX
MOV
TL1,THX
SETB
TR1
;
启动定时器/计数器T1
SETB
TR0
;
启动定时器/计数器T0
SETB
ET1
;
允许定时器/计数器T1溢出中断
SETB
EX1
;
允许外部中断1中断
SETB
IT1
;
选择边沿触发
SETB
EA
;
CPU开中断
SETB
07H;
SETB
SHAN
CLR
11H;
检测是否成功
MOV
LED,#7FH。
⑼ 求赐教,单片机控制步进电机,用光码盘和位置检测光耦使电机在某一位置停下来,是什么意思
是的,位置检测的作用就是为了知道当前在哪个位置。位置检测光耦(俗称:位置传感器)
如果设计者要求你停下来,。那就要停下来。
但位置传感器不一定装在电机上。如果装在传动装置上。可能电机运转N转以后,才会停下来。
当然,位置传感器还可以用来检测速度。通过计算两次检测到的时间差可以计算出速度来。
在工业里面,很多时候,步进电机只动一点点就要停下来,等到下个信号到的时候才继续动。
⑽ 我想用码盘和对射管再配合单片机做一个测码盘转动角度的装置,但是关于码盘和对射管组合时需要注意哪些问
对射管的原理:有一对管,一个发光管,一个接收管。当接收管接收到发光管发出的光时接收管导通,形成通路(接收管相当于光敏三极管,红外光是它的触发信号)。
码盘与对射管工作时,发射管一直发光,不时的发射管发射的光通过码盘孔,从而接收管不时的通断,这样在接收管的一侧就形成了方波信号。根据方波信号的个数及码盘孔的个数就可以算出码盘转过的角度了。
至于码盘孔的尺寸就要看你测量角度的精度了,对射管的缝宽要大于码盘的厚度。另对射管的直径最好要和码盘孔的直径接近。
最后发射管发红外光是可以用手机的摄像功能看到的。