① 51单片机, 编一个控制步进电机转动的程序。
#include <reg51.h> //51芯片管脚定义头文件
#include <intrins.h>//内部包含延时函数 _nop_();
#define uchar unsigned char
#define uint unsigned int
uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
/********************************************************/
/*
/* 延时t毫秒
/* 11.0592MHz时钟,延时约1ms
/*
/********************************************************/
void delay(uint t)
{
uint k;
while(t--)
{
for(k=0; k<125; k++)
{ }
}
}
/********************************************************/
/*
/*步进电机正转
/*
/********************************************************/
void motor_ffw(uint n)
{
uchar i;
uint j;
for (j=0; j<12*n; j++) //转1×n圈
{
for (i=0; i<8; i++) //一个周期转30度
{
P1 = FFW[i]; //取数据
delay(15); //调节转速
}
}
}
/********************************************************/
/*
/*步进电机反转
/*
/********************************************************/
void motor_rev(uint n)
{
uchar i;
uint j;
for (j=0; j<12*n; j++) //转1×n圈
{
for (i=0; i<8; i++) //一个周期转30度
{
P1 = REV[i]; //取数据
delay(15); //调节转速
}
}
}
/********************************************************
*
* 主程序
*
*********************************************************/
main()
{
while(1)
{
motor_ffw(5); //电机正转
delay(5000); //换向延时
//motor_rev(5); //电机反转
//delay(1000); //换向延时
}
}
/********************************************************/
② 各位亲们,有谁做的毕业设计是(基于单片机的车削数控运动控制)啊,或者差不多的论题也行啊。
基于单片机的仪表车床简易数控系统的实现
第2章 数控系统的设计要求
2.1概述
该数控系统是为了适应国内众多的普通机床改造而设计的主要考虑四个方面:
①经济性
既然是用于普通机床的数控化改造,因此,必须充分考虑系统的成本,这是保证达到系统设计目的的关键。这里的成本包括整个系统的成本,包括数控系统、伺服驱动系统及机械传动系统等,其核心在于数控系统的方案选择。
②方便性
数控系统的方便性,又叫“宜人性”,主要反映在系统的编辑部分。编辑(编程)部分是人和系统直接打交道的部分,即所谓的“人机界面”。人机界而应当对用户友好,也就是说编辑(编程)部分应当尽量给用户提供力便、快捷舒适的操作使用环境。系统需从以下几个途径来体现:
●汉化按键,方便各种层次的操作者使用。
●输入、检索、修改尽量一体化。即输入时可以检索、修改,检索时可以修改、输入,并且自动显示程序段号。
●快速检索,即能对程序进行上下翻页显示。
③实用性
经济则数控系统的设计不应追求功能的大而全,应以实用为原则。一般的机械加工只要能具有以下功能即可满足需要:
●直线、圆弧插补。插补速度要充分考虑被机床本身的内在素质,如刚性、抗震性、耐磨性等,不宜过高。
●速度衔接技术,即速度升/降速控制。速度衔接技术可以保证系统在加工过程中实现2段程序间的速度平滑连接,从而避免造成加工刀痕或平台,保证精度。
●动态坐标显示。
●加工程序的掉电保护能力。
●电动刀架控制。采用电动刀架,用软件进行控制,可以提高生产效率。
●细分技术。细分技术是当今经济型数控系统的一项重要技术。它可以有效解决步近电机的低频振荡问题,同时使机床脉冲当量细化,提高控制精度;另外,还可以提高低速加工时的出刀。
④可靠性
由于数控系统工作环境十分恶劣,必须有足够的可靠性才能保证系统稳定运行。
2.2数控系统的性能指标
按照广述设计要求及设想,数控系统的性能指标可归纳为:
●X,Z两轴联动,开环控制方式。
●ISO国际数控标准格式代码编程。
●快速定位。
●具有直线、圆弧插补能力。
●能与上价机串行通信、具有简单的联网能力。
●最大编程尺寸9999.99mm,z轴脉冲当量0.01mm,x轴脉冲当量0.005mm,最大进给速度为0.083m/s(5m/min)。
●预留螺纹加工功能的接口。
●具有连动、点动2种手动加工方式,以及自动连续加工方式。
第3章 总体方案的确定
3.1系统总体方案
本系统在研制过程中,紧紧围绕可靠性、方便性、低成本等设计要求。确定总体方案如下:
3.1.1基于单片机的系统结构
按照上述设计思想,本系统采用基于单片机的系统结构。这种方案结构简单,成本低。考虑到扩展性,主系统采用89S58单片机。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
1.一个个8位的CPU
2、26个特殊功能寄存器(Special Function Register)
3、一个片内振荡器及时钟电路
4、全静态工作:0Hz-24KHz
5、32条可编程I/O线
6、2个16位可编程定时计数器
7、5个中断优先级2层中断嵌套中断
8、2个全双工串行通信口
9、电源控制模式:低功耗的闲置和掉电模式
10、8031 CPU与MCS-51 兼容
11、4个8位并行(Parallel)I/O口
12、三级程序存储器保密锁定
13、128B 内部RAM
14、内部硬件看门狗电路
15、4k Bytes Flash片内程序存储器(寿命:1000写/擦循环)
16、一个SPI串行接口,用于芯片的在系统编程
17、可寻址64KB的外部ROM和外部RAM的控制电路
这些我们称为单片机的资源(Souce),单片机的应用就是怎么充分合理地利用这些资源,来解决实际中的问题
3.1.2人机界面
(1)采用液晶显示界面
作为一个简易型数控系统,采用了12232汉字图形点阵液晶显示模块,带背光字符型液晶模块作为主显示界面,不采用数码管显示。这样做的目的有3个:
●液晶显示方式具有显示容量大、可以显示所有字符及自定义字符的能力。至于不能显示图形以实现加工曲线动态显示的缺陷,可以通过上仪机模拟仿真加工来弥补。
●液晶显示模块自身具有控制器,可以减轻主CPU的负担。
●使系统具有菜单驱动的基本素质。采用菜单驱功方式实现编辑模块的全屏幕编辑功能,达到友好的人机界面要求。
●可显示汉字和图形。
(2)采用双功能按键设计,简化键盘
系统设计中充分考虑功能的需要、操作方便的需要及系统复杂性的要求三者之间的关系确定系统的大多数按键为双功能键,使得整个系统界面简洁。
3.1.3采用开环控制方式
系统设计的目的决定了系统只能采用开环控制方式。在开环型位置控制系统中,只能采用步进电机作为伺服执行单元。这是由步进电机车身的特性决定的。关于步进电机的特性等详细内容参见本章后续有关章节。
开环控制系统的数控机床结构简单,成本较低,仅适用于加工精度要求不很高的中小型数控机床,特别是简易经济型数控机床。
这类系统比较简单,价格最便宜,可以用于小型车床、铣床、钻床和线切割机床。如下图是常见的两坐标简易数控系统的组成框图。系统软件固化在单片机的存储器中,加工程序可通过键盘或磁带机输入,经系统软件进行编辑处理后输出一个系列脉冲,再经光电隔离,功率放大后大驱动两台步进电机,分别控制机床两个方向的运动,完成位置、轨迹和速度的控制。根据需要,微机还可通过继电器电路,实现对诸如主轴起停、变速、各种辅助电机起停、刀架转位、工件爽紧松开等动作的自动控制,使整个加工过程自动进行。
图3-1开环步进电机与单片机连接电路
单片机控制步进电机拖动的开环系统具有价廉,技术成熟等优点,因而使用较多。但这种系统还存在拖动力矩偏小,过载能力差、速度偏低,精度不够高及其价格随力矩增加成指数卜升等缺点。为此,选用时要注意在适当的范围内发挥其优势。一般主要适用于拖动力矩小于15Nm的小型机床,如C616,C618,C620,C6140等普通车床。对于转矩要求大、功能要求多的机床(如铣床、镗床、钻床及镗铣床)和高精度机床(如坐标镗床)就难于使用,需要开发与其适应的其他经济型数控系统。
3.1.4功能精简,提高可靠性
设计具备简易型数控系统必需的基本功能
●直线、圆弧插补能力。
●端面、台阶的循环加工。
●点动、连动、自动3种运行方式。
●申行通信能力。
3.2系统功能模块及其分析
3.2.1系统功能模块与总体框架
(1)系统操作界面
按照上述
图3-2 系统的人机界面图
复位——系统在死机、工作出错等情况下的总清键,使系统回复设计的原始状态。
运行——自动运行用户的零件加工程序,包括程序的语法检查、数据处理、编译、插补运算及步进电机控制等。
暂停一—自动加工的暂停,是一个乒乓键,按一次,加工暂停,再按一次,继续加工。
换刀一—用于手工换刀,每按一次.电动刀架转一个工位,本系统中为90度。
手动——与“←、↑、→、↓”配合,以实现动作台的连动;在编辑程序时为光标移动键。数字1—9均为双功能键、用于程序输入、用“上下档”键进行切换。
G—一准备功能键,用于ISO加工程序输入。
M——辅助功能键,用于冷却泵的启/停、程序的结束等程序段的输入。
插入—一用于程序编辑过程中“插入修改”方式的切换。也是乒乓键,用块光标或下划线光标指示。
删除——在插入方式下,删除当前的字符;在修改方式下,删除当前光标位置字符。
上页一—程序上翻到上一程序段。相当PC机的PageUp键。
下页——程序下翻到下一程序段。与上页键一样是一个屏幕编辑键。相当PC机的PageDown键。
回车——确认键。
Esc——相当于PC机的Esc键。
(2)系统功能模块与总体框架
系统从总体上分为人机界面模块、伺服执行模块、电动刀架拧制模块、串行通信模块及基于AT89S51单片机的主控模块等5大模块,参见图3-2。各模块的功能分别是:
图3-3 系统模块与总体框架
①人机界面模块
该模块主要完成人机的对话与交流,物理上表现为显示器与键盘,核心功能是加工程序的编辑。由于采用全程菜单驱动形式.使该模块具有较好的友善性。
②伺服执行模块
该模块主要由脉冲分配器、伺服驱动及步进电机等组成,是一个执行单元,按照主机的指令完成工作台与刀具的相对运动,实现车削加工。其速度特性、矩频特性等直接影响加工的精度和速度。
③电动刀架控制模块
采用2继电器方式的4方电动刀架.用软件完成刀架的换刀动作,即刀架电机的正转拾刀→换刀→反转锁紧,是经济型数控系统必不可少的部分,可以提高加工效率,大大减少在加工过程中因手工换刀带来的误差。
④串行通信模块
该模块的功能是完成与上位机的串行通信,采用三线制方式,使系统具有基本的组网能力。
⑤主控模块
主要包括零片微处理器(也括监控程序)、加工程序存储单元及与其他模块的接口电路要完成程序编辑、加工程序处理、软件插补达贸、电动刀架饺制及行程限位保护等。
3.2.2系统软件框架
如图3-4展示了系统软件框图。系统上电后,执行初始化程序、键盘扫描程序。如有“计数显示”、“计数清零”、“点动”等功能键按下,执行其各自的工作子程序后返回初始化程序,并显示其相应的提示符。顺序控制程序也设计成子程序模块,它的主要功能是读入各行程开关及压力继电器的信号状态组合,经分析判断,输出一系列控制信号,完成对工件的自动加工。如按下“点动”键,则显示点动提示符,执行顺序控制程序,即返回初始化程序,如按下“连动”功能键,则首先置连动工作标记(此时,除“返回”键外,其余各键均用软件屏蔽),然后开中断,等待,刀具检测信号,收到中断请求信号后,执行中断服务程序。在中断服务控制中,先后执行顺序控制子程序,键盘扫描及显示子程序,并记录和显示数据。完成一次顺序控制或有“返回”键按下,则返回主程序。回到主程序后,仍判断是否有“返回”键按下,如有,则返回初始化程序。否则,重新等待中断。
采用模块化设计:
①点动,连动,换刀
该模块主要实现工作台在x,z两轴上正、反2个方向的点动、连动操作,以及手动控制换刀等,用于方便对刀、工作原点设置等。
②自动
该模块主要实现加工程序的处理(包括程序语法检查、程序编译、数据处理等)、插补运算步进电机的控制及自动换刀控制等。
③参数设置
该模块主要实现刀具补偿参数设置、间隙补偿参数设置等自动加工参数的设置。
④编辑模块
该模块主要实现零件加工程序的键盘编辑、输入。
⑤通信模块
该模块主要实现与上位机或其他智能设备的串行通信,可用于加工程序的传送等。
图3-4 系统软件原理框图
第4章 硬件系统设计
4.1主模块设计
4.1.1主模块中关键器件及其选型
(1)单片机
本系统采用PHILIPS公司的8位单片机AT89S51为控制核心。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,全静态工作,RAM可扩展到64K字节,5个中断优先级,2层中断嵌套中断,32个外部双向输入/输出(I/O)口,2个16位可编程定时计数器。外接一片2764EPROM,作为监控程序的程序存储器和存放常用零件的加工程序。再选用一片6264RAM用于存放需要随机修改的零件程序、工作参数。采用译码法对扩展芯片进行寻址,采用74LS138译码器完成此功能。8279作为系统的输入输出口扩展,分别接键盘的输入、输出显示,8255接步进电机的环形分配器,分别并行控制X轴和Z轴的步进电机。另外,还要考虑机床与单片机之间的光电隔离,功率放大电路等.
图4-1单片机系统原理框图
(2)数据存储器的选用
系统采用单片机作为控制核心,最高速度为33MHz,我们用到22.1184MHz。速度高对外部电路特别是外部数据,程序存储器扩展电路要求很高。必须满足在CPU读数据或程序指令时,外部数据或程序指令已准备好了。所以必须进行芯片的时序校验。为了使系统工作可靠我们也进行存储器的校验。
首先,对存储器作一介绍。单片机存储器分为内部存储器和外部存储器,内部存储器又分为内部数据存储器和程序存储器,同样,外部存储器也分为程序和数据存储器。本系统采用AT89S51为核心单元,其本身带有128B的RAM和4KB的Flash内部程序存储器。对于数据存储器,内外两部分是独立编址的,用不同指令来访问不同的数据存储器,即,MOV访问片内,MOVC访问片外,外部可扩展到64K,由于在外部数据存储器和I/0是统一编址的,应给I/0留一定的空间,且本系统要求留有一定的扩展空间,所以本系统扩展采用的芯片是6264。Y62256是HUNDAI公司的一种高速低功耗32K的
CMOS的静态RAM,采用现代公司的高速CMOS工艺技术。HY62265具有数据保持模式,以确保在最低供电电压下2V数据有效。使用CMOS技术,电源电压在2.OV~5.5V之间,数据保持电流几乎没有影响。HY62256适合使用在低压和电池供电工作环境。M28256用于扩展程序存储器,是一种采用ST微电子公司拥有知识产权的多极性硅技术制造的。在3V或}V供电条件下具有快谏低功耗工作模式。电路已被设计成可提供与微控制器柔性接口特征。可使用软件或硬件进行数据循环测试或位功能锁定。可以使用标准的JEDEG运算法则进行软件数据保护。电路扩展如图4-2所示。
图4-2 存储器扩展
(3)总线驱动、数据、地址锁存及译码电路
由于单片机的数据线和低位地址线共用必须加地址锁存器进行低位地址锁存。使用74LS373作为地址锁存器,当应用系统规模过大,扩展所接芯片过多,超过总线的驱动能力时,系统将不能可靠工作,此时应加用总线驱动器来减少读数据的持续时间。整个系统可扩展的外部数据总共为64K,由于单片机外部数据存贮器和工/0是统一编址的,我们将低32K作为外部扩展的数据存储器,高译码电路采用两片74LS138,用了32K作为I/0使用或留给以后扩展用。由于外设使可编程器件,所以在使用138作译码时需要产生两种译码地址:一种是地址连续,一种是段地址连续。其中Ll,L5可作为系统再次扩展时用。译码地址输出在图4-3中已给出,Y0-Y7作为单地址芯片片选信号,Y8-Y15可作为可编程芯片片选信号,如8254可编程计数器。译码电路如图4-3.
图4-3译码电路
4.1.2主模块电原理图设计
本系统选用AT89S51CPU作为数控系统的中央处理机。主程序框图如图4-4。外接一片2764EPROM,作为监控程序的程序存储器和存放常用零件的加工程序。再选用一片6264RAM用于存放需要随机修改的零件程序、工作参数。采用译码法对扩展芯片进行寻址,采用74LS138译码器完成此功能。8279作为系统的输入输出口扩展,分别接键盘的输入、输出显示,8255接步进电机的环形分配器,分别并行控制X轴和Z轴的步进电机。另外,还要考虑机床与单片机之间的光电隔离,功率放大电路等。
8255A可编程并行I/O口扩展芯片可以直接与MCS系列单片机系统总线连接,它具有三个8位的并行I/O口,具有三种工作方式,通过编程能够方便地采用无条件传送、查询传送或中断传送方式完成CPU与外围设备之间的信息交换。
CPU对8279的控制是先读回8279的状态字,查看PIFORAM中有无字符 ,若有将根据字符个数读出所有字符,并进行相应处理;若无,则直接返回。CPU对8279的监视采用查询方式,对8279分配的数据口地址为8000H,状态口地址为8001H,CPU每隔10ms定时中断查询一次,所有显示采用查询段码表的方式实现,简化了程序设计过程,提高了程序质量。
图4-4主程序框图
4.2输入/输出模块设计
4.2.1 I/O模块电原理图设计
8279作为系统的输入输出口扩展,分别接键盘的输入、输出显示。8279是可编程接口芯片,通过编程使其实现相应的功能,编程的过程实际上就是CPU向8279发送控制指令的过程。在软件设计中,显示方式采用了8个字符显示,左入方式,编码扫描键盘,双键锁定。I/O模块电原理图如图4-5所示。
图4-5 I/O模块电原理图
图4-6 8279工作程序框图
4.2.2步进电机控制接口
X,Z两轴采用3相6拍步进电机,并口8255向控制端口写控制字,PUSLE来实现对步进电机的控制。8255接步进电机的环形分配器,通过3片4N25光电隔离,分别形成X、Z所需的3相控制信号,送往步进电机驱动电源,分别并行控制X轴和Z轴的步进电机。芯片YB013实现硬件环分任务,;达林顿光隔离管4N25实现计算机弱点部分和步进电机强电部分的隔离,既起功率放大作用,又充当无触点开关,实现对计算机的保护。单片机控制步进电机连接如图4-7所示。
图4-7 单片机控制步进电机
4.2.3刀具控制接口
(1)电动刀架及其工作原理
电动刀架的机械部分类似于蜗轮机构,实现刀具的抬升、旋转(交换刀具位置)及下降锁紧,这里着重讨论实现上述动作所必须的硬件条件和电路原理。
在图4-8中,继电器KA1,KA2实现电动刀架的动作切换控制,主要完成刀架电机的正、反转切换。在刀架旋转过程中,每个工位上的霍尔元件会依次切换为有效状态,系统根据T1,T2,T3及T4状态的变化,可以推断出目前的刀号,并判断是否为当前所选用刀具,一旦符合,则电机反向旋转,锁紧刀具。电动刀架各时序的切换反间隔是系统控制的关键,反向锁紧所用时间取决于电动刀架生产厂家的推荐指标,过长会引起电机发热甚至烧毁。为保证电动刀架安全运行,在电动刀架交流380V进线处加装快速熔断器和热继电器。
图4-8电动刀架的电原理图
(2)电动刀架与单片机的接口
电动刀架与系统的硬件接口主要是控制电机正、反转信号J1,J2及刀号反馈信号TI,T2,T3和T4。上述信号均光电隔离后与单片机系统接口。
电动刀架软件控制流程如图4-9所示,采用查询方式。
图4-9电动刀架控制流程
程序为:
#include <AT89S51.h>
#include <absacc.h>
#define N1 XBYTE[ ]
typedef unsigned char uchar
void adc0809(uchar idata *x);
void delay();
void main()
{
static uchar idata ad[4];
adc0809(ad);
}
void adc0809(uchar idata *x)
{
uchar i,*ad_adr;
uchar motor=1;
ad_adr=&N1;
for(i=0;i<4;i++)
{
If(*ad_adr=i)
{
delay1( );
KA1=1;
delay2( );
return();
}
else KA1=0
}
}
void delay1(motor==0)
{
uchar j;
for(j=0;j<20000;j++)
{;}
}
void delay2(void)
{
uchar j;
for(j=0;j<150000;j++)
{;}
}
4.2.4急停、暂停、行程限位接口电路
限位开关为常开状态;因此,X十,X一,Z十,Z一正常输人为低电平状态。因此如果行程开关被压合,向INT0发出中断信号,系统进行复位,步进电机的脉冲消失,也就无法继续前行,起到保护机床的目的。本系统采用三输入端与非门74HC10的输出端作为一个共用的中断信号接至单片机的INT0,用于实时处理紧急停车、暂停、限位报警功能。电路如图4-8所示:
4.3串行通信电路
本系统由两部分构成,上位机系统和下位机系统,由于上位机主要完成管理显示等工作,下位机完成控制功能,所以上位机和下位机的数据传输实时性要求不高,我们采用串口通信。使用RS232标准,MAX232进行电频的转换。串口RS232标准,它是美国电子工业协会(Electronic Instry Association)的推荐标准。本系统采用9针连接器,其定义见表4-1。本系统采用三线制TXD,RXD,GND连接,以使电路简单。
表4-1 连接器定义表
串口通讯电路主要由MAX 232电平转换电路构成。MAX232是MAXIM公司产品,一种电平转换芯片。可以将TTL转换成RS232,或RS232转换成TTL。满足单片机和普通计算机的通讯电平转换要求。电路如图4-10所示。
图4-10 通信接口电路
4.4人机界面模块设计
4.4.1单片机应用系统中常用显示方式及其比较
在单片机应用系统中,目前比较常用的显示介质有数码管(LED)、液晶显示(LCD)及CRT等,在家用电器中用的比较多的是真空荧光屏(VFD)。现就各自特点简述如下:
(1)数码管
数码管是一种主动发光器件。所谓主动发光.是指环境越暗越清晰。分为7段数码管和“米”字数码管2种。前者用于显示ARCⅡ码,显示信息量小;后者除了可显示ARCⅡ字符外,还可显示一些自定义的比较复杂的字符。数码管按驱动电流分,又可分为普通亮度、高亮、超高亮等。数码管由于其廉价而且扩展方便等特性,—直是单片机系统中用得最多、最广的一种显示器件。国内有不少型号的数控系统、尤其是早期的数控系统,广泛采用数码管作为显示界面。
(2)液晶显示
液晶显示器是一种被动发光器件。所谓被动发光,是指环境越亮越清晰,黑暗环境下必须加入背光才能清晰显示。分为字段型液晶显示器、字符型液晶显示器及图形点阵液晶显示器。字段型只能显示ASCII字符,字符型可以显示ASCII字符,显示效果比字段型好,而且可以显示少量的自定义字符;图形点阵液晶显示器是目前在单片机系统中比较流行的新型显示器件,可以显示所有字符及图形,由于其可以显示汉字的特性,被广泛用于国内智能设备中,国内的数控系统也开始广泛采用。
(3)CRT
CRT显示器分为单色和彩色2种,在数控系统中,尤其是高档数控系统中应用日益广泛。其特点是成本低、显示容量大;可以显示所合字符、图形及汉字;采用视频专用接口电路MC6847等与单片机接口,比较复杂,因而在—般的应用中比较少见。
(4)真空荧光屏
真空荧光屏简称VFD(vacuunm fluorescent display mole),是一种新型的显示器件。它由3个基本电极——阴极(灯丝)、阳极及栅做封装在一个真空的玻璃容器内构成。阴极是涂敷了金属氧化物的钨丝;栅极是极细的金属网;阳极为段或点阵型的导电电极,它上面的荧光物质可显示相应的字符或符号。栅极和阳极之间加有正电压,从阴极发射出来的电子被这个正电压加速,碰擅到阳极表面的荧光物质产生辐射,发出波长为505nm左右的谈绿色荧光。通过按制栅极和阳极之间的电压,就可以显示各种字符。VFD由于其以下特点而被广泛应用于家用电器、商场POS机以及新型的仪器仪表中。①亮度高,并且不存在视角问题,②工作温度范围宽、寿命长;②外围电路简单,只需十5v电源就可以工作,提供准8位数据总线接口;④功耗低。但这种显示器目前用在数控系统上还比较少。
4.4.2点阵液晶显示模块
(1)字符型液晶显示模块
本数控系统采用字符点阵液晶显示模块DM12232。该模块具有以下特点:
●能显示122列32行
●电源VDD3.3V~5V(内置升压电路,无需负压)
●与微处理器接8位或4位并行/ 3位串行
●多种软件功能:自定义字符、画面移动、光标显示、睡眠模式等功能
●配置LED背光
③ 怎么学习能控制机械运动的单片机。
开始学习很多都是选择AT89C51或是52入门。首先得对单片机有兴趣。去网上搜索郭天祥老师的视频教程,我是都学习了一遍的,讲得很好,然后按照视频里讲的,下载一些相关编程软件和电路仿真软件,跟着教程练习,学下来单片机的基本内容就算掌握了。纸质教材嘛,大学时计科系,机电系用的那本教材就不错,具体书名时隔几年到忘了,网上搜一下吧,有条件的就去网购一块单片机开发板,毕竟实践出真知。我的体会是,要想学的更好,在初步掌握单片机后把基础的模电数电过几遍看透了,同时多看一些单片机相关书籍。我觉着,单片机越学越有意思,一定程度了可以自己做东西的。
关键是有信心坚持走下去,祝你如愿!
④ 如何用计算机控制机械的运动
http://www.pic16.com/帮你找了个网站,看看吧!
http://ke..com/view/1012.html?wtp=tt
单片机定义
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。
[编辑本段]单片机介绍
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
单片机历史
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最着名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
[编辑本段]单片机的应用领域
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
1.在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。
2.在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4.在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5.单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
6.在各种大型电器中的模块化应用
某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。
在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
[编辑本段]学习应中六大重要部分
单片机学习应中的六大重要部分
一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。
二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的——数字,或者说都是一串‘0’和‘1’组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不可以由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况:
1•地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。
2•方式字或控制字(如MOV TMOD,#3),3即是控制字。
3•常数(如MOV TH0,#10H)10H即定时常数。
4•实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际输出的值。
理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指令来执行了。
三、P0口、P2口和P3的第二功能用法:初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间要有一个切换的过程,或者说要有一条指令,事实上,各端口的第二功能完全是自动的,不需要用指令来转换。如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从P3.6或P3.7送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用’也并不是‘不能’而是(使用者)‘不会’将其作为通用I/O口使用。你完全可以在指令中按排一条SETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么去做,因为这通常这会导致系统的崩溃。
四、程序的执行过程: 单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000’,所以程序总是从‘0000’单元开始执行,也就是说:在系统的ROM中一定要存在‘0000’这个单元,并且在‘0000’单元中存放的一定是一条指令。
五、堆栈: 堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的混乱。不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了。
六、单片机的开发过程: 这里所说的开发过程并不是一般书中所说的从任务分析开始,我们假设已设计并制作好硬件,下面就是编写软件的工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也就被确定了。然后用文本编辑器(如EDIT、CCED等)编写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就可以写片(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可写片。在此,为使大家对整个过程有个认识,举一例说明:
ORG 0000H
LJMP START
ORG 040H
START:
MOV SP,#5FH ;设堆栈
LOOP:
NOP
LJMP LOOP ;循环
END ;结束
[编辑本段]单片机学习
目前,很多人对汇编语言并不认可。可以说,掌握用C语言单片机编程很重要,可以大大提高开发的效率。不过初学者可以不了解单片机的汇编语言,但一定要了解单片机具体性能和特点,不然在单片机领域是比较致命的。如果不考虑单片机硬件资源,在KEIL中用C胡乱编程,结果只能是出了问题无法解决!可以肯定的说,最好的C语言单片机工程师都是从汇编走出来的编程者因为单片机的C语言虽然是高级语言,但是它不同于台式机个人电脑上的VC++什么的单片机的硬件资源不是非常强大,不同于我们用VC、VB等高级语言在台式PC上写程序毕竟台式电脑的硬件非常强大,所以才可以不考虑硬件资源的问题。
以8051单片机为例讲解单片机的引脚及相关功能;
《单片机引脚图》
40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。
⒈ 电源:
⑴ VCC - 芯片电源,接+5V;
⑵ VSS - 接地端;
注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。
⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。
⒊ 控制线:控制线共有4根,
⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲
① ALE功能:用来锁存P0口送出的低8位地址
② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵ PSEN:外ROM读选通信号。
⑶ RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。
② VPD功能:在Vcc掉电情况下,接备用电源。
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。
② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋ I/O线
80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)
[编辑本段]常用单片机芯片简介
PIC单片机:
是MICROCHIP公司的产品,其突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强的模拟接口,代码保密性好,大部分芯片有其兼容的FLASH程序存储器的芯片.
EMC单片机:
是台湾义隆公司的产品,有很大一部分与PIC 8位单片机兼容,且相兼容产品的资源相对比PIC的多,价格便宜,有很多系列可选,但抗干扰较差.
ATMEL单片机(51单片机):
ATMEl公司的8位单片机有AT89、AT90两个系列,AT89系列是8位Flash单片机,与8051系列单片机相兼容,静态时钟模式;AT90系列单片机是增强RISC结构、全静态工作方式、内载在线可编程Flash的单片机,也叫AVR单片机.
PHLIPIS 51PLC系列单片机(51单片机):
PHILIPS公司的单片机是基于80C51内核的单片机,嵌入了掉电检测、模拟以及片内RC振荡器等功能,这使51LPC在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求.
HOLTEK单片机:
台湾盛扬半导体的单片机,价格便宜,种类较多,但抗干扰较差,适用于消费类产品.
TI公司单片机(51单片机):
德州仪器提供了TMS370和MSP430两大系列通用单片机.TMS370系列单片机是8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合;MSP430系列单片机是一种超低功耗、功能集成度较高的16位低功耗单片机,特别适用于要求功耗低的场合
⑤ 对单片机编程要用什么软件
keil最流行单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 目前最新的版本是keil uv3,可下载破解版本,否则有容量限制。
⑥ 运动控制卡如何使用
运动控制卡,控制的是驱动器,而不是直接的电机,
一般有2种控制方式脉冲,模拟量,
脉冲控制:驱动器是工作在位置环,脉冲的多少代表走的长度,频率表示速度
模拟量控制:驱动器工作在速度环或者电流环,模拟量的大小对应电机的速度,与位置,但这些还是靠电机的反馈编码器来衡量。
你的是直线电机,如果用运动控制卡控制,必须有,直线电机+光栅尺(磁栅尺)+驱动器+运动控制卡 可能有上位机(看你这个系统也不会只是一个直线电机)
光栅尺相当于编码器,使电机的位置闭环。像伺服电机要有后面的编码器一样
运动控制卡有发脉冲的,和模拟量的之分。模拟量的贵,考虑到PID的算法一般成熟的多是国外的。当然国内的也有。至于多少钱,跟轴数有关,外国的4轴的模拟量一般在8000以上把
因为你的是直线电机,最好用模拟量的,
至于用什么语言的话,国内的没有接错过,外国的一般他们有专门的软件及其语言类似VB,C,如果你最后要集成到上位机的话,多有开发包(API),VB,VC,LABVIEW等等几乎所有语言应该多可以支持
⑦ 急求啊 基于AVR单片机的三轴雕刻机运动控制,要用到ATMEGA16、C语言,要编程但是本人不会编程,求大神指点
网上有个Grbl学下把,非常优秀的G代码软件
⑧ 51单片机用什么软件编程
开源软件mcu8051ide 功能不是一般的强,用c语言编程,界面不输给商业软件,而且提供多种模拟器件如:led 数码管,矩阵数码管(8×8)按键,矩阵按键,甚至温度传感器。开源的没有任何限制,完全免费,自动生成多种烧录文件(我们一般就用.HEX的)感觉keil c弱爆了。
安装方法,下载sdcc(mcu8051ide是基于sdcc的)和mcu 8051 ide都安装好就可以啦,头文件在sdcc的安装文件夹内(include)有些关键字要加两个连在一起的下划线比如 __interrup, __code.
头文件与keil的不通用,比如定义P0口
在keil下是: sfr P0=0x80; 在sdcc下是: __sfr __at P0 0x80; 这个P0^1的不行,但sdcc里面有很多头文件8051.h 80c51.h 80c52.h等等 基本满足要求,给stc单片机编程不用改,加一点特殊的就可以。这样优秀的开源软件不用真的是白不用啊。
⑨ 谁帮我推荐几款三轴运动控制器,可以示教编程的
EMAC200独立式可编程运动控制器——4轴
(特点:运行速度最快的运动控制、功能设置简介通过程序内部相当可以轻松引导客户完成硬件配置)(今年来在高校运用的量增加,所以针对实验程序的案例比较多,完整系统运用程序因为受到此控制器程序保护功能因素,所以相对要少)
ACR9000独立式可编程运动控制器——2、4、6、8轴
(特点:功能最全面的运动控制、几乎涵盖了运动控制运用中的所以应用能力)(在工厂使用的比较多,案例程序比较完整)
PMAC2可编程运动控制卡,需要搭载工控机运行
(特点:美国第一款进入中国的运动控制卡,功能强大但程序设计复杂)(这款控制卡运用比较早,案例程序繁杂)
独立式可编程运动控制器是已经封装好了外壳,在内部提升了防护等级,如抗干扰、振动、防尘灯,一般单台规格为2、4、6、8轴,需要更多的轴是通过总线外扩充一般扩展轴速也都能达到256轴以上。可以脱离电脑通自己的CPU独立运行,同时可以考虑加装触摸屏来监视,设备运行情况。
运动控制卡(板块型)通常通过PCI插槽连接到电脑上,工厂一般用工控机来和运动控制卡组合使用,因为工控机可以提供多个插槽给运动控制卡以便扩展轴数。
⑩ 用c语言编写控制电机运动的程序
1、有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P0.0到P0.2来代替;输出2个或以上(这看接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P1.0、P1.1;需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用NPN传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以。
2、例程:
#include<reg51.h>//选用晶振11.0592MHz
unsignedchark=0;//k表示正反转次数
sbitX0=P3^2;//调节按钮
sbitX1=P1^1;//上限位接近开关信号
sbitX2=P1^2;//下限位接近开关信号
sbitY1=P0^0;//电机上升(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电机点动的影响)
sbitY2=P0^1;//电机下降
voiddelay50ms(unsignedinti)
{
unsignedintj;
for(i;i>0;i--)
for(j=46078;j>0;j--);
}
main()
{
IT0=1;//下降沿触发
EX0=1;//开P3.2外部中断
EA=1;//总中断开
while(1)
while(k)
{
Y1=0;//正转
while(X1==1);//等待正转接近开关反应
Y1=1;//正转停
delay50ms(1);//停止时间50ms
Y2=0;//反转
while(X2==1);//等待反转接近开关反应
Y2=1;//反转停
k--;//圈数减一
}
}
voidcounter0(void)interrupt0
{
k++;//外部中断控制圈数加一
//这个位置可以加你显示程序
}