>>>>AT89x51CPU를 사용하는데요.. 실해이 안되서 올립니다...
안되는 이유 알려주세요~~~부탁드립니다~~~~
#include <AT89S51.h>
sbit PWR = P3_0;
sbit PCS = P3_1;
sbit PRD = P3_2;
sbit OUT = P2_0;
unsigned char valad = 00;
unsigned char valhh = 00;
unsigned char valll = 00;
unsigned char cycle = 00;
void delay(unsigned char cycle)
{
while(cycle--);
}
void init_port(void)
{
P1 = 0x00;
P2 = 0x00;
P3 = 0x01;
}
void main(void)
{
EA = 00;
init_port();
while(1)
{
adcrd();
pwmout();
}
}
void adcrd(void)
{
PWR =0;
delay(300);
PWR = 1;
delay(100);
PRD = 0;
P1 = 0XFF;
valad = p1;
PRD = 1;
PCS = 1;
}
void pwmout(void)
{
unsigned char temp;
temp = 255;
valll = temp-valad;
valhh = valad;
OUT = 1;
delay(valhh);
OUT = 0;
delay(valll);
OUT = 0;
}
그런데 위의 소스 처럼 하면 AD 컨버젼이 가능해 집니까??
아마도 Port 1에 ADC 데이타를 연결 하신것 같은데....p1 ==> P1 으로 변경해 보세요.
외부 회로도가 없는 상태에서 잘못된 소스 코드를 올려 놓으시면 보기가 어렵죠...
PCS 의 경우도 '1'로만 되어 있지 않나요? chip selector 같은데...
읽을 때는 '0'으로 바꿔야 하지 않나요??