BASIC4MCU | 질문게시판 | 답변 : 8051 포토커플러 관련 회로에대해서 질문드립니다.
페이지 정보
작성자 master 작성일2018-02-18 15:51 조회13,112회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=227
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-02-18 오후 3:38:30// by Ok-Hyun Park#include <reg51.h>//char array[10]={0x79,0x40,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};unsigned char cnt=0;sbit p_input=P2^0;//void delay(unsigned int i){ while(i--); }//void main(void){P2=0xff;cnt=0;while(1){if(p_input==0){if(p_input==1){ if(++cnt>9)cnt=0; P1=array[cnt]; delay(0xb100); }}}}안녕하세요 포토커플러로 회로를 구성하여서 포토커플러에 물체가 통과했다가 빠져나갈때
7 세그먼트에 숫자가 1씩 증가하고 9가 되었을시에 다시 0으로 되돌아가는 코드를 만들어보았는데요
p_input 이 0일시에 포토커플러의 빛이 차단되고 p_input 이 1일시에 다시 빛이 통과되어서 cnt 값이 증가하고 delay함수를 이용해서 숫자가 한번에 못증가하게 해보았는데요 숫자가 8이상을 넘어가지않아서 혹시 코드에 어떤부분에 문제가 있는것인지 질문드리려고 글을 작성하였습니다.
//------------------
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-02-18 오후 3:48:59// by Ok-Hyun Parkchar array[]={0x79,0x40,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};pgfedcba01111001 //001000000 //110100100 //210110000 //310011001 //410010010 //510000010 //611011000 //710000000 //810010000 //9테이블 값에 문제가 있군요
01111001 //0 <-- 이 값이 1이고01000000 //1 <-- 이 값이 0입니다.
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-02-18 오후 3:50:47// by Ok-Hyun Parkchar array[]={0x79,0x40,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};char fnd []={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //애노드아래 배열하고 비교하면 쉽게 찾을 수 있죠
비트7은 데시멀 포인트라서 비트7을 사용하지 않는 경우 비트7을 무시하고 보면 됩니다.
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-02-18 오후 3:52:13// by Ok-Hyun Park#include <reg51.h>//char array[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};unsigned char cnt=0;sbit p_input=P2^0;//void delay(unsigned int i){ while(i--); }//void main(void){P2=0xff;cnt=0;while(1){if(p_input==0){if(p_input==1){ if(++cnt>9)cnt=0; P1=array[cnt]; delay(0xb100); }}}}이 코드로 다시 돌려보세요
소스코드에서 cnt가 9까지 증가하지 않을 이유는 없습니다.
댓글 0
조회수 13,112등록된 댓글이 없습니다.