摘要:介绍了一种基于微机和单片机的步进电机控制系统,利用上、下位机控制步进电机的多种运行方式,可实现步进电机正反转控制以及步进电机的无级调速。程序采用模块化设计,通过PC机容易实现各功能设置。关键词:步进电机;微机;串口通信
上传时间: 2013-11-01
上传用户:范缜东苑
车辆行驶性能的好坏,不仅取决于发动机,而且在很大程度上还依赖于变速器及变速器与发动机的匹配。在汽车上使用的自动变速器大致有三类:液力自动变速器(Automatic Transmission,AT)、电子控制机械自动变速器(AutomaticMechanicalTransmission,AMT)和金属带式无级变速器(Continuously Variable Transmission,CVT)。前两种变速器都是有级或分段无级自动变速,无级变速器CVT避免了齿轮传动比不连续的缺点,具有传动比连续、传递动力平稳、操纵方便、可使汽车行驶过程中经常处于良好的性能状态、可改善汽车排放和降低燃油消耗等特点,真正实现了无级变速。我国的汽车工业与发达国家有较大的差距,通过研制无级变速(CVT)控制系统对缩小差距和世新纪发展我国民族汽车工业都具有十分重要的意义。
上传时间: 2013-11-11
上传用户:qingzhuhu
CAN通讯模块 联系 杨迪 15336417867 0531-55508458 QQ:1347978253 htp://www.easyele.cn 产品关键特点: CAN通讯模块包括了所有模拟和数字元件、RS232电平变换、CAN-bus接口等。该产品可以很方便地嵌入到具有UART接口的设备中,在不需改变原 有硬件结构的前提下使设备获得CAN-bus通讯接口,实现具有UART设备和CAN-bus网络之间的数据通讯。 产品简介: CAN通讯模块模块体积小巧,实现CAN-bus网络单芯片解决方案。 电源链接:CAN通讯模块供电电压DC5V±5%,CAN通讯模块本身无稳压措施,请务必注意供电电压范围,低于4.5V或高于5.5V时,系统无法保证正常工作。产品的16、17脚为+5V输入(正),14、15脚为电源地(负)。CAN-bus网络连接:芯片实现UART数据与CAN-bus总线数据的双向透明转换。两个设备的CAN_H与CAN_H相连,CAN_L与CAN_L相连。CAN-bus网络的两个端点需要安装终端电阻。 CAN通讯模块是公认的稳定可靠的通讯模式,产品系统采用汽车级CPU,更保障其稳定性,广泛应用于消防安防、智能楼宇、酒店门锁、煤矿通 讯、船舶运输等应用领域。CAN通讯模块通过UART转CAN可以帮助用户快速实现具有CAN-bus通讯接口的仪器、仪表设备的项目设计。模块集成了8bit微处理器、CAN控制器、CAN收发器、总线保护于一身,所有元器件布置在一个微型的封装模块之内,用户只需要知道RS232的通讯即可实现CAN通讯。提供上位机设计,可以工作于透明传输模式和透明数据模式。 CAN通讯模块价格性价比高,大大降低了用户的使用成本。欢迎咨询选购。
上传时间: 2013-10-10
上传用户:mqien
单片机嵌入式模块 联系 杨迪 15336417867 0531-55508458 QQ:1347978253 htp://www.easyele.cn 单片机嵌入式模块集成了8bit微处理器、CAN控制器、CAN收发器、总线保护于一身,所有元器件布置在一个微型的封装模块之内,用户只需要 知道RS232的通讯即可实现CAN通讯。并且提供嵌入式网络模块上位机设计,可以工作于透明传输模式和透明数据模式。 UART输出可以为TTL电 平,RS232或RS485。货号:CAN-module 规格: 套. 单片机嵌入式模块广泛应用于消防安防、智能楼宇、酒店门锁、煤矿通讯、船舶运输等应用领域。CAN 是公认的稳定可靠的通讯模式,本系统 采用汽车级CPU,更保障其稳定性。单片机嵌入式模块通过UART转CAN可以帮助用户快速实现具有CAN-bus通讯接口的仪器、仪表设备的项目设计。 我们济南恩易电子科技有限公司是一家集研发生产销售于一体的高科技企业,主营业务字符叠加器,数据采集卡,串口服务器,嵌入式学习开 发工具等,可为客户定制开发,单片机嵌入式模块上市以来,一直深受广大顾客的喜爱,我们有专业的包装,详细的资料光盘,技术指导,合 理的价格,欢迎大家咨询购买。
上传时间: 2013-10-11
上传用户:gengxiaochao
嵌入式网络模块 联系 杨迪 15336417867 0531-55508458 QQ:1347978253 htp://www.easyele.cn 嵌入式网络模块可以帮助用户快速实现具有CAN-bus通讯接口的仪器、仪表设备的项目设计。 嵌入式网络模块集成了8bit微处理器、CAN控制器、CAN收发器、总线保护于一身,所有元器件布置在一个微型的封装模块之内,相当与一个集 成电路,麻雀虽小,但是五脏俱全,用户只需要知道RS232的通讯即可实现CAN通讯。UART输出可以为TTL电平,RS232或RS485。 CAN 是公认的稳定可靠的通讯模式,应用范围及其广泛如:消防安防、智能楼宇、酒店门锁、煤矿通讯、船舶运输等应用领域。嵌入式网络模 块的系统采用汽车级CPU,更保障其稳定性,抗干扰能力强; 提供上位机设计,嵌入式网络模块可以工作于二种模式,一种是透明传输模式,一 种是透明数据模式,用户可以根据自己的需求,选择模式。 嵌入式网络模块简单操作,使用方便,低廉的价格,大大降低了用户的使用成本。批量购买,我们给予优惠,产品性能优良,质量保证,欢迎 咨询购买。
上传时间: 2013-12-20
上传用户:lo25643
嵌入式CAN模块 联系 杨迪 15336417867 0531-55508458 QQ:1347978253 htp://www.easyele.cn CAN (Controller Area Network)即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性 、实时性和灵活性。嵌入式CAN模块控制器功能强,通信效率高,是公认的稳定可靠的通讯模式,广泛应用于消防安防、智能楼宇、酒店门锁、 煤矿通讯、船舶运输等应用领域。本系统采汽车级CPU,更保障其稳定性。客户可以放心使用。 嵌入式CAN模块 转 RS232 RS485 TTL ,可以帮助用户快速实现具有CAN-bus通讯接口的仪器、仪表设备的项目设计,模块集成了8bit微处理器 CAN控制器、CAN收发器、总线保护于一身,所有元器件布置在一个微型的封装模块之内,用户只需要知道RS232的通讯即可实现CAN通讯。客户 可以方便使用。 在使用过程中,嵌入式CAN模块可以工作于二种模式:透明传输模式和透明数据模式。并且提供上位机设计,UART输出时可以为TTL电平,RS232 或RS485,对应订货型号为 CAN-module-ttl / rs232 / 485。客户应注意。 嵌入式CAN模块可以在CAN与RS232间精确的转换信息,让您更方便的通过PC或带RS232端口的设备与CAN设备通讯。欢迎大家咨询选购嵌入式CAN 模块,是我公司自主研发生产,完全拥有知识产权,专业的产品包装,详细的资料光盘,性价比高,专业公司操作,及时的技术支持,完善的 售后服务,解决客户的后顾之忧。
上传时间: 2013-11-28
上传用户:13925096126
8031单片机的中断系统简单实用,其基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的编程。
上传时间: 2014-12-27
上传用户:1214209695
电加热炉是典型工业过程控制对象,其温度控制具有升温单向性,大惯性,纯滞后,时变性等特点,很难用数学方法建立精确的模型和确定参数。而PID控制因其成熟,容易实现,并具有可消除稳态误差的优点,在大多数情况下可以满足系统性能要求,但其性能取决于参数的整定情况。且快速性和超调量之间存在矛盾,使其不一定满足快速升温、超调小的技术要求。模糊控制在快速性和保持较小的超调量方面有着自身的优势,但其理论并不完善,算法复杂,控制过程会存在稳态误差。 将模糊控制算法引入传统的加热炉控制系统构成智能模糊控制系统,利用模糊控制规则自适应在线修改PID参数,构成模糊自整定:PID控制系统,借此提高其控制效果。 基于PID控制算法,以ADuC845单片机为主体,构成一个能处理较复杂数据和控制功能的智能控制器,使其既可作为独立的单片机控制系统,又可与微机配合构成两级控制系统。该控制器控制精度高,具有较高的灵活性和可靠性。 2 温度控制系统硬件设计 该系统设计的硬件设计主要由单片机主控、前向通道、后向通道、人机接口和接口扩展等模块组成,如图l所示。由图1可见,以内含C52兼容单片机的ADuC845为控制核心.配有640 KB的非易失RAM数据存储器、外扩键盘输人、320x240点阵的图形液晶显示器进行汉字、图形、曲线和数据显示,超温报警装置等外围电路;预留微型打印机接口,可以现场打印输出结果;预留RS232接口,能和PC机联机,将现场检测的数据传输至PC机来进一步处理、显示、打印和存档。
上传时间: 2013-10-11
上传用户:vodssv
AVR单片机技术原理 AVR单片机介绍 单片机又称单片微控制器,它是把一个计算机系统集成到一个芯片上,概括的讲:一块芯片就成了一台计算机。单片机技术是计算机技术的一个分支,是简易机器人的核心元件。 1997年,由ATMEL公司挪威设计中心的A先生与V先生利用ATMEL公司的Flash新技术, 共同研发出RISC精简指令集的高速8位单片机,简称AVR。[编辑本段]AVR单片机的优势特征 单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表和机器人制作等领域,使产品功能、精度和质量大幅度提升,且电路简单,故障率低,可靠性高,成本低廉。单片机种类很多,在简易机器人制作和创新中,为什么选用AVR单片机呢? 一、简便易学,费用低廉 首先,对于非专业人员来说,选择AVR单片机的最主要原因,是进入AVR单片机开发的门槛非常低,只要会操作电脑就可以学习AVR单片机的开发。单片机初学者只需一条ISP下载线,把编辑、调试通过的软件程序直接在线写入AVR单片机,即可以开发AVR单片机系列中的各种封装的器件。AVR单片机因此在业界号称“一线打天下”。 其次,AVR单片机便于升级。AVR程序写入是直接在电路板上进行程序修改、烧录等操作,这样便于产品升级。 再次,AVR单片机费用低廉。学习AVR单片机可使用ISP在线下载编程方式(即把PC机上编译好的程序写到单片机的程序存储器中),不需购买仿真器、编程器、擦抹器和芯片适配器等,即可进行所有AVR单片机的开发应用,这可节省很多开发费用。程序存储器擦写可达10000次以上,不会产生报废品。 二、高速、低耗、保密 首先,AVR单片机是高速嵌入式单片机: 1、AVR单片机具有预取指令功能,即在执行一条指令时,预先把下一条指令取进来,使得指令可以在一个时钟周期内执行。 2、多累加器型,数据处理速度快。AVR单片机具有32个通用工作寄存器,相当于有32条立交桥,可以快速通行。 3、中断响应速度快。AVR单片机有多个固定中断向量入口地址,可快速响应中断。 其次,AVR单片机耗能低。对于典型功耗情况,WDT关闭时为100nA,更适用于电池供电的应用设备。有的器件最低1.8 V即可工作。 再次,AVR单片机保密性能好。它具有不可破解的位加密锁Lock Bit技术,保密位单元深藏于芯片内部,无法用电子显微镜看到。 三、I/O口功能强,具有A/D转换等电路 1. AVR单片机的I/O口是真正的I/O口,能正确反映I/O口输入/输出的真实情况。工业级产品,具有大电流(灌电流)10~40 mA,可直接驱动可控硅SCR或继电器,节省了外围驱动器件。 2. AVR单片机内带模拟比较器,I/O口可用作A/D转换,可组成廉价的A/D转换器。ATmega48/8/16等器件具有8路10位A/D。 3. 部分AVR单片机可组成零外设元件单片机系统,使该类单片机无外加元器件即可工作,简单方便,成本又低。 4. AVR单片机可重设启动复位,以提高单片机工作的可靠性。有看门狗定时器实行安全保护,可防止程序走乱(飞),提高了产品的抗干扰能力。 四、有功能强大的定时器/计数器及通讯接口 定时/计数器T/C有8位和16位,可用作比较器。计数器外部中断和PWM(也可用作D/A)用于控制输出,某些型号的AVR单片机有3~4个PWM,是作电机无级调速的理想器件。 AVR单片机有串行异步通讯UART接口,不占用定时器和SPI同步传输功能,因其具有高速特性,故可以工作在一般标准整数频率下,而波特率可达576K。
上传时间: 2013-10-18
上传用户:二十八号
有两种方式可以让设备和应用程序之间联系:1. 通过为设备创建的一个符号链;2. 通过输出到一个接口WDM驱动程序建议使用输出到一个接口而不推荐使用创建符号链的方法。这个接口保证PDO的安全,也保证安全地创建一个惟一的、独立于语言的访问设备的方法。一个应用程序使用Win32APIs来调用设备。在某个Win32 APIs和设备对象的分发函数之间存在一个映射关系。获得对设备对象访问的第一步就是打开一个设备对象的句柄。 用符号链打开一个设备的句柄为了打开一个设备,应用程序需要使用CreateFile。如果该设备有一个符号链出口,应用程序可以用下面这个例子的形式打开句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3", GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路径名的前缀“\\.\”告诉系统本调用希望打开一个设备。这个设备必须有一个符号链,以便应用程序能够打开它。有关细节查看有关Kdevice和CreateLink的内容。在上述调用中第一个参数中前缀后的部分就是这个符号链的名字。注意:CreatFile中的第一个参数不是Windows 98/2000中驱动程序(.sys文件)的路径。是到设备对象的符号链。如果使用DriverWizard产生驱动程序,它通常使用类KunitizedName来构成设备的符号链。这意味着符号链名有一个附加的数字,通常是0。例如:如果链接名称的主干是L“TestDevice”那么在CreateFile中的串就该是“\\\\.\\TestDevice0”。如果应用程序需要被覆盖的I/O,第六个参数(Flags)必须或上FILE_FLAG_OVERLAPPED。 使用一个输出接口打开句柄用这种方式打开一个句柄会稍微麻烦一些。DriverWorks库提供两个助手类来使获得对该接口的访问容易一些,这两个类是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass类封装了一个设备信息集,该信息集包含了特殊类中的所有设备接口信息。应用程序能有用CdeviceInterfaceClass类的一个实例来获得一个或更多的CdeviceInterface类的实例。CdeviceInterface类是一个单一设备接口的抽象。它的成员函数DevicePath()返回一个路径名的指针,该指针可以在CreateFile中使用来打开设备。下面用一个小例子来显示这些类最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface( GUID* pClassGuid, DWORD instance, PDWORD pError){ CDeviceInterfaceClass DevClass(pClassGuid, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; CDeviceInterface DevInterface(&DevClass, instance, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; cout << "The device path is " << DevInterface.DevicePath() << endl; HANDLE hDev; hDev = CreateFile( DevInterface.DevicePath(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if (hDev == INVALID_HANDLE_VALUE) *pError = GetLastError(); return hDev;} 在设备中执行I/O操作一旦应用程序获得一个有效的设备句柄,它就能使用Win32 APIs来产生到设备对象的IRPs。下面的表显示了这种对应关系。Win32 API DRIVER_FUNCTION_xxxIRP_MJ_xxx KDevice subclass member function CreateFile CREATE Create ReadFile READ Read WriteFile WRITE Write DeviceIoControl DEVICE_CONTROL DeviceControl CloseHandle CLOSECLEANUP CloseCleanUp 需要解释一下设备类成员的Close和CleanUp:CreateFile使内核为设备创建一个新的文件对象。这使得多个句柄可以映射同一个文件对象。当这个文件对象的最后一个用户级句柄被撤销后,I/O管理器调用CleanUp。当没有任何用户级和核心级的对文件对象的访问的时候,I/O管理器调用Close。如果被打开的设备不支持指定的功能,则调用相应的Win32将引起错误(无效功能)。以前为Windows95编写的VxD的应用程序代码中可能会在打开设备的时候使用FILE_FLAG_DELETE_ON_CLOSE属性。在Windows NT/2000中,建议不要使用这个属性,因为它将导致没有特权的用户企图打开这个设备,这是不可能成功的。I/O管理器将ReadFile和WriteFile的buff参数转换成IRP域的方法依赖于设备对象的属性。当设备设置DO_DIRECT_IO标志,I/O管理器将buff锁住在存储器中,并且创建了一个存储在IRP中的MDL域。一个设备可以通过调用Kirp::Mdl来存取MDL。当设备设置DO_BUFFERED_IO标志,设备对象分别通过KIrp::BufferedReadDest或 KIrp::BufferedWriteSource为读或写操作获得buff地址。当设备不设置DO_BUFFERED_IO标志也不设置DO_DIRECT_IO,内核设置IRP 的UserBuffer域来对应ReadFile或WriteFile中的buff参数。然而,存储区并没有被锁住而且地址只对调用进程有效。驱动程序可以使用KIrp::UserBuffer来存取IRP域。对于DeviceIoControl调用,buffer参数的转换依赖于特殊的I/O控制代码,它不在设备对象的特性中。宏CTL_CODE(在winioctl.h中定义)用来构造控制代码。这个宏的其中一个参数指明缓冲方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表显示了这些方法和与之对应的能获得输入缓冲与输出缓冲的KIrp中的成员函数:Method Input Buffer Parameter Output Buffer Parameter METHOD_BUFFERED KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代码指明METHOD_BUFFERED,系统分配一个单一的缓冲来作为输入与输出。驱动程序必须在向输出缓冲放数据之前拷贝输入数据。驱动程序通过调用KIrp::IoctlBuffer获得缓冲地址。在完成时,I/O管理器从系统缓冲拷贝数据到提供给Ring 3级调用者使用的缓冲中。驱动程序必须在结束前存储拷贝到IRP的Information成员中的数据个数。如果控制代码不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,则DeviceIoControl的参数呈现不同的含义。参数InputBuffer被拷贝到一个系统缓冲,这个缓冲驱动程序可以通过调用KIrp::IoctlBuffer。参数OutputBuffer被映射到KMemory对象,驱动程序对这个对象的访问通过调用KIrp::Mdl来实现。对于METHOD_OUT_DIRECT,调用者必须有对缓冲的写访问权限。注意,对METHOD_NEITHER,内核只提供虚拟地址;它不会做映射来配置缓冲。虚拟地址只对调用进程有效。这里是一个用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE来定义一个IOCTL代码:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)现在使用一个DeviceIoControl调用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING, NULL, // no input 注意,这里放的是包含有执行操作命令的字符串指针 0, FirmwareRev, //这里是output串指针,存放从驱动程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize, NULL // not overlapped I/O );如果输出缓冲足够大,设备拷贝串到里面并将拷贝的资结束设置到FirmwareRevSize中。在驱动程序中,代码看起来如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){ ULONG fwLength=0; switch ( I.IoctlCode() ) { case IOCTL_MYDEV_GET_FIRMWARE_REV: fwLength = strlen(FIRMWARE_REV)+1; if (I.IoctlOutputBufferSize() >= fwLength) { strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV); I.Information() = fwLength; return I.Complete(STATUS_SUCCESS); } else { } case . . . } }
上传时间: 2013-10-17
上传用户:gai928943