프로그래밍 pic16f877a - 문제

K

keeth18

Guest
난 프로그래머 플러스의 그림을 사용 오전 pic16f877a, 20, 오실레이터는 MHz의 mikroCPRO위한 PIC는 - 컴파일러, 2x16 액정, 4X4 키패드 및 USB.
메인 메뉴 initialy 화면 표시에 액정.때 사용자가 누를 키 키패드를 사용하여, 그것과 메뉴를 표시 하위해야 다시 입력을 사용자해야 얻을 필요하며, 수량에 대해 물어.증식해야 후에 그것은 눌러 키를과 현금을 표시 전체를 누른 다음 취소 또는 주문 요청에 대한 배치.메인 메뉴 갈로 입력을 주문에 사용자지고 - 그래서과 thankz을 표시해야합니다.주문을 취소하는 경우 밖으로 배치해야합니다 그때가 같이 메인 메뉴로.
아래의 프로그램에 문제가있다 -하지만 그것은 thankz를 표시하지 않습니다 반환 메인 메뉴 후 대신에 그것은 수량갑니다.
제발 .. 도와 날왜 여기에 실수

int KP는, kp9, kp1, kp2, itno, kp3, kp4, kp5, kp6, 별명;
서명되지 않은 짧은 비용 = 0;

int C3을, y3;
메기 TXT는 [[20], txt1 [5], txt2 [5], 덧셈 3], txt4 [5] = "1A1";

int 나;
int L1,의 L3, 4 번과 5, L5;
char *로 txt3, * txt5, uart_rd;

에 PORTD keypadPort 번째 문자;
에 RB4_bit LCD_RS sbit;
에 RB5_bit LCD_EN sbit;
에 RB0_bit LCD_D4 sbit;
에 RB1_bit LCD_D5 sbit;
sbit LCD_D6 RB2_bit에;
에 RB3_bit LCD_D7 sbit;

에 TRISB4_bit LCD_RS_Direction sbit;
에 TRISB5_bit LCD_EN_Direction sbit;
에 TRISB0_bit LCD_D4_Direction sbit;
에 TRISB1_bit LCD_D5_Direction sbit;
에 TRISB2_bit LCD_D6_Direction sbit;
에 TRISB3_bit LCD_D7_Direction sbit;

) 무효 Move_Delay을 (;
무효 lftshftdly ();
무효 clroff ();
무효 시작 ();
무효 L2 ();
() 무효 Move_Delay을 (
Delay_ms (100);
)
무효 lftshftdly ()
(
0은 (i =; 나 <2; 난 ) (
Lcd_Cmd (_LCD_SHIFT_LEFT);
Move_Delay ();

)
)
무효의 clroff ()
(
Lcd_Cmd (_LCD_CLEAR);
)

무효의 main () (
TRISB = 0;
Keypad_Init ();
Lcd_Init ();
Lcd_Cmd (_LCD_CLEAR);
Lcd_Cmd (_LCD_CURSOR_OFF);
UART1_Init (9600);
Delay_ms (100);
시작 ();
)
무효 시작 ()
(
L1 : clroff ();
Lcd_Chr (1, 1, '1 ');
Lcd_Chr (1, 2, '-');
Lcd_Chr (1, 3, '디');
Lcd_Chr (1, 4, '연구');
Lcd_Chr (1, 5, '난');
Lcd_Chr (1, 6, 'n'을);
Lcd_Chr (1, 7, 'k'는);
Lcd_Chr (1, 8, 's는');
Lcd_Chr (2, 1, '2 ');
Lcd_Chr (2, 2, '-');
Lcd_Chr (2, 3, 'S는');
Lcd_Chr (2, 4, 'n'을);
Lcd_Chr (2, 5, '');
Lcd_Chr (2, 6, 'C');
Lcd_Chr (2, 7, 'k'는);
Lcd_Chr (2, 8, 's는');

(합니까
KP는 = 0;

(
KP는 = Keypad_Key_Press ();
) 동안 (! KP는);
스위치 (KP는) (
경우 1 : / / KP는 = 49;
clroff ();
delay_ms (200);
Lcd_Chr (1, 1, '1 ');
Lcd_Chr (1, 2, '-');
Lcd_Chr (1, 3, '티');
Lcd_Chr (1, 4, '전자');
Lcd_Chr (1, 5, '');
Lcd_Chr (1, 6, '(');
Lcd_Chr (1, 7, '연구');
Lcd_Chr (1, 8, 's는');
Lcd_Chr (1, 9, '1 ');
Lcd_Chr (1, 10, '0 ');
Lcd_Chr (1,11, ')');
Lcd_Chr (2, 1, '2 ');
Lcd_Chr (2, 2, '-');
Lcd_Chr (2, 3, 'C의);
Lcd_Chr (2, 4, '오');
Lcd_Chr (2,5, '바');
Lcd_Chr (2, 6, '바');
Lcd_Chr (2, 7, '전자');
Lcd_Chr (2, 8, '전자');
Lcd_Chr (2, 9, '(');
Lcd_Chr (2, 10, '연구');
Lcd_Chr (2,11, 's는');
Lcd_Chr (2, 12, '2 ');
Lcd_Chr (2, 13, '0 ');
Lcd_Chr (2, 14, ')');
(합니까
kp1 = 0;
(합니까
kp1 = Keypad_Key_Press ();

) 동안 (! kp1);
clroff ();
스위치 (kp1)
(
경우 1 :
C3을 = 10;
itno = 101;
L2 ();
휴식;
경우 2 :
C3을 = 20;
itno = 102;
L2 ();
휴식;
경우 4 : 고토의 L3;
휴식;
사례 8 : 고토 4 번과 5;
휴식;

사건 14 : 고토 L1;
휴식;
기본값 : Lcd_Chr (1,1, '난');
고토 L1;
휴식;
)
) 동안 (1);
휴식;
경우 2 :
clroff ();
delay_ms (200);
Lcd_Chr (1, 1, '1 ');
Lcd_Chr (1, 2, '-');
Lcd_Chr (1, 3, '피');
Lcd_Chr (1, 4, 'U'가);
Lcd_Chr (1, 5, 'f를');
Lcd_Chr (1, 6, '바');
Lcd_Chr (1, 7, '');
Lcd_Chr (1, 8, ':');
Lcd_Chr (1, 9, '');
Lcd_Chr (1, 10, '연구');
Lcd_Chr (1, 11, 's는');
Lcd_Chr (1, 12, '1 ');
Lcd_Chr (1,13, '5 ');
Lcd_Chr (2, 1, '2 ');
Lcd_Chr (2, 2, '-');
Lcd_Chr (2, 3, '피');
Lcd_Chr (2, 4, '오');
Lcd_Chr (2, 5, '피');
Lcd_Chr (2, 6, 'C');
Lcd_Chr (2, 7, '오');
Lcd_Chr (2, 8, r에 ');
Lcd_Chr (2, 9, 'n'을);
Lcd_Chr (2, 10, '(');
Lcd_Chr (2,11, '연구');
Lcd_Chr (2, 12, 's는');
Lcd_Chr (2, 13, '4 ');
Lcd_Chr (2, 14, '0 ');
Lcd_Chr (2, 15, ')');
(합니까
kp2 = 0;
(합니까
kp2 = Keypad_Key_Press ();

) 동안 (! kp2);
clroff ();
스위치 (kp2)
(
경우 1 :
C3을 = 15;
itno = 201;
L2 ();
휴식;
경우 2 :
C3을 = 40;
itno = 202;
L2 ();
휴식;
경우 4 : 고토의 L3;
휴식;
사례 8 : 고토 4 번과 5;
휴식;

사건 14 : 고토 L1;
휴식;

기본값 :
Lcd_Chr (1,1, '난');
고토 L1;
휴식;
)
) 동안 (1);
휴식;
경우 4 : 고토의 L3;
휴식;
사례 8 : 고토 4 번과 5;
휴식;
사건 14 : 고토 L1;
휴식;
기본값 : Lcd_Chr (1,1, '난');
delay_ms (200);
고토 L1;
휴식;
)
) 동안 (1);
의 L3 : clroff ();
uart_rd = 0x46;
UART1_Write (uart_rd);
Lcd_Chr (1, 1, 's는');
Lcd_Chr (1, 2, '전자');
Lcd_Chr (1, 3, 'n'을);
Lcd_Chr (1, 4, 't');
delay_ms (500);
고토 L1;
4 번과 5 : clroff ();
uart_rd = 0x4D;
UART1_Write (uart_rd);
Lcd_Chr (1, 1, 's는');
Lcd_Chr (1, 2, '전자');
Lcd_Chr (1, 3, 'n'을);
Lcd_Chr (1, 4, 't');
delay_ms (200);
고토 L1;
)

무효의 L2 ()
(

clroff ();
Lcd_Chr (1, 1, '질문');
Lcd_Chr (1, 2, 'U'가);
Lcd_Chr (1, 3, '');
Lcd_Chr (1, 4, 'n'을);
Lcd_Chr (1, 5, 't');
Lcd_Chr (1, 6, '난');
Lcd_Chr (1, 7, 't');
Lcd_Chr (1, 8,의 'y');
(합니까
kp3 = 0; / / 초기화 코드를 주요 변수
/ / 출시와 잠깐의 핵심이 될 누르면

(kp3)는 (= Keypad_Key_Press;
) 동안 (! kp3);
스위치 (kp3) (
경우 1 : kp3 = 49;
y3 = 1;
휴식; / / 1
경우 2 : kp3 = 50;
y3 = 2;
휴식; / / 2
사례 3 : kp3 = 51;
y3 = 3;
휴식; / / 3
사건 5 : kp3 = 52;
y3 = 4;
휴식; / / 4
사례 6 : kp3 = 53;
y3 = 5;
휴식; / / 5
사례 7 : kp3 = 54;
y3 = 6;
휴식; / / 6
사건 9 : kp3 = 55;
y3 = 7;
휴식; / / 7
사건 10 : kp3 = 56;
y3 = 8;
휴식; / / 8
사건 11 : kp3 = 57;
y3 = 9;
휴식; / / 9
사건 14 : 고토 L1;
휴식;
기본값 : Lcd_Chr (1,1, '난');
고토 L1;
휴식;
)
Lcd_Chr (2,1, kp3);

(kp9)는 (= Keypad_Key_Press;

) 동안 (! kp9);

(해당되는 경우 kp9 == 16)
(
비용 = y3 * C3을;
IntToStr (비용, 더하다);
clroff ();
Lcd_Chr (1, 1, 'C');
Lcd_Chr (1, 2, '');
Lcd_Chr (1, 3, 's는');
Lcd_Chr (1, 4, 'h'는);
Lcd_Chr (1, 5, '');
Lcd_Chr (1, 6, '');
Lcd_Chr (1, 7, ':');
Lcd_Chr (1, 8, '');
Lcd_Chr (1, 9, '');
Lcd_Chr (1, 10, '');
Lcd_Out (1, 11, 더하다);
delay_ms (1000);
Lcd_Chr (2, 1, '1 ');
Lcd_Chr (2, 2, '-');
Lcd_Chr (2,3, '오');
Lcd_Chr (2, 4, r에 ');
Lcd_Chr (2, 5, '라');
Lcd_Chr (2, 6, '전자');
Lcd_Chr (2, 7, r에 ');
Lcd_Chr (2, 8, '');
Lcd_Chr (2, 9, '2 ');
Lcd_Chr (2, 10, '-');
Lcd_Chr (2, 11, 'C의);
Lcd_Chr (2, 12, '');
Lcd_Chr (2, 13, 'n'을);
Lcd_Chr (2, 14, 'C');
Lcd_Chr (2, 15, '전자');
Lcd_Chr (2, 16, '난');
delay_ms (500);
(합니까
kp4 = 0;
(합니까
kp4 = Keypad_Key_Press ();
) 동안 (! kp4);
clroff ();
스위치 (kp4)
(
경우 1 :
Lcd_Chr (1,1, '티');
Lcd_Chr (1,2, 'h'는);
Lcd_Chr (1,3, '');
Lcd_Chr (1,4, 'n'을);
Lcd_Chr (1,5, 'k'는);
Lcd_Chr (1,6, 's는');
delay_ms (500);
고토 L1;
휴식;
경우 2 : 고토 L1;
휴식;
사건 14 : 고토 L1;
휴식;
경우 4 : 고토의 L3;
휴식;
사례 8 : 고토 4 번과 5;
휴식;
기본값 :
Lcd_Chr (1,1, '난');
고토 L1;
휴식;
)
) 동안 (1);
)
) 동안 (1);
)

[/ 코드]코드 :

 
하이의 키,

주요 기능처럼 하시다면 전화

) 메인 (;

'표시 후 감사', 그리고 피하면서 (1);
경우에 코드가 다른 일부는 소프트웨어를 주겠다고 버그 하시다면의.

안부
karthikeyan

 
하시다면이 답변에 대한 thankz

우리가 전화 () 후 감사 주요 그것이 오류를 같이 보여줍니다
"순환 또는 크로스 메인의 전화"

이제 어떻게 하죠?

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="우는 또는 아주 슬픈" border="0" />
 
죄송합니다 지금은 단지, 메인을보고 당신입니다

방식으로 기능이 하시다면의 모든 쓰기

) 메인 (
(
) initlcd (;
대전의 초기화의 하시다면 주변 기기의 측면 ();// initkeypad 동안 (1)
) 동안 (1
(
) (시계 키패드 / / u간에 다음이 없다면 어떻게 그 고토 그 덕분에이 프로젝트를 몇 가지 함수를 호출 하시다면 안에 해냈다 주요 now.it 내가 보여주지 오류가 발생하지

)
다른 방법으로 사용해야합니다 거기
계속 사용을 할 함수 내에서 쓸 하시다면 진술, 진술, 안부

karthikeyan

 
... 더 명확하게 할 수 u는 말할 날난 .. 말하려고 하시다면 오전 무슨 이해할 수 없습니다합니다올린날짜 분 후에 3 :난 키패드 initialised하지 않은 및 액정 동안 (1).그것은) 메인입니다 아래에 (

 
하이의 키,

이것은 단지 여러분의 기본 시간을 그것이라고 하시다면 모든 기능을 하나 하나를 실행 time.it

무효의 main () (
TRISB = 0;
Keypad_Init ();
Lcd_Init ();
Lcd_Cmd (_LCD_CLEAR);
Lcd_Cmd (_LCD_CURSOR_OFF);
UART1_Init (9600);
Delay_ms (100);
시작 ();
)이렇게하지무효의 main ()
(
TRISB = 0;
Keypad_Init ();
Lcd_Init ();
Lcd_Cmd (_LCD_CLEAR);
Lcd_Cmd (_LCD_CURSOR_OFF);
UART1_Init (9600);
Delay_ms (100);
) 동안 (1
(
시작 ();
)
)

시작 ()
(
스위치 (kp4) / / 감사 기능
감사를 표시 후에 여기로 전화를 주 하시다면
/ / 나는 위선적인 말투 좀 어떻게 u는)에서 한 스위치 (kp4)
안부
karthikeyan

 
안녕하세요
죄송 지연에 대한

난하지만, 일을 시도로 고만 메인 메뉴가 루프 표시에 안가, 그.

 

Welcome to EDABoard.com

Sponsor

Back
Top