- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机中级教程_7.ppt
增加了四根数据线、ILE BYTE1/BYTE2 2、12位数/模转换器——DAC1210 DAC1210与80C51的接口电路 通过译码器74HC138将P2.5、P2.6 、P2.7译码,产生片选信号(CS),因此,此片占据的地址空间为0000H~1FFFH。 经过锁存的地址信号A0接到BYTE1/BYTE2上,这样该DAC1210占用两个地址单元。 A0=0时,对应低4位输入寄存器; A0=1时,对应高8位输入寄存器。 80C51的写(WR)信号直接接DAC1210的WR1,这样可以用MOVX指令来寻址DAC1210。用口线P1.7来控制WR2及XFER,以实现双缓冲的控制方式。 设数据高8位存于R5中,低4位存于R6的高4位中。送数子程序为: OUTDAC: SETB P1.7 ;禁止DAC输出 MOV DPTR,#1H MOV A,R5 MOVX @DPTR,A ;送出高8位,锁存 DEC DPL MOV A,R6 MOVX @DPTR,A ;送出低4位,锁存 SETB P1.7 ;向DAC输出 RET 3、带I2C接口的8位数/模转换器——MAX518 Vout0、Vout1:数/模转换器的电压输出。 AD1、AD0:地址输入端,用于设置器件的从地址。 MAX518的从地址为: R/W AD0 AD1 1 1 0 1 0 · 写操作信息传递格式如下: 控制字节 A0 × × PD RST R0 R1 R2 R2、R1、R0:保留位,设置为0。 RST:复位位,设置为1,将使所有寄存器复位为0。 PD:电源控制位,设置为1,器件处于4μA低功耗方式; 设置为0,返回正常工作状态。 写方式的格式 一般的80C51没有I2C总线,因而只能模拟I2C总线时,一般需用两根I/O口线。 模拟I2C总线的编程 这里使用的一些通用子程序包括:发送开始条件(START)、发送停止条件(STOP)、检查应答位(CHACK)、单字节数据发送(WRBYT)。 设定单片机所使用的晶体振荡器为6MHz,即机器周期为2μs。若晶体振荡器不是6MHz,则可根据情况增减程序中的NOP指令即可。 ADDR EQU 58H ;AD1=AD0=0,R/=0 RESET EQU 10H ;RST=1 PD0 EQU 08H ;PD=1,DAC0有输出PD1 EQU 09H ;PD=1,DAC1有输出DAC0 EQU 00H ;A0=0 DAC1 EQU 01H ;A0=1 · 设置一路DAC输出,发送的数据在B中。 OUT0: ACALL START ;发开始条件 MOV A,#ADDR ACALL WRBYT MOV A,#DAC0 ;发指令字 ACALL WRBYT MOV A,B ;取数 ACALL WRBYT ACALL STOP RET · 设置两路DAC输出 DAC0的数据在20H,DAC1的数据在21H中。 OUTDB: MOV R0,#20H ;指向数据区 ACALL START ;发开始条件 MOV A,#ADDR ACALL WRBYT MOV A,#DAC0 ;发指令字 ACALL WRBYT MOV A,@R0 ;取数 ACALL WRBYT MOV A,#DAC1 ;发指令字 ACALL WRBYT INC R0 MOV A,@R0 ;取数 ACALL WRBYT ACALL STOPRET · 设置器件为低功耗状态 PD: ACALL START ;发开始条件 MOV A,#ADDR ACALL WRBYT MOV A,#PD0 ACALL WRBYT ACALL STOPRET · 设置器件恢复为正常状态 NORM: ACA
文档评论(0)