LCD为LCM161(HD44780驱动器)字符显示器驱动程序 ;说明:本LCD为LCM161(HD44780驱动器)字符显示器. ;接线:LCD D0-D8(PIN7-14) 对映用户板P0.0--P0.7 ; LCD VSS(PIN1) 接 GND,VDD(PIN2)接+5V,LCD驱动电源V0(PIN3)接可调电阻ADJ,调节亮度 ; LCD寄存器选择RS(PIN4)接P2.0,读写选择R/W(PIN5)接P2.1,使能端EN(PIN6)接P2.2(高电平有效) ;本程序采用I/O口模仿总线时序,故无需做任何硬件扩展.屏幕显示:"I'm SuperICES! ",
上传时间: 2013-10-17
上传用户:ssz1990
系统start-up 定时器• 为了让振荡器能够稳定起振所需要的延时时间。• 其时间为1024 个振荡器振荡周期。制程和温度漂移• 因RC 振荡器的频率与内建振荡电容值有关,而此电容值与制程参数有关,所以不同的MCU 会表现出不一致性。在固定电压和温度下,振荡频率漂移范围约±25%。• 对于同一颗MCU(与制程漂移无关),其振荡频率会对工作电压和工作温度产生漂移。其对工作电压和工作温度所产生的漂移,可参考HOLTEK 网站上提供的相关资料。EMI/EMS(EMC)注意事项• ROSC 位置应尽量接近OSC1 引脚,其至OSC1 的连线应最短。• CS 可以提高振荡器的抗干扰能力,其与MCU OSC1 和GND 的连线应最短。• RPU 在确定系统频率之后,量产时建议不要接,因为其fSYS/4 频率输出会干扰到OSC1
上传时间: 2014-01-20
上传用户:yyyyyyyyyy
C语言编程基础:1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。在某引脚输出低电平的编程方法:(比如P2.7引脚)代码1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 在某引脚输出方波编程方法:(比如P3.1引脚)代码1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 5. { 6. P3_1 = 1; //给P3_1赋值1,引脚P3.1就能输出高电平VCC 7. P3_1 = 0; //给P3_1赋值0,引脚P3.1就能输出低电平GND 8. } //由于一直为真,所以不断输出高、低、高、低……,从而形成方波 9. } 将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) )
上传时间: 2013-11-02
上传用户:zengduo
SM-IIC/2051 模块用户说明简介:SM-IIC/2051 是一个基于2051 单片机的I2C 总线控制模块。上位机接口可直接与PC的RS232 连接,下位机可实现对应用电路中I2C 控制总线的连接,块内设置2K 的FLASH 存储器,可存储用户I2C 初始化数据。模块采用2051 单片机,使电路简单可靠。型号:SM-IIC/2051名称:I2C 数据控制模块功能:RS232 串行信号与I2C 数据转换 接口说明:编号信号标志信号名称规格备注CK1-1 VCC 供电+5VCK1-2 VCC 供电+5VCK1-3 GND 地GroundCK1-4 GND 地GroundCK2-1 TOUT 串口输出RS232CK2-2 RIN 串口输入RS232CK2-3 GND 地GroundCK2-4 GND 地Ground编号信号标志信号名称规格备注CK3-1 GND 地GroundCK3-2 SCL I2C 时钟TTLCK3-3 SDA I2C 数据TTLCK3-4 GND 地GroundCK3-5 P1.2 PI/O 端口TTLCK3-6 P1.3 PI/O 端口TTLCK3-7 P1.4 PI/O 端口TTLCK3-8 P1.5 PI/O 端口TTLCK3-9 P1.6 PI/O 端口TTLCK3-10 P1.7 PI/O 端口TTLCK3-11 P3.7 PI/O 端口TTLCK3-12 T1 定时端口TTLCK3-13 T0 定时端口TTLCK3-14 INT1 中断端口TTLCK3-15 INT0 中断端口TTLCK3-16 GND 地Ground
上传时间: 2013-11-18
上传用户:爺的气质
10pin jtag接口定义 表1 Rainbow Blaster 的10PIN 母头接口定义引AS 模式 PS 模式 JTAG 模式脚 信号名 描述 信号名 描述 信号名 描述1 DCLK 时钟信号 DCLK 时钟信号 TCK 时钟信号2 GND 信号地 GND 信号地 GND 信号地3 CONF_DONE 配置完毕 CONF_DONE 配置完毕 TDO 数据来自于器件4 VCC(TRGT) 目标电源 VCC(TRGT) 目标电源 VCC(TRGT) 目标电源5 nCONFIG 配置控制 nCONFIG 配置控制 TMS JTAG 状态机控制6 nCE Cyclone 芯片使能/ /7 DATAOUT AS 数据输出 nSTATUS 配置状态 /8 nCS 串行配置器件芯片使能/ /9 ASDI AS 数据输入 DATA0 数据到器件 TDI 数据到器件10 GND 信号地 GND 信号地 GND 信号地
上传时间: 2014-04-02
上传用户:lina2343
我采用XC4VSX35或XC4VLX25 FPGA来连接DDR2 SODIMM和元件。SODIMM内存条选用MT16HTS51264HY-667(4GB),分立器件选用8片MT47H512M8。设计目标:当客户使用内存条时,8片分立器件不焊接;当使用直接贴片分立内存颗粒时,SODIMM内存条不安装。请问专家:1、在设计中,先用Xilinx MIG工具生成DDR2的Core后,管脚约束文件是否还可更改?若能更改,则必须要满足什么条件下更改?生成的约束文件中,ADDR,data之间是否能调换? 2、对DDR2数据、地址和控制线路的匹配要注意些什么?通过两只100欧的电阻分别连接到1.8V和GND进行匹配 和 通过一只49.9欧的电阻连接到0.9V进行匹配,哪种匹配方式更好? 3、V4中,PCB LayOut时,DDR2线路阻抗单端为50欧,差分为100欧?Hyperlynx仿真时,那些参数必须要达到那些指标DDR2-667才能正常工作? 4、 若使用DDR2-667的SODIMM内存条,能否降速使用?比如降速到DDR2-400或更低频率使用? 5、板卡上有SODIMM的插座,又有8片内存颗粒,则物理上两部分是连在一起的,若实际使用时,只安装内存条或只安装8片内存颗粒,是否会造成信号完成性的影响?若有影响,如何控制? 6、SODIMM内存条(max:4GB)能否和8片分立器件(max:4GB)组合同时使用,构成一个(max:8GB)的DDR2单元?若能,则布线阻抗和FPGA的DCI如何控制?地址和控制线的TOP图应该怎样? 7、DDR2和FPGA(VREF pin)的参考电压0.9V的实际工作电流有多大?工作时候,DDR2芯片是否很烫,一般如何考虑散热? 8、由于多层板叠层的问题,可能顶层和中间层的铜箔不一样后,中间的夹层后度不一样时,也可能造成阻抗的不同。请教DDR2-667的SODIMM在8层板上的推进叠层?
上传时间: 2013-10-12
上传用户:han_zh
如果整个B端口都是悬空的话,那么abc的结果就是:0b110011** 如果B端口第7位接GND 、第0位接VCC 、其它位悬空,那么abc的结果就是:0b010011*1 (PB7工作在“短路”状态) 其中“*”表示不确定,理想状态下可以看作0
标签: AVR_IO
上传时间: 2013-11-21
上传用户:gy592333
CH451 使用一个系统时钟信号来同步芯片内部的各个功能部件,例如,当系统时钟信号的频率变高时,显示驱动刷新将变快、按键响应时间将变短、上电复位信号的宽度将变窄、看门狗周期也将变短。一般情况下,CH451 的系统时钟信号是由内置的阻容振荡提供的,这样就不再需要任何外围电路,但内置RC 振荡的频率受电源电压的影响较大,当电源电压降低时,系统时钟信号的频率也随之降低。在某些实际应用中,可能希望CH451 提供更长或者更短的显示刷新周期、按键响应时间等,这时就需要调节系统时钟信号的频率。CH451 提供了CLK 引脚,用于外接阻容振荡。当在CLK 引脚与地GND 之间跨接电容后,系统时钟信号的频率将变低;当在CLK 引脚与正电源VCC 之间跨接电阻后,系统时钟信号的频率将变高。因为CH451 的系统时钟信号被用于芯片内部的所有功能部件,所以其频率不宜进行大幅度的调节,一般情况下,跨接电容的容量在5pF 至100pF 之间,跨接电阻的阻值在20KΩ至500KΩ之间。跨接一个47pF 的电容则频率降低为一半,跨接一个47KΩ的电阻则频率升高为两倍。另外,CH451 的CLK 引脚可以直接输入外部的系统时钟信号,但外部电路的驱动能力不能小于±2mA。CH451 在CLKO 引脚提供了系统时钟信号的二分频输出,对于一些不要求精确定时的实际应用,可以由CLKO 引脚向单片机提供时钟信号,简化外围电路。 单片机接口程序下面提供了U1(MCS-51 单片机)与U2(CH451)的接口程序,供参考。;**********************;需要主程序定义的参数CH451_DCLK BIT P1.7 ;串行数据时钟,上升沿激活CH451_DIN BIT P1.6 ;串行数据输出,接CH451 的数据输入CH451_LOAD BIT P1.5 ;串行命令加载,上升沿激活CH451_DOUT BIT P3.2 ;INT0,键盘中断和键值数据输入,接CH451 的数据输出CH451_KEY DATA 7FH ;存放键盘中断中读取的键值
上传时间: 2013-11-22
上传用户:671145514
附件为NE555电路智能设计软件,是以NE555芯片为核心,设计出不同的智能控制电路的软件。 NE555为8脚时基集成电路, 各脚主要功能(集成块图在下面) 1地GND 2触发 3输出 4复位 5控制电压 6门限(阈值) 7放电 8电源电压Vcc 应用十分广泛,可装如下几种电路: 1。单稳类电路作用: 定延时,消抖动,分(倍)频,脉冲输出,速率检测等。 2。双稳类电路作用: 比较器,锁存器,反相器,方波输出及整形等。 3。无稳类电路作用: 方波输出,电源变换,音响报警,玩具,电控测量,定时等。 我们知道,555电路在应用和工作方式上一般可归纳为3类。每类工作方式又有很多个不同的电路。在实际应用中,除了单一品种的电路外,还可组合出很多不同电路,如:多个单稳、多个双稳、单稳和无稳,双稳和无稳的组合等。这样一来,电路变的更加复杂。为了便于我们分析和识别电路,更好的理解555电路,这里我们这里按555电路的结构特点进行分类和归纳,把555电路分为3大类、8种、共18个单元电路。每个电路除画出它的标准图型,指出他们的结构特点或识别方法外,还给出了计算公式和他们的用途。方便大家识别、分析555电路。下面将分别介绍这3类电路
上传时间: 2013-10-23
上传用户:qimingxing130
用途:测量地磁方向,测量物体静止时候的方向,测量传感器周围磁力线的方向。注意,测量地磁时候容易受到周围磁场影响,主芯片HMC5883 三轴磁阻传感器特点(抄自网上): 1,数字量输出:I2C 数字量输出接口,设计使用非常方便。 2,尺寸小: 3x3x0.9mm LCC 封装,适合大规模量产使用。 3,精度高:1-2 度,内置12 位A/D,OFFSET, SET/RESET 电路,不会出现磁饱和现象,不会有累加误差。 4,支持自动校准程序,简化使用步骤,终端产品使用非常方便。 5,内置自测试电路,方便量产测试,无需增加额外昂贵的测试设备。 6,功耗低:供电电压1.8V, 功耗睡眠模式-2.5uA 测量模式-0.6mA 连接方法: 只要连接VCC,GND,SDA,SDL 四条线。 Arduino GND -> HMC5883L GND Arduino 3.3V -> HMC5883L VCC Arduino A4 (SDA) -> HMC5883L SDA Arduino A5 (SCL) -> HMC5883L SCL (注意,接线是A4,A5,不是D4,D5) 源程序: #include <Wire.h> #include <HMC5883L.h> HMC5883Lcompass; voidsetup() { Serial.begin(9600); Wire.begin(); compass = HMC5883L(); compass.SetScale(1.3); compass.SetMeasurementMode(Measurement_Continuous); } voidloop() { MagnetometerRaw raw = compass.ReadRawAxis(); MagnetometerScaled scaled = compass.ReadScaledAxis(); float xHeading = atan2(scaled.YAxis, scaled.XAxis); float yHeading = atan2(scaled.ZAxis, scaled.XAxis); float zHeading = atan2(scaled.ZAxis, scaled.YAxis); if(xHeading < 0) xHeading += 2*PI; if(xHeading > 2*PI) xHeading -= 2*PI; if(yHeading < 0) yHeading += 2*PI; if(yHeading > 2*PI) yHeading -= 2*PI; if(zHeading < 0) zHeading += 2*PI; if(zHeading > 2*PI) zHeading -= 2*PI; float xDegrees = xHeading * 180/M_PI; float yDegrees = yHeading * 180/M_PI; float zDegrees = zHeading * 180/M_PI; Serial.print(xDegrees); Serial.print(","); Serial.print(yDegrees); Serial.print(","); Serial.print(zDegrees); Serial.println(";"); delay(100); }
上传时间: 2013-12-16
上传用户:stella2015