单片机AD转换0809.docx
- 文档编号:1179417
- 上传时间:2022-10-18
- 格式:DOCX
- 页数:14
- 大小:87.01KB
单片机AD转换0809.docx
《单片机AD转换0809.docx》由会员分享,可在线阅读,更多相关《单片机AD转换0809.docx(14页珍藏版)》请在冰豆网上搜索。
单片机AD转换0809
一、实验目的和要求
1、掌握单片机与ADC0809的接口设计方法
2、掌握Proteus软件与Keil软件的使用方法
二、设计要求
1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。
2、在0809的某一模拟量输入通道上接外部模拟量。
3、在单片机的外部扩展数码管显示器。
4、分别采用延时和查询的方法编写A/D转换程序。
5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。
3、电路原理图
4、实验程序流程框图和程序清单
ORG0000H
START:
LJMPMAIN
ORG0100H
MAIN:
MOVSP,#50H
CLREA
LOOP:
MOVDPTR,#0700H
MOVX@DPTR,A
LOOP1:
JBP3.2,LOOP1
MOVXA,@DPTR
MOVB,#51
DIVAB
MOVR0,A
MOVA,B
MOVB,#5
DIVAB
MOVR1,A
MOVA,B
MOVR2,A
MOVDPTR,#TAB
MOVA,R0
MOVCA,@A+DPTR
MOVP2,#40H
ANLA,#7FH
MOVP1,A
LCALLDELAY1MS
MOVA,R1
MOVCA,@A+DPTR
MOVP2,#20H
MOVP1,A
LCALLDELAY1MS
MOVA,R2
MOVCA,@A+DPTR
MOVP2,#10H
MOVP1,A
LCALLDELAY1MS
LJMPLOOP
DELAY1MS:
;误差0us
MOVR7,#01H
DL1:
MOVR6,#8EH
DL0:
MOVR5,#02H
DJNZR5,$
DJNZR6,DL0
DJNZR7,DL1
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
ORG0000H
START:
LJMPMAIN
ORG0100H
MAIN:
MOVSP,#50H
CLREA
LOOP:
MOVDPTR,#0700H
MOVX@DPTR,A
LCALLDELAY1MS
MOVXA,@DPTR
MOVB,#51
DIVAB
MOVR0,A
MOVA,B
MOVB,#5
DIVAB
MOVR1,A
MOVA,B
MOVR2,A
MOVDPTR,#TAB
MOVA,R0
MOVCA,@A+DPTR
MOVP2,#40H
ANLA,#7FH
MOVP1,A
LCALLDELAY1MS
MOVA,R1
MOVCA,@A+DPTR
MOVP2,#20H
MOVP1,A
LCALLDELAY1MS
MOVA,R2
MOVCA,@A+DPTR
MOVP2,#10H
MOVP1,A
LCALLDELAY1MS
LJMPLOOP
DELAY1MS:
;误差0us
MOVR7,#01H
DL1:
MOVR6,#8EH
DL0:
MOVR5,#02H
DJNZR5,$
DJNZR6,DL0
DJNZR7,DL1
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
#include
#include
#defineucharunsignedchar
#defineADC0809XBYTE[0x0700]
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
ucharge,yu1,yu2,data1,ge1;
sbitP32=P3^2;
voiddelay1ms(void)//误差0us
{
unsignedchara,b,c;
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
voidmain()
{SP=0X50;
EA=0;
while
(1)
{
ADC0809=0;
while(P32);
data1=ADC0809;
ge=data1/51;
yu1=data1%51/5;
yu2=data1%51%5;
ge1=table[ge];
ge1=ge1&0x7f;
P2=0X40;
P1=ge1;
delay1ms();
yu1=table[yu1];
P2=0X20;
P1=yu1;
delay1ms();
yu2=table[yu2];
P2=0X10;
P1=yu2;
delay1ms();
}
}
#include
#include
#defineucharunsignedchar
#defineADC0809XBYTE[0x0700]
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
ucharge,yu1,yu2,data1,ge1;
voiddelay200us(void)//误差0us
{
unsignedchara,b;
for(b=1;b>0;b--)
for(a=97;a>0;a--);
}
voiddelay50us(void)//误差0us
{
unsignedchara,b;
for(b=1;b>0;b--)
for(a=22;a>0;a--);
}
voidmain()
{SP=0X50;
EA=0;
while
(1)
{
ADC0809=0;
delay200us();
data1=ADC0809;
ge=data1/51;
yu1=data1%51/5;
yu2=data1%51%5;
ge1=table[ge];
ge1=ge1&0x7f;
P2=0X40;
P1=ge1;
delay50us();
yu1=table[yu1];
P2=0X20;
P1=yu1;
delay50us();
yu2=table[yu2];
P2=0X10;
P1=yu2;
delay50us();
}
}
五、实验结果
6、实验总结
通过本次实验基本掌握了单片机与ADC0809的接口设计方法,对于模数转换有了新的认识,其中对于得到的数据转换的方法采用了近似原则设计的,所以实验结果有一定的误会,但误差不大,基本满足实验要求。
另外对ADC0809的查询法,中断法,延时法有了基本认识。
七、思考题
1、采用中断的方法编写A/D转换程序,完成实验要求
ORG0000H
START:
LJMPMAIN
ORG0003H
LJMPINT00
ORG0100H
MAIN:
MOVSP,#50H
SETBIT0
SETBEA
SETBEX0
MOVDPTR,#0700H
MOVX@DPTR,A
LOOP:
LJMPLOOP
ORG0200H
INT00:
MOVXA,@DPTR
MOVB,#51
DIVAB
MOVR0,A
MOVA,B
MOVB,#5
DIVAB
MOVR1,A
MOVA,B
MOVR2,A
MOVDPTR,#TAB
MOVA,R0
MOVCA,@A+DPTR
MOVP2,#40H
ANLA,#7FH
MOVP1,A
LCALLDELAY1MS
MOVA,R1
MOVCA,@A+DPTR
MOVP2,#20H
MOVP1,A
LCALLDELAY1MS
MOVA,R2
MOVCA,@A+DPTR
MOVP2,#10H
MOVP1,A
LCALLDELAY1MS
MOVDPTR,#0700H
MOVX@DPTR,A
RETI
DELAY1MS:
;误差0us
MOVR7,#01H
DL1:
MOVR6,#8EH
DL0:
MOVR5,#02H
DJNZR5,$
DJNZR6,DL0
DJNZR7,DL1
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
#include
#include
#defineucharunsignedchar
#defineADC0809XBYTE[0x0700]
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
ucharge,yu1,yu2;
voiddelay1ms(void)//误差0us
{
unsignedchara,b,c;
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
voidmain()
{SP=0X50;
IT0=1;
EA=1;
EX0=1;
ADC0809=0;
while
(1);
}
voidINT00()interrupt0using0
{uchardata1,ge1;
data1=ADC0809;
ge=data1/51;
yu1=data1%51/5;
yu2=data1%51%5;
ge1=table[ge];
ge1=ge1&0x7f;
P2=0X40;
P1=ge1;
delay1ms();
yu1=table[yu1];
P2=0X20;
P1=yu1;
delay1ms();
yu2=table[yu2];
P2=0X10;
P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 AD 转换 0809
![提示](https://static.bdocx.com/images/bang_tan.gif)