ADC0809的程序 ,错误在哪里,谢了
#include <reg52.h>
#include "delay.h"
#include "intrins.h"
#include "display.h"
#define nop() _nop_()
unsigned char temp ,temp1,temp2,getdata ;//ADC转换值
bit ReadADFlag;
sbit CLK = P3^1; /*定义ADC控制端口*/
sbit ST = P3^2;
sbit OE = P3^0 ;
sbit EOC = P3^0 ;
void Init_
timer1(void)
{
TMOD |= 0x10; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
EA=1; //总中断打开
ET1=1; //定时器中断打开
TR1=1; //定时器开关打开
}
/*------------------------------------------------
定时器中断子程序
------------------------------------------------*/
void Timer1_isr(void) interrupt 3
{
TH1=(65536-65506 )/256; //重新赋值 2ms
TL1=(65536-65506 )%256;
CLK=~CLK;
}
void main()
{
Init_Timer0();
Init_Timer1( ) ;
DelayMs(20);
EA=0;
temp=0;
OE=0;
while(1)
{
if(ReadADFlag)
{
ReadADFlag=0;
ST=0;
_nop_();
ST=1;
_nop_();
ST=0;
if(EOC==0)
{
_nop_();
OE=1;
_nop_();
getdata=P3;
temp=getdata*5/255;
TempData[0]=dofly_DuanMa[temp/100];
TempData[1]=dofly_DuanMa[(temp%100)/10];
TempData[2]=dofly_DuanMa[(temp%100)%10];
OE=0;
EA=1;
DelayMs(100);
}
}
}
}
一周热门 更多>