- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.双缓冲方式 多路的D/A转换要求同步输出时,须采用双缓冲同步方式,此时数字量的输入锁存和D/A转换输出是分两步完成的。AT89S51与DAC0832的双缓冲方式的连接如图11-7。 { uint i; for(i=0;i200;i++); } 程序说明: (1)在调用函数writechip1时只是向1#0832芯片写入数据,不会写到2#0832中,因为2#0832没有被选通,对于函数writechip2也是同样道理。 (2)在调用函数TransformData( )时,函数参数可以为任意值,因为将被转换的数字量已经被锁存到DAC寄存器中。调用函数TransformData( )只是发出启动第二级转换的控制信号,数据线上的数据不会被锁存。 (3)程序的3~5行对DAC0832的3个端口使用了3个宏定义。例如,将0832Addr的端口地址0x7fff宏定义为DAC0832Addr(第5行),是为了定义明确,方便使用和修改。使用该地址向DAC0832写入时要先进行类型转换。用(uchar xdata*)把DAC0832Addr转换为指向0x7fff地址的指针型数据,再使用指针进行间接寻址。这种使用方法是较为经典和精简的代码风格,初学者可用如下拆分、等价的方式理解这句代码。 首先,由于宏替换,(uchar xdata*)DAC0832Addr相当于(uchar xdata*) 0x0x7fff,即将0x7fff强制转换为指向外部数据空间的unsigned char类型的指针,指针内容0x7fff,即指向了 DAC0832的数据转换端口(即两片DAC0832的8位DAC寄存器,见图11-2) 然后再来看*((uchar xdata*)DAC0832Addr),它相当于*p,p是指向外部数据空间0x7fff的unsigned char类型指针。 最后,*((uchar xdata*)DAC0832Addr)=c0832data意义显然为:将c0832data的值写入DAC0832的数据转换端口。 因此,以下两个代码段在功能上是等价的。 代码段1: #define DAC0832Addr 0x7fff #define uchar unsigned char *((uchar xdata*)DAC0832Addr)=c0832data; 代码段2: unsigned char *p; p=0x7fff; *p=c0832data; 显然前者比后者有两个优点:首先,代码段1的意义明确,可读性和可移植性更强。更重要的是,代码段1节省了数据存储空间,因为它无需使用指针变量,而宏是不占用数据存储空间的,它只占用程序存储空间。 A/D转换器按照转换速度可大致分为超高速(转换时间≤1ns)、高速(转换时间≤1?s)、中速(转换时间≤1ms)、低速(转换时间≤1s)等几种不同转换速度的芯片。为适应系统集成的需要,有些转换器还将多路转换开关、时钟电路、基准电压源、2/10进制译码器和转换电路集成在一个芯片内,为用户提供很多方便。 (2)在电源干扰大、模拟电路部分容易对单片机产生电气干扰等恶劣环境中,可采用光电隔离使V/F转换器与单片机无电信号联系,如图11-19。 (3)当V/F转换器与单片机距离较远时需采用驱动电路以提高传输能力。一般可采用串行通讯的驱动器和接收器来实现。例如使用RS-422的驱动器和接收器时,允许最大传输距离为120m,如图11-20。其中SN75174/75175是 RS-422标准的四差分线路驱动/接收器。 * 图11-19 使用光电隔离器的接口 图11-20 利用串行通信器件的接口 * (4)采用光纤或无线传输时,需配以发送、接收装置。如图11-21、图11-22所示。 图11-21 利用光纤进行传输的接口 图11-22 利用无线传输设备用作输入通道 * 11.3.4 LM331应用举例 本例使用LM331和8031的内部定时器构成A/D转换电路,具有使用元件少、成本低、精度高的特点。 1. 接口电路 AT89S51与LM331的接口电路如图11-23。 V/F转换器最大输出频率为10KHz,输入电压范围为0~10V。由于本电路输出频率较低,如对脉冲计数则会降低精度,因此采用测周期的方法。V/F输出的频率经D触发器二分频后接INT0*,作为T0计数器的控制信号。 * T0计数器置定时器状态,取方式1,将TMOD.3(T0的GATE位)置1,这样就由INT0*和TR0来共同决定计数器是否工作。此法只能测量信号周期小于65535个机器周期的信号。 *
您可能关注的文档
最近下载
- 奔图 PANTUM CM7105DN 7105 彩色激光打印机中文维修手册.pdf VIP
- 一种居民电热水器负荷需求侧响应可调控潜力评估方法.pdf VIP
- 供货能力及方案.docx VIP
- 世界建筑史(南京大学) 超星尔雅学习通网课章节测试答案.docx VIP
- AO3400宽体数据手册下载.pdf VIP
- 22J943-1、22G621-1 既有建筑改造设计与施工(既有住宅增设电梯).docx VIP
- 6.2交友的智慧 (课件)-2025-2026学年 道德与法治 七年级上册(统编版).pptx VIP
- 车管所保安保洁服务保洁服务实施方案.docx VIP
- 车管所保安保洁服务保安服务实施方案.docx VIP
- 高考英语书面表达模板(最新版).docx VIP
原创力文档


文档评论(0)