单片机应用系统

时间:2007-04-16
单片机应用系统经常希望有功能全、价格低廉、体积小、及使用方便的接口电路与之配套使用,北京三誉有限公司代理的美国SUMMIT公司的S42WD42就是一款性价比很高的接口电路,它包含有四大功能:上电复位,看门狗,512字节EEPROM,第二电源电压监测。

S42WD42功能简介

---- 上电复位:S42WD42可以提供130~270ms的上电复位脉冲,同时提供高电平复位和低电平复位引脚。复位电压转折点有三种供选择:2.55V、4.25V、4.5V。

---- 看门狗定时时间长度为1.6s(标称值)。

---- EEPROM为512字节×8bit,可以写一个字节,也可写一页(16字节/页)。每个单元可反复写入1百万次。无论写入字节或页,写入时间都是不超过10ms。

---- 第二电源电压监测:S42WD42除了主电源电压之外,还提供一个单独的引脚监测其电压,并输出状态。

 
S42WD42引脚排列(如所示)

---- /Vlow:当Vsense < 1.24V时,/Vlow输出低电平。注意此脚是漏极开路输出,需外加上拉电阻。

---- Vsense:第二监测电压输入。

---- SDA:I2C总线数据输入/输出。
---- SCK:I2C总线时钟输入。

---- /RESET:低电平复位输入/漏极开路输出。该脚可手动复位输入一个低电平,对应第7脚RESET输出高电平复位信号。

---- RESET:高电平复位输入/漏极开路输出。该脚可手动复位输入一个高电平,对应第2脚/RESET输出低电平复位信号。

---- Vcc:有两个版本芯片,工作电压2.7~5.5V
--------- 或4.5V~5.5V。

软件命令

---- S42WD42支持五种软件命令:写入一个字节;写入一页(16个字节);从当前地址读一个字节;从任意地址随机读一个字节;顺序读若干字节。

---- 命令编码为:1010xxA8R/W A7A6A5A4A3A2A1A0。个字节位R/W为1,就是READ;R/W为0,就是WRITE。

---- 如果软件在1.6s以内没有对S42WD42进行任何读写操作,看门狗就会复位芯片,输出复位脉冲。

 
S42WD42与8031接口电路如所示。

软件源代码:

; 8031 external crystal is 11.0592 MHz   SCK BIT  P1.0   SDA BIT  P1.1READ: LCALL START MOV A,DP ; DPTR包含读单元地址(9位) ANL A,#1 RL  A ORL  A,#10100000B ; R/W=0 LCALL SHIFTOUT LCALL POLLACK MOV  A,DPL LCALL SHIFTOUT LCALL POLLACK LCALL START         ; START again MOV   A,#10100001B ; R/W=1 LCALL SHIFTOUT LCALL POLLACK MOV   A,@R0 DEC   A MOV   R7,A ; read up to 256 bytes   sequentially INC   R0  ; input bufferRDNXT: LCALL SHIFTIN LCALL ACK  ; CPU send out ACK to S42WD42 MOV   @R0,A INC   R0 DJNZ  R7,RDNXT LCALL SHIFTIN LCALL UNACK MOV   @R0,A LCALL STOP CLR   C RETWRITE: LCALL START MOV  A,DPH  ; DPTR包含写入单元地址(9位) ANL  A,#1 RL  A ORL  A,#10100000B ; R/W=0 LCALL SHIFTOUT LCALL POLLACK MOV   A,DPL LCALL SHIFTOUT LCALL POLLACK MOV   A,@R0 DEC   A ANL   A,#0FH  ; write data length varies from 1 to 16 INC   A MOV   R7,A INC   R0 ; point to beginning of output bufferWRNXT: MOV   A,@R0 LCALL SHIFTOUT LCALL POLLACK INC   R0 DJNZ  R7,WRNXT LCALL STOP CLR   C RETSTART:  SETB C SETB SCL JNB  SCL,BUSY SETB SDA JNB  SDA,BUSY CLR  SDA CLR  SCL CLR  CBUSY: RET      ; C=1 if I2C BUS is busy             STOP: CLR  SCL NOP CLR  SDA SETB SCL SETB SDA RETSHIFTOUT:MOV  B,#8OUTNXT:  CLR  SCL RLC  A MOV  SDA,C SETB SCL DJNZ B,OUTNXT CLR  SCL RETSHIFTIN: MOV  B,#8 CLR  SCL SETB SDA  ; SDA pin as inputINNXT CLR  SCL NOP NOP SETB SCL MOV  C,SDA RLC  A DJNZ B,INNXT CLR  SCL RETACK:     CLR  SCL NOP CLR  SDA  ; ACK=0     SETB SCL CLR  SCL RETUNACK:  CLR  SCL NOP SETB SDA  ; ACK=1 SETB SCL CLR  SCL RETPOLLACK: CLR  SCL NOP SETB SDA  ; ready to input SETB SCL MOV  C,SDA  ; slave respond with ACK if C=0 CLR  SCL JNC  ACKED         LCALL STOP  ; C=1 if no ACK from S42WD42ACKED:   RET END

  
上一篇:由MAX650X系列组成的远程温度开关电路(图)
下一篇:高性能双管荧光灯电子镇流器 (图)

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料