本實驗采用的單片機是MSP430F249,用4x5的矩陣式非編碼鍵盤作為電腦的輸入按鍵,顯示子產品采用LM3229,該電腦的功能包括“+、-、*、/ 、^、 清除、傳回上一次計算”等功能。
void main(void)
{
/*str為表達式數組*/
char str[MAX]="7+(8*9)+1";
char result[10];
unsigned char inputc='E', pos=0;
char next = 0;
init();
keyInit();
LCD_Init();
writeString(1,0,"hello!");
while(1)
{
//scan key value
inputc = scanKey();
//whether it is vaild
if(inputc != '_')
{
if(next)
{
clearCaculation();
next = 0;
}
if(inputc == '=')
{
str[pos]='\0';
caculation(str, result);
{
writeChar(6,0,'=');
writeString(6,1,result);
memset(result,0,10);
next = 1;
}
pos = 0;
continue;
}
if(inputc == 'c')
{
//clear caculation result.
clearCaculation();
pos=0;
continue;
}
if(inputc == 'b')
{
//back one step
pos--;
writeChar(5,pos,' ');
continue;
}
str[pos] = inputc;
writeChar(5,pos,inputc);
pos++;
}
}
}
實驗結果如下所示:
需要下載下傳代碼的朋友可以關注微信公衆号:時沿科技,或者下方二維碼免費下載下傳