项目9 信号发生器的设计.pptVIP

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任务9.1 灯光亮度调节器的设计 D/A转换的功能就是将数字量转换成模拟量。 基本的D/A转换器由电压基准或电流基准、精密电阻网络、电子开关及全电流求和电路构成。 按模拟量输出方式分:电流输出D/A转换器 电压输出D/A转换器 按D/A转换的分辨率分:低分辨率D/A转换器 中分辨率D/A转换器 高分辨率D/A转换器 2.D/A 转换器的组成 将上式推广到n位二进制数的转换,可得一般表达式 ∑I=- Uref(a0/2n + a1/2n-1 + … + an-1/21 +an/20)/R 则输出电压为 Uo=(∑I)Rf=-Uref(a0/2n+ a1/2n-1+…+an-1/21+an/20)Rf/R 项目小结 本项目介绍了单片机常用的外接8位并行D/A转换芯片DAC0832的原理和应用。通过两个任务学习了采用单片机和DAC0832实现各种信号发生器的设计方法。 DAC0832完成数字信号到模拟信号的转换后是以电流形式输出,必须外接运算放大器把电流转换成电压信号。DAC0832 与单片机根据接口方式不同有三种工作方式:直通方式、单缓冲方式和双缓冲方式。实际应用中根据实际情况选择合适的工作方式。 在介绍并行D/A转换芯片的应用之后,以PCF8591为例介绍了串行D/A转换芯片的特点、工作原理以及在实验板上的应用方法。 思考与训练 (一)知识思考: 在单片机应用系统中为什么要进行A/D和D/A转换,它们的作用是什么? DAC0832与8051单片机接口时有哪些控制信号?作用分别是什么? 使用DAC0832时,单缓冲方式如何工作?双缓冲方式如何工作?它们各占用8051外部RAM的哪几个单元?软件编程有什么区别? 怎样用DAC0832得到电压输出信号?有哪几种方法? 多片D/A转换器为什么必须采用双缓冲接口方式? PCF8591的主要特点是什么?简述其工作原理。 PCF8591输入和输出数字信号的格式各是怎样的? I2C总线的特点和通信格式是怎样的? (二)项目训练: 1. 试用DAC0832芯片设计单缓冲方式的D/A转换器接口电路,并编写2个程序,分别使DAC0832输出负向锯齿波和15个正向阶梯波。 2. 根据图9.17的电路接法,判断DAC0832是工作在直通方式、单缓冲方式还是双缓冲方式?欲用DAC0832产生如图9.18所示波形,则如何编程?(设满量程电压5V,周期为2s)。 3. 参照任务2,将图9.18的硬件电路作修改,设计成一个完整的信号发生器,通过按键控制输出锯齿波、三角波、方波或正弦波,并写出完整的程序。 主机从从机中读数据的通信格式: 主机产生停止位 。。。。 向从机应答 接收从机发出的数据 向从机应答 接收从机发出的数据 等待从机应答 发从机地址91H 主机产生起始位 N-1 N 7 6 5 4 3 2 1 6. 实验板上锯齿波信号的输出 (1)STC89C52控制PCF8591生成锯齿波信号的电路设计 将U15的J23的19和20脚用杜邦线与J8的SDA和SCL脚连接。 (2)生成锯齿波的软件设计 ① 主程序main.c: // PCF8591 的DA转换程序 #include reg52.h #include i2c.h #define AddWr 0x90 //写数据地址 #define AddRd 0x91 //读数据地址 //锯齿波数据表,表格数值越多,波形越平滑 unsigned char code tab[] = { 0,10,20,30,40,50,60,70,80,90, 100, 110,120,130,140,150,160,170,180, 190,200, 210,220,230,240,250 }; //定义全局变量 extern bit ack; //写入DA转换数值,dat表示需要输入转换的DA数值,从0-255 bit WriteDAC(unsigned char dat,unsigned char num) { unsigned char i; Start_I2c(); //启动总线 SendByte(AddWr); //发送器件地址 if(ack==0) return(0); SendByte(0x40);

文档评论(0)

smashing + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档