天天看點

基于Proteus的電腦仿真

本實驗采用的單片機是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++;
        }
    }    
}
           

實驗結果如下所示:

基于Proteus的電腦仿真

需要下載下傳代碼的朋友可以關注微信公衆号:時沿科技,或者下方二維碼免費下載下傳

基于Proteus的電腦仿真