회원가입 ID/PW 찾기
AA

>>>>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;
}

댓글 3
  • No Profile
    valad = p1;  <=== p1이 뭔가요?? (소문자가 아니라 대문자 같은데??)

    그런데 위의 소스 처럼 하면 AD 컨버젼이 가능해 집니까??
  • No Profile
    왜 안될까요??ㅎ
  • No Profile
    분명 컴파일 에러 날겁니다.

    아마도 Port 1에 ADC 데이타를 연결 하신것 같은데....p1 ==> P1 으로 변경해 보세요.

    외부 회로도가 없는 상태에서 잘못된 소스 코드를 올려 놓으시면 보기가 어렵죠...
    PCS 의 경우도 '1'로만 되어 있지 않나요? chip selector 같은데...
    읽을 때는 '0'으로 바꿔야 하지 않나요??

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
  • 문제는 목적지에 얼마나 빨리 가느내가 아니라 그 목적지가 어디냐는 것이다.
    - 메이벨 뉴컴버
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.