問keil uvision4的程式問題 5個百位數相加 結果為4位數
這是ARM的
// */
// Smpl_LCD_Keypad : input 3x3 keypad, output to LCD display
//
#include <stdio.h>
#include "NUC1xx.h"
#include "DrvSYS.h"
#include "DrvGPIO.h"
#include "scankey.h"
#include "NUC1xx-LB_002\LCD_Driver.h"
void myLCD_Disp(int num );
int pos=-1;
int total=0;
int medium=10;//10->十位數 1->個位數
int mynum=0;
int32_t main (void)
{
int tmp;
int8_t number;
char TEXT0[16]="Smpl_LCD_Keypad";
char TEXT1[16]="Keypad: ";
UNLOCKREG();
DrvSYS_Open(48000000); // set MCU to run at 48MHz
LOCKREG();
Initial_panel();
clr_all_panel();
OpenKeyPad(); // initialize 3x3 keypad
//print_lcd(0,TEXT0); // print title
while(1)
{
number = Scankey(); // scan keypad to input
if ( number != 0 ){
DrvSYS_Delay(2000);
while ( Scankey() != 0 );
DrvSYS_Delay(2000);
myLCD_Disp( number+'0' );
if ( medium == 10 ){//十位數
total = total + 10*number;
medium = 1;
}else if ( medium == 1 ){//個位數
total = total + number;
medium = 10;
mynum++;
myLCD_Disp( '+' );
}
if ( mynum == 5 ){
myLCD_Disp( '=' );
tmp = total/100;
myLCD_Disp( '0' + tmp );
total = (total - tmp * 100);
tmp = total / 10;
myLCD_Disp( '0' + tmp );
total = (total - tmp * 10);
myLCD_Disp( '0' + total );
}
}
}
}
void myLCD_Disp( int num )
{
int x,y;
pos++;
y = pos % 16;
x = pos / 16;
Show_Word( x,y,num);
DrvSYS_Delay(5000); // delay
}