基于M ult isim 10 仿真软件, 设计单片机的虚拟串口驱动LCD1602 液晶电路。实现了虚拟串口扩展并行输出的功能。该设计适用单片机UART 串口被占用时, 以最少的单片机IöO 口驱动LCD1602, 满足显示电路中复杂信息的需求。与传统的设计手段相比, 在M ult isim 10 平台支撑下, 设计电路更方便快捷, 并可通过仿真结果直接观测和验证设计电路是否达到要求, 具有省时、低耗、高效的优越性。
上传时间: 2013-10-11
上传用户:xywhw1
摘要:本文结合实例介绍了以新型单片机为核心设计CCD驱动系统的一种简明方法。该方法基于集成度高、超高速(单周期指令50ns)C8051F040单片机为核心,从根本上克服了传统单片机CCD驱动系统中驱动频率低的弱点。驱动脉冲由单片机的通用输入输出口产生,各路驱动脉冲间的时序关系由软件控制且精确可调,同时也智化了外围电路。这种方法具有简明、实用等优点。关键词:CCD;C8051F04;驱动频率
上传时间: 2013-11-07
上传用户:牛津鞋
设计了一种基于C8051F005 单片机控制多路PZT(压电陶瓷)的驱动电路,采用串行数据传输的方法,利用新型数模转换器AD5308 具有8 通道DAC 输出的特性,极大的简化了电路设计,给出了硬件系统设计和软件流程图以及主要的软件模块设计。本电路主要用于自适应光学合成孔径成像相位实时校正系统中。结果表明,该电路可以成功为12 路PZT 提供所需的驱动电压。
上传时间: 2013-10-19
上传用户:pans0ul
本文简单介绍了MCGS 组态软件和SPCE061A 单片机的特点,即北京昆仑通态自动化软件科技有限公司的工控组态软件MCGS(Monitor and Control Generated System )和台湾凌阳科技推出的16 位微控制器SPCE061A,重点介绍了如何一步步开发SPCE061A 单片机的驱动程序,并简单介绍了下位机程序的设计,最后给出了测试情况。计算机技术的飞速发展为工业自动化开辟了广阔的发展空间,人们可以快捷地开发和组建高效的控制系统。笔者设计的液体点滴监控模型,可以对液体点滴情况实现远程监控和现场监控,终端和上位机均可人工设定所需的液体点滴速度并动态显示。在这方面,MCGS 工控组态软件提供了强有力的支持,它是一套Windows 环境下快速构造和生成上位机监控系统的组态软件系统,可快速构造和生成数据采集、报警处理、流程控制、动画显示、报表输出等界面,实现各种工程曲线的绘制、报表输出、远程通信等功能 [1]。MCGS 作为一种方便有效的通用工控软件,它提供了国内外各种常用的工控设备的驱动程序。但在实际应用中,因为所用设备的特殊性,允许用户根据需要来定制设备驱动程序。MCGS 用Active DLL 构件实现设备驱动程序,通过规范的OLE 接口挂接到MCGS 中,使其构成一个整体。鉴于Visual Basic 语言的通用性和简单性,使用VB 来开发单片机驱动,MCGS 的实现方法和原理与标准的Active DLL 完全一致,但MCGS 规定了一套接口规范,只有遵守这些接口规范的Active DLL 才能用作MCGS 的设备驱动构件。利用具有语音和 DSP 功能的SPCE061A 单片机作为液体点滴监控模型的核心控制器,SPCE061A 是台湾凌阳科技推出的16 位微控制器,提供了丰富的软、硬件资源,开发灵活方便。除此之外SPCE061A 的最高时钟频率可达到49MHz,具有运算速度高的优势,这为语音的录制和播放提供了条件[4]。
上传时间: 2013-12-19
上传用户:leesuper
摘要: 本文介绍了L ED 显示屏常规型驱动电路的设计方式及其存在的缺陷, 提出了简单的L ED 显示屏恒流驱动方式及电路的实现。关键词:L ED 显示屏 动态扫描 驱动电路中图分类号: TN 873+ . 93 文献标识码:A 文章编号: 1005- 9490(2001) 03- 0252- 051 引 言 L ED 显示屏是80 年代后期在全球迅速发展起来的新型信息显示媒体, 它利用发光二极管构成的点阵模块或像素单元, 组成大面积显示屏幕, 以其可靠性高、使用寿命、环境适应能力强、性能价格比高、使用成本低等特点, 在信息显示领域已经得到了非常广泛的应用[ 1 ]。L ED 显示屏主要包括发光二极管构成的阵列、驱动电路、控制系统及传输接口和相应的应用软件等, 其中驱动电路设计的好坏, 对L ED 显示屏的显示效果、制作成本及系统的运行性能起着很重要的作用。所以, 设计一种既能满足控制驱动的要求, 同时使用器件少、成本低的控制驱动电路是很有必要的。本文就常规型驱动电路的设计作些分析并提出恒流驱动电路的设计方式。2 L ED 显示屏常规驱动电路的设计 L ED 显示屏驱动电路的设计, 与所用控制系统相配合, 通常分为动态扫描型驱动及静态锁存型驱动二大类。以下就动态扫描型驱动电路的设计为例为进行分析:动态扫描型驱动方式是指显示屏上的4 行、8 行、16 行等n 行发光二极管共用一组列驱动寄存器, 通过行驱动管的分时工作, 使得每行L ED 的点亮时间占总时间的1ön , 只要每行的刷新速率大于50 Hz, 利用人眼的视觉暂留效应, 人们就可以看到一幅完整的文字或画面[ 2 ]。常规型驱动电路的设计一般是用串入并出的通用集成电路芯片如74HC595 或MC14094 等作为列数据锁存, 以8050 等小功率N PN 三极管为列驱动, 而以达林顿三极管如T IP127 等作为行扫描管, 其电路如图1 所示。
上传时间: 2014-02-19
上传用户:lingzhichao
为了定位嵌入式设备当前运行软件的版本,设计了一种获取嵌入式软件版本信息的方法,首先设计电路实现按键检测和LED驱动复用IO脚,当IO脚为输入方向时,通过IO状态的读取可以检测按键的按下和弹起状态,当IO脚为输出方向时,可以设置高低电平实现LED的亮灭控制。具体应用时,首先设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示。
上传时间: 2013-10-17
上传用户:waixingren
注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言. 2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\ 所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。
上传时间: 2013-10-08
上传用户:dingdingcandy
superpro 3000u 驱动 PIC16C65B@QFP44 [SA245] PIC16C65B: Part number QFP44: Package in QFP44 SA245: Adapter purchase number AM29DL320GT@FBGA48 [SA642+B026] AM29DL320GT: Part number FBGA48: Package in FBGA48 SA642: Adapter purchase number (Top board with socket) B026: Adapter purchase number (Bottom board, exchangable for different parts) 87C196CA@PLCC68(universal adapter) [PEP+S414T] 87C196CA: Part number PLCC68: Package in PLCC68 universal adapter: this adapter is valid for all parts in this package PEP: The PEP (Pin-driver Expansion Pack necessary to work with the adapter S414T) S414T: Adapter purchase number (Universal for all parts in this package) S71PL127J80B@FBGA64(special adapter) [(SA642A-B079A-Y096AF001)] S71PL127J80B: Part number FBGA64: Package in FBGA64 special adapter: this adapter is valid for this
上传时间: 2013-10-23
上传用户:Avoid98
随着对低能耗、高安全性、高可靠性连接和精确控制的需求不断提升,工厂自动化的工业驱动日趋复杂,需要尖端技术的支持。德州仪器 (TI) 拥有广泛系列的模拟产品、数字控制器和软件,能够精确地控制机械驱动的位置、速度以及扭矩。高度稳健的工艺技术和超长的产品生命周期策略使 TI 能够充分满足客户对可靠性和持续供应的严格要求。
上传时间: 2013-11-10
上传用户:dazhihui66
USB硬件检测软件这是最为经典的usb测试软件,usb开发绝对必备的工具。这个压缩包中包含它的三个版本,分别为:3.2 ,3.5 ,5.0beta 。 在开发固件程序时,用它检测usb硬件,一旦测试全部通过,那usb硬件侧的固件驱动程序就应该是基本没有问题了下载地址
上传时间: 2013-11-05
上传用户:gdgzhym