- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)