微型计算机控制技术 .docVIP

  • 2
  • 0
  • 约3.42千字
  • 约 10页
  • 2019-07-05 发布于湖北
  • 举报
微型计算机控制技术 A/D转换器应用仿真实验 ADC0808 A/D转换器的应用 A/D转换器是一种能把输入模拟电压或电流信息变成与其成正比的数字量信息的电路芯片。它用于实现模拟量到数字量的转换。 ADC0808是典型的8通道模拟输入8位并行数字输出的逐次逼近式A/D转换器。该转换器采用COMS工艺,实现8路信号的模拟采集。片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路。 一:基于单片机实现测量电压。,主要采用ADC0808数模转换器实现滑动变阻器上电压值从模拟量转换为数字量的功能,在电压值显示的方式上可采取四位数码管显示 试验程序: #includeregx52.h #includeabsacc.h #define IN0 XBYTE[0x7ff8] Unsigned char dispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char dispbuf[4]; unsigned int i; unsigned int j; unsigned char getdata; unsigned int temp; unsigned char count; sbit ad_busy = P3^2; sbit CLK = P3^5; void Delay(unsigned int i) { unsigned int j; for(;i0;i--) { for(j=0;j125;j++) {;} } } void Display() { P1=dispbitcode[dispbuf[3]]; P3_0=0; P3_1=1; P3_3=1; P3_4=1; Delay(10); P1=0x00; P1=dispbitcode[dispbuf[2]]; P1_7=1; P3_0=1; P3_1=0; P3_3=1; P3_4=1; Delay(10); P1=0x00; P1=dispbitcode[dispbuf[1]]; P3_0=1; P3_1=1; P3_3=0; P3_4=1; Delay(10); P1=0x00; P1=dispbitcode[dispbuf[0]]; P3_0=1; P3_1=1; P3_3=1; P3_4=0; Delay(10); P1=0x00; } void t1(void) interrupt 3 using 0 //CLOCK { TH1=(65536-200)/256; TL1=(65536-200)%256; CLK=~CLK; } void TimeInitial() { TMOD=0x10; TH1=(65536-200)/256; TL1=(65536-200)%256; EA=1; ET1=1; TR1=1; } void main() { unsigned char p; unsigned char xdata *ad_adr; TimeInitial(); ad_adr = IN0; while(1){ *ad_adr = 0; p=p; p=p; while(ad_busy==0); getdata = *ad_adr; temp=getdata*1.0/255*500; dispbuf[0] = temp%10; dispbuf[1] = temp/10%10; dispbuf[2] = temp/100%10; dispbuf[3] = temp/1000; Display(); } } 仿真结果: ADC0808接线图 外部给脉冲电路 2:用ADC0808制作简易的电压表 试验程序: #includereg51.h #includeintrins.h #define uchar unsigned char sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; sbit OE= P3^0; sbit EOC=P3^1; sbit ST=P3^2; sbit P3_4=P3^4; sbit P3_5=P3^5; sbit P3_6=P3^6; uchar code leddata_dot[]={0x40,0x79,0x24,0x30,0x

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档