16 진수 코드

I

intan

Guest
안녕!
누군가가 나를 코드이 코드를 16 진수로 변환을 도와 드릴까요?
메신저 그림 16f876a 및 하이테크 C 언어를
사용하여난 hv 여러 번 시도했지만 여전히 작동 cannot
사전에 감사합니다

 
이곳의 코드입니다# 포함 <pic.h>

//=============== 구성 ==============================
__CONFIG (0x3F32);

============================= 입출력 포트를 정의 //===============
# PORTC 액정 정의
RS RA2 정의 #
전자 RA5 정의 #
CHANNEL0 0b10000001 / / AN0 정의 #
/ / AN1 CHANNEL1 0b10001001 정의 #
부저 RB5 정의 #
파나 RB4 정의 #
fanB RB3 정의 #
리이타 RB2 정의 #
ledB RB1 정의 #

//============== 기능 PTOTOTYPE =========================
무효 e_pulse (무효);
무효 지연 (서명이 짧은 내가);
무효 send_char (서명 숯불 데이터);
무효 send_config (서명 숯불 데이터);
lcd_goto (서명 숯불 데이터) 무효;
무효 lcd_clr (무효);
무효 dis_num (서명이 긴 데이터);
무효 증가 (서명 긴 데이터);
무효 read_adc (무효);
서명되지 않은 짧은 read_temp (무효);

메인 //==================== =========================== =====
서명되지 않은 짧은 결과;
서명되지 않은 짧은 임시직, tempA, tempB;

무효 메인 (무효)
(
ADRESH = 0; / / 분명한은 A / D 결과
ADRESL = 0; / / 분명한은 A / D 결과

/ / 설정 ADCON1 등록
ADCON1 = 0b11000101; / /은 A / D 결과 오른쪽, 정당화
/ / RA5 구성할 RA2 및 디지털 I / O를

TRISA = 0b11011011; / / configure를 PORTA 가능한 I / O 방향
TRISB = 0b00000000;
출력으로 / /를 구성 PORTB
TRISC = 0b00000000; / / PORTC 출력으로 구성할 수

PORTA = 0;
PORTB = 0;

(1) 동안
(
send_config (0b00000001); / / 액정에 분명히 표시
send_config (0b00000010); / / 집으로 돌아가기 액정
send_config (0b00000110); / / 입력 모드 - 커서 증가 1
send_config (0b00001100); / / diplay에 커서 및 커서를 깜박에서
send_config (0b00111000); / /
Set 함수

lcd_goto (0); / / 커서를 처음부터 시작

/ / LCD에 표시 문자
send_char ( '');
send_char ( 'T는');
send_char ( 'E'의);
send_char ( '남');
send_char ( 'P'로);
send_char ('.');
send_char ( '한');
send_char ('=');

lcd_goto (20); / / 커서가 LCD의 2 라인으로 이동

/ / LCD에 표시 문자
send_char ( '');
send_char ( 'T는');
send_char ( 'E'의);
send_char ( '남');
send_char ( 'P'로);
send_char ('.');
send_char ( 'B 조');
send_char ('=');

(1) / / 무한 루프를하면서
(
/ /
한 센서
ADCON0 = CHANNEL0; / / CHANNEL1 = 0b10001001
lcd_goto (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="차가운" border="0" />

;

read_adc ();

온도 = read_temp ();
dis_num (temp/10);
send_char ('.');
dis_num (temp %를 10);
send_char (0b11011111);
send_char (는 'C');
send_char ( '');
send_char ( '');

tempA = 온도;

/ / 센서 B 조
ADCON0 = CHANNEL1; / / CHANNEL0 = 0b10000001

lcd_goto (2

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="차가운" border="0" />

;

read_adc ();

온도 = read_temp ();
dis_num (temp/10);
send_char ('.');
dis_num (temp %를 10);
send_char (0b11011111);
send_char (는 'C');
send_char ( '');
send_char ( '');

tempB = 온도;

만약 ((tempA> 500) & & (tempB <500)) / / ********************************** *******
(/ / * LED는 A와 팬 한 *에만 활성화
리이타 = 1; / / * 온도보다 50'C *
ledB = 0; / / *와 온도 B 조 50'C 이하 *
파나 = 1; / / *****************************************
fanB = 0;
부저 = 0;
)

다른 경우 ((tempB> 500) & & (tempA <500)) / / ********************************* ********
(/ / * LED는 B와 팬 B 조 *에만 활성화
리이타 = 0; / / * 온도가 50'C 이하 *
ledB = 1; / / * 온도 B 조 50'C 이상 *
파나 = 0; / / *****************************************
fanB = 1;
부저 = 0;
)

다른 경우 ((tempB> 500) & & (tempA> 500)) / / ********************************* ********************
(/ / * 모든 제품의 A & LED는 LED가 B 조, 팬의 A & 팬 B 및 부저 *
ledB = 1; / / * 온도보다 50'C * 활성화
리이타 = 1; / / *와 온도 50'C 이상 B 조 *
파나 = 1; / / ******************************************** *********
fanB = 1;
부저 = 1;
)

다른 경우 ((tempB <500) & & (tempA <500)) / / ********************************* ********************
(/ / * 모든 제품의 A & LED는 LED가 B 조, 팬의 A & 팬 B 및 부저 *
ledB = 0; / / * 온도가 50'C 이하 * disactivated
리이타 = 0; / / *와 온도 B 조 50'C 이하 *
파나 = 0; / / ******************************************** *********
fanB = 0;
부저 = 0;
)

지연 (2000);

)

)

)서브루틴을 설정 //================== 액정 ==========================

무효 send_config (서명 숯불 데이터)
(
RS = 0;
액정 = 데이터;
지연 (500);
e_pulse ();
)

무효 e_pulse (무효)
(
전자 = 1;
지연 (500);
로 E = 0;
지연 (500);
)

무효 send_char (서명 숯불 데이터)
(
RS = 1;
액정 = 데이터;
지연 (500);
e_pulse ();
)lcd_goto (서명 숯불 데이터)
무효(
경우 (데이터 <16)
(
send_config (0x80으로 데이터);
)
그 밖의
(
데이터 = 데이터 - 20;
send_config (0xC0 데이터);
)
)무효 lcd_clr (무효)
(
RS = 0;
send_config (0x01);
지연 (600);
)무효 dis_num (서명이 긴 데이터)
(
서명 숯불 hundred_thousand;
서명 숯불 ten_thousand;
서명되지 않은 숯불 1000;
서명되지 않은 숯불 100;
서명되지 않은 숯불 10;

hundred_thousand = data/100000;
데이터 = 데이터 % 100000;
ten_thousand = data/10000;
데이터 = 데이터 % 10000;
1000 = 데이터 / 1000;
데이터 = 데이터 % 1000;
100 = 데이터 / 100;
데이터 = 데이터 % 100;
10 = 데이터 / 10;
데이터 = 데이터 % 10;

(hundred_thousand> 0)
(
send_char (hundred_thousand 0x30); / / 0x30 아스키 코드가에 추가
send_char (ten_thousand 0x30);
send_char (1000 0x30);
send_char (100 0x30);
(10 0x30) send_char;
send_char (데이터 0x30);
)

다른 경우 (ten_thousand> 0)
(
send_char (ten_thousand 0x30); / / 0x30 아스키 코드가에 추가
send_char (1000 0x30);
send_char (100 0x30);
(10 0x30) send_char;
send_char (데이터 0x30);
)
다른 경우 (1000> 0)
(
send_char (1000 0x30); / / 0x30 아스키 코드가에 추가
send_char (100 0x30);
(10 0x30) send_char;
send_char (데이터 0x30);
)
다른 경우에는 (100> 0)
(
send_char (100 0x30); / / 0x30 아스키 코드가에 추가
(10 0x30) send_char;
send_char (데이터 0x30);
)
다른 경우 (10 분의 1> 0)
(
(10
0x30) send_char; / / 0x30 아스키 코드가에 추가
send_char (데이터 0x30);
)
다른 send_char (데이터 0x30); / / 0x30 아스키 코드가에 추가
)

무효 증가 (서명 긴 데이터)
(
서명되지 않은 짧은 j를;
(일본 = 10; 일본> 0; 일본 -)
(lcd_goto (32);
데이터 = 데이터 1;
dis_num (데이터);
지연 (10000);
)

)

서브루틴 //================== ADC를 =========================

무효 read_adc (무효)
(
서명되지 않은 짧은 내가;
서명되지 않은 긴 result_temp = 0;
은 (i = 2000; 난> 0; 난 - = 1) / / 평균
가치를 얻을 수 2000년 번 반복
(
ADGO = 1; / / ADGO the ADCON0 레지스터의 비트 2입니다
마무리
ADC를 진행 중 (ADGO == 1); / / ADC를 시작하면서 ADGO = 0 이후
결과 = ADRESH;
결과 = 결과 <<8; / /로 교대
8 비트 왼쪽
결과 = 결과 | ADRESL; / / ADC가에서 10 비트 결과

result_temp = 결과;
)
결과 = result_temp/2000; / / 평균 가치지고

)

서명되지 않은 짧은 read_temp (무효)
(
서명되지 않은 짧은 온도;
임시직 = 결과;
복귀 온도;

)

서브루틴 //================== DELAY ==========================
무효 지연 (서명이 짧은 내가)
(
(; 난> 0; 난 -);
)

 

Welcome to EDABoard.com

Sponsor

Back
Top