久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 利用單片機外部中斷來獲取矩陣鍵盤鍵值外加可精確到小數點后6位計算器源程序 [打印本頁]

作者: linuxke    時間: 2019-7-28 09:34
標題: 利用單片機外部中斷來獲取矩陣鍵盤鍵值外加可精確到小數點后6位計算器源程序
利用外部中斷來獲取鍵值,避免了逐行掃描,減少了cpu的占用。準確的獲取鍵值,運用二維數組來存放鍵值,讓5*5的矩陣鍵盤輸出鍵值,這個設定的二維數組char xianshi[5][5]={{'(','/','*','-','+'},{')','3','2','1',0},{'6','5','4','0',0},{10,'9','8','7',0},{'=','.','0',11,12}};這位檢查行和列:
while(1)        {
               
                if(linflag==0)
        {
                row0(1);row1(1);row2(1);row3(1);row4(1);
                if(endflag==0)
                {
                  rowflag=0; row0(0);row1(1);row2(1);row3(1);row4(1);
                        delay_nms(10);
                }
                if(endflag==0)
                {
                  rowflag=1;
row0(1);row1(0);row2(1);row3(1);row4(1);
                        delay_nms(10);
                }
                if(endflag==0)
                {
                  rowflag=2;row0(1);row1(1);row2(0);row3(1);row4(1);
                        delay_nms(10);
                }
                if(endflag==0)
                {

                  rowflag=3;row0(1);row1(1);row2(1);row3(0);row4(1);
                        delay_nms(10);
                }
                if(endflag==0)
                {
                  rowflag=4;row0(1);row1(1);row2(1);row3(1);row4(0);
                        delay_nms(10);
                }
                row0(0);row1(0);row2(0);row3(0);row4(0);
                endflag=0;
                linflag=1;
        }


檢查列:
if(linflag==1)
        {
                if (EXTI_GetITStatus(EXTI_Line11)!=RESET)
                {
                        lin=0;
                        EXTI_ClearFlag(EXTI_Line11);

                }
                if (EXTI_GetITStatus(EXTI_Line12)!=RESET)
                {
                        lin=1;
                        EXTI_ClearFlag(EXTI_Line12);

                }
                if (EXTI_GetITStatus(EXTI_Line13)!=RESET)
                {
                        lin=2;
                        EXTI_ClearFlag(EXTI_Line13);
                }
                if (EXTI_GetITStatus(EXTI_Line14)!=RESET)
                {
                        lin=3;
                        EXTI_ClearFlag(EXTI_Line14);
                }
                if (EXTI_GetITStatus(EXTI_Line15)!=RESET)
                {        
      lin=4;                        
                        EXTI_ClearFlag(EXTI_Line15);
                }
                linflag=0;
        }
        else if(endflag==1)
        {
                if (EXTI_GetITStatus(EXTI_Line11)!=RESET)
                        EXTI_ClearFlag(EXTI_Line11);
                if (EXTI_GetITStatus(EXTI_Line12)!=RESET)
                        EXTI_ClearFlag(EXTI_Line12);
                if (EXTI_GetITStatus(EXTI_Line13)!=RESET)
                        EXTI_ClearFlag(EXTI_Line13);
                if (EXTI_GetITStatus(EXTI_Line14)!=RESET)
                        EXTI_ClearFlag(EXTI_Line14);
                if (EXTI_GetITStatus(EXTI_Line15)!=RESET)
                        EXTI_ClearFlag(EXTI_Line15);
        }
        
        else
        {
                if (EXTI_GetITStatus(EXTI_Line11)!=RESET)
                {
                        row=rowflag;
                        rowflag=5;
                        endflag=1;
                        EXTI_ClearFlag(EXTI_Line11);
                }
                if (EXTI_GetITStatus(EXTI_Line12)!=RESET)
                {
                        row=rowflag;
                        rowflag=5;
                        endflag=1;
                        EXTI_ClearFlag(EXTI_Line12);
                }
                if (EXTI_GetITStatus(EXTI_Line13)!=RESET)
                {
                        row=rowflag;
                        rowflag=5;
                        endflag=1;
                        EXTI_ClearFlag(EXTI_Line13);
                }
                if (EXTI_GetITStatus(EXTI_Line14)!=RESET)
                {
      row=rowflag;
                        rowflag=5;
                        endflag=1;
                        EXTI_ClearFlag(EXTI_Line14);
                }
                if (EXTI_GetITStatus(EXTI_Line15)!=RESET)
                {        
                        row=rowflag;
                        rowflag=5;
                        endflag=1;
                        EXTI_ClearFlag(EXTI_Line15);
        }        
                if(xianshi[row][lin]!='=')
                { str[m++]=xianshi[row][lin];
                  g=xianshi[row][lin];}
   else
                   s=displaynum(str,m);
               
}        

利用巧妙的算法來進行計算器的計算,準確輸出到12864屏幕上。想要的可以下載。

全部資料51hei下載地址:
33.7z (49.52 KB, 下載次數: 20)





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 99精品久久 | 日本人爽p大片免费看 | 国产精品久久久一区二区三区 | 99精品国自产在线 | 成人美女免费网站视频 | 成人免费观看视频 | 国产精品一区二区三区久久 | 一级黄在线观看 | 欧美一区两区 | 国产美女精品视频 | 中文字幕一区二区三区不卡 | 精久久久 | 一区二区免费 | 黑人巨大精品欧美一区二区一视频 | 欧美中文字幕一区二区 | 最新中文字幕久久 | 亚洲一区 中文字幕 | 中文字幕欧美日韩一区 | 欧美成人免费电影 | 国产高清自拍视频在线观看 | 99精品免费在线观看 | 免费在线观看毛片 | 欧美日韩成人在线 | 中文字幕亚洲无线 | 99热在线播放 | 国产黄色在线观看 | 日韩精品一区二区三区视频播放 | 日韩在线xx| 日日射夜夜骑 | 九九热免费在线观看 | 亚洲视频免费观看 | 99九色| 色婷婷亚洲国产女人的天堂 | av在线播放免费 | 日韩中文字幕在线观看 | 黄视频欧美| 成人无遮挡毛片免费看 | 国产成人精品久久 | 韩国av电影网 | 日韩91| 一区二区免费在线观看 |