基于FPGA51核的ADC0809采样与显示.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
E D A 课 程 设 计 题目:基于FPGA 51核的ADC0809采样与显示 院系:物理工程学院 专业班级:电子科学与技术 1 班 学生姓名:程小六 学生学号:20072230104 2010年6月5 日 硬件平台: 康芯公司GW48 EDA实验箱。 一 设计思路: 1.51核 51核采用总线控制方式,因为总线方式能够充分发挥单片机的总线读写功能,并且编程方便简单,突出了典型的系统设计理念。 51软核接上了ROM和RAM后就成为了一个完整的8051单片机了,CPU_Core是单片机核,该核拥有标准8051完全兼容的指令系统的CPU,外部总线连接256字节的内部LPM_RAM和4KB的LPM_ROM,锁相环PLL输入时钟选择20MHz,输出时钟选择12MHz。具体连接图及内部设置图见附图。 由于51核输入和输出接口是分开的,而P0口在使用时作为双向口使用,所以需要由P0E三态门控制信号,具体连接图如下图(1): 图(1) 外设ADC0809与51核外部中断INT0连接,提高了CPU的工作效率,实时性更强。 2. ADC0809 ADC0809用于采集外部模拟电压,它有8路模拟通道输入,由于在实验箱上通道地址选择脚ADDC已经连接到地,并且采集的模拟量由通道0的电位器提供,故ADDA,ADDB在FPGA进行引脚锁定时应该接低电平,选通通道0,通道IN0已经和外部可调电位器连接,旋转电位器旋钮可以改变模拟电压输入,幅值0V~5V。另外,ADC0809的CLK脚实验箱内部已经连接上合适的工作时钟。 3. 数码管显示 采用康芯公司实验箱的模式5,由于此模式下数码管已经接了译码器,故经过采集处理后的数据可以不需要译码直接送予显示。 4. 电位器 用于产生模拟信号输入,实验箱内部已和ADC0809的通道0连接。 二 本设计实现的功能: 嵌入51核的FPGA采用总线控制方式控制外设ADC0809采集外部电位器的模拟电压,信息经过处理后通过数码管显示出来。 三 简单的操作方法: 硬件连接电路如下图(2): 图(2) 其中的排线将ADC089的引脚连接至FPGA,再通过FPGA对其引脚进行内部引脚锁定 工作模式选择模式5。模式5内部连线如下图(3): 图(3) 四 组成模块: FPGA实验箱,51软核,ADC0809,LED数码管,电位器(用于产生模拟信号) 五 51核程序: #includereg52.h #define XBYTE ((unsigned char volatile xdata *) 0) #define ADC_IN0 XBYTE[0x1fff]//IN0通道地址,电位器分压输出,0-VCC变化 unsigned char da; //AD转换的数字量 void delay1ms(unsigned n) //延时n*1ms { unsigned int i,j; for(i=0;in;i++) for(j=0;j120;j++) ; } void main() { float v; ////模拟电压值,0-VCC unsigned char s0,s1 ; ////依次存放电压值小数点后1位,个位 EA=1; //允许总中断 EX0=1; //允许外部中断1 IT0=0; //外部中断1低电平方式触发 ADC_IN0=0; //向ADC0809的通道1写任意数,启动AD转换 while(1) { v=da*5/256.0; //计算模拟电压值,公式为v=da*5/256; s0=(char)(v*10)%10; //计算小数点后1位数字 s1=(char)v%10; //计算个位数 P1=((s10x0f)4)|(s00x0f); delay1ms(4); } } void exter0(void) interrupt 0 //外部中断1中断函数 { da=ADC_IN0; //进入中断说明转换完成,读取数字量da ADC_IN0=0; //写任意数启动下次转换 } 六 附图: 附图(1):51核连线 附图(2):外设连线 附图(3):LPM_RAM设置 附图(4):LPM_ROM设置 附图(5):引脚锁定 物理工程学院 07电科一班 程小六 学号:20072230104 7 物理工程学院 07电科一班 程小六 学号:20072230104

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档