首頁(yè) 新聞 > 科技 > 正文

51單片機(jī)教程ADC0809模數(shù)轉(zhuǎn)換

//MCU:AT89S51

//晶振:12M

//采用查詢方式讀AD轉(zhuǎn)換后的值

#include

#include "math.h"

#include "intrins.h"

unsigned charcode numcode[]={ 0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90,

0xC1,0XB7,0xFF

};//數(shù)字0~9及"U="”“共陽(yáng)數(shù)碼管代碼

unsigned charcode dot_numcode[]={0X40,0X79,0X24,0X30,0X19,

0X12,0X02,0X78,0X00,0X10

};//帶數(shù)點(diǎn)的0~9共陽(yáng)數(shù)碼管代碼

unsigned charcode bitcode[]={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};//數(shù)碼管位選代碼

unsigned chardispbuff[8]={0,0,0,11,10,12,12,12};

unsigned chardisp_count;

unsigned charflag=1;

unsigned charflag_count;

unsigned long intgetdata;

sbit START=P3^0;

sbit EOC=P3^2;

sbit OE=P3^1;

sbit AD_ALE=P3^3;

voidmain(void)

{

TMOD=0x01;//選擇定時(shí)器T0,方式為1(16位定時(shí)器)

TH0=(65536-3000)/256;//定時(shí)3MS初值

TL0=(65536-3000)%6;

TR0=1;

ET0=1;

EA=1;

AD_ALE=0;

START=0;

OE=0;

while(1)

{

if(flag==1)//每隔40ms啟動(dòng)一次AD采樣

{

flag=0;

AD_ALE=1;//鎖存輸入通道

START=0;//驅(qū)動(dòng)AD轉(zhuǎn)換

START=1;

AD_ALE=0;

START=0;//保持低電平

while(EOC==0);//等待AD轉(zhuǎn)換結(jié)束

TR0=0;//AD轉(zhuǎn)換結(jié)束時(shí)先停止T0

P0=0XFF;//關(guān)閉數(shù)碼管顯示,呵呵,其實(shí)人眼是感覺(jué)不到數(shù)碼管熄滅的

P1=0XFF;// 這個(gè)很重要

OE=1;//轉(zhuǎn)換結(jié)束,允許AD值輸出

getdata=P1;//讀出AD值,如果硬件連接上改成P2口來(lái)讀AD值,這句就改成"getdata=P2;"

OE=0;//禁止輸出

getdata=(unsigned long int)((unsigned long int)(getdata*500)/255);//轉(zhuǎn)換成電壓

dispbuff[2]=getdata/100;

dispbuff[1]=(getdata0)/10;

dispbuff[0]=getdata;

TR0=1;//重新啟動(dòng)T0

}

}

}

voidt0(void) interrupt 1

{

TH0=(65536-3000)/256;

TL0=(65536-3000)%6;

if(disp_count==2)

P0=dot_numcode[dispbuff[disp_count]];

else

P0=numcode[dispbuff[disp_count]];

P1=bitcode[disp_count];

disp_count++;

flag_count++;

if(disp_count==8)

{

disp_count=0;

}

if(flag_count==100)

{

flag=1;

flag_count=0;

}

}

關(guān)鍵詞: 51單片機(jī)ADC0809模數(shù)轉(zhuǎn)

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2018 創(chuàng)投網(wǎng) - www.mallikadua.com All rights reserved
聯(lián)系我們:33 92 950@qq.com
豫ICP備2020035879號(hào)-12