(精选)单片机原理与应用-KFIL C项目教程(西电版)项目九 DA和AD转换课件.ppt

(精选)单片机原理与应用-KFIL C项目教程(西电版)项目九 DA和AD转换课件.ppt

  1. 1、本文档共182页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
演示文稿演讲PPT学习教学课件医学文件教学培训课件

项目九 D/A和A/D转换 ;      9.1 项 目 说 明   ? 项目任务   利用HOT-51实验板上的A/D-D/A芯片PCF8591将输入的模拟电压转换为数字量,并将该数字量以十进制的形式显示在数码管上。用电位器调节输入的模拟电压,观察并记录数码管上数值的变化,利用所学知识对结果进行分析。;  ? 知识培养目标   (1) 掌握指针的用法、绝对地址的访问方法。   (2) 掌握数/模转换原理及性能指标。   (3) 掌握DAC0832的原理及其使用方法。   (4) 掌握模/数转换的原理及性能指标。   (5) 掌握ADC0809的原理及其使用方法。   (6) 掌握PCF8591的原理及其使用方法。;  ? 能力培养目标   (1) 能利用所学知识画出实现该任务的原理图。   (2) 能利用KEIL C编写实现D/A或A/D转换的源程序。   (3) 能利用所学知识正确地分析测试结果。   (4) 培养解决问题的能力。   (5) 培养沟通表达、团队协作的能力。;       9.2 基 础 知 识 9.2.1 C51指针   1. 指针概述   指针是C51中的一个重要概念。指针类型数据在C51编程时使用十分广泛,正确使用指针类型数据,不仅可以有效地表示复杂的数据结构,而且可以动态地分配存储器空间,直接处理内存地址。   要了解指针的基本概念,先要了解数据在内存中的存储和读取方法。;  关于指针应注意变量的指针和指向变量的指针变量两个基本概念。变量的指针就是变量的地址。对于变量a,如果它所对应的内存单元地址为2000H,那么它的指针就是2000H。指针变量是指一个变量,它专门用于存放另一个变量的地址,它的值是变量的指针。上面变量b中存放的是变量a的地址,变量b中的值是变量a的指针,变量b就是一个指向变量a的指针变量。   如上所述,指针实质上就是各种变量在内存单元的地址,在C51中,不仅有指向一般类型变量的指针,还有指向各种组合类型变量的指针。;  2. 指针变量的定义  在C51中,指针变量也要求先定义后使用,指针变量的定义与一般变量的定义类似,一般形式为     数据类型说明符 [存储器类型1] *[存储器类型2] 指针变量名;   其中,数据类型说明符说明了该指针变量所指向变量的类型。一个指向字符变量的指针变量不能用来指向整型变量,反之,一个指向整型变量的指针变量也不能用来指向字符型变量。;  存储器类型1是可选项,它是C51编译器的一个扩展项,用于说明指针指向的变量存于哪一部分存储器。如果带有此项,指针被定义为基于存储器的指针;若无此项,被定义为一般指针。这两种指针的区别在于它们所占的存储字节不同。一般指针在内存中占用3个字节,第1个字节存放该指针存储器类型的编码(由编译时编译模式的默认值确定),第2、第3个字节分别存放该指针的高位和低位地址偏移量。存储器类型的编码值如表9-1所示。;表9-1 存储器类型编码值 ;  如果指针变量被定义为基于存储器的指针,则该指针的长度可为1个字节(存储器类型选项为data、idata、bdata的片内数据存储单元)或2个字节(存储器类型选项为xdata、pdata、code的片外数据存储单元或程序存储器单元),由此可见,明确存储器类型1的指针变量,能节省存储器的开销,这在严格要求程序体积的项目中很有用处。   存储器类型2指定指针本身所在的存储空间,也是一个可选项。举例如下:     int *ptrl; //定义一个指向整型变量的指针变量ptr1     char *ptr2; //定义一个指向字符变量的指针变量ptr2     long *ptr3; //定义一个指向长整型变量的指针变量ptr3;  上述指针变量的定义中既无存储器类型1,也无存储器类型2。其中指针变量ptr1指向一个整型量,那么这个整型量究竟存放于哪一部分存储器呢? 这与存储模式有关。依据存储模式LARGE、COMPACT、SMALL的不同,该整型变量可分别处于xdata、pdata或data区。而指针ptr1、ptr2、ptr3本身在片内数据存储器中占用3个字节。     float xdata *p4;     //定义一个指向xdata区浮点变量的指针变量p4,该指针在data区占2个字节     long code *lptr;     // 定义一个指向code区长整型变量的指针变量lptr,该指针在data区占2个字节;  指针变量p4在定义时,只写明了存储器类型1为xdata,表示p4指向的浮点变量位于xdata区;由于没有存储器类型2,所以p4本身在data区占用2个字节。指针变量lptr的定义与p4类似。     int xdata *xdata pt

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档