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

標(biāo)題: 求助,為何protues仿真運(yùn)算符號(hào)鍵均用不了 [打印本頁(yè)]

作者: holy2456    時(shí)間: 2017-12-24 02:11
標(biāo)題: 求助,為何protues仿真運(yùn)算符號(hào)鍵均用不了
點(diǎn)第一個(gè)數(shù)后 點(diǎn)符號(hào)鍵 前一個(gè)數(shù)會(huì)清0


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uint num1,num2,result;
  5. uchar symbol1,symbol2,flag;
  6. uchar codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  7. void delayms(uint x) //延時(shí)函數(shù)
  8. {   
  9. uint i;   
  10. while(x--) for(i=0;i<120;i++);   
  11. }
  12. void CLR()//清零
  13. {  
  14. result=0;     
  15. num1=0;  
  16. num2=0;  
  17. symbol1=0;
  18. symbol2=0;
  19. flag=0;   
  20. }
  21. void display(uint result)  //顯示函數(shù)
  22. {
  23.        ucharqian,bai,shi,ge;
  24.        qian= result/1000;
  25.        bai= result%1000/100;
  26.        shi= result%100/10;
  27.        ge= result%10;
  28.        P0= 0;
  29.        P1= 0xfe;                     //千位
  30.        P0= table[qian];
  31.        delayms(3);
  32.        P1= 0xfd;                     //百位
  33.        P0= table[bai];
  34.        delayms(3);
  35.                                           
  36.        P1= 0xfb;                     //十位
  37.        P0= table[shi];
  38.        delayms(3);
  39.        P1= 0xf7;                     //個(gè)位
  40.        P0= table[ge];
  41.        delayms(3);
  42. }
  43. void keybord()                                           //反轉(zhuǎn)法
  44. { uchar firstnum,nextnum,keynum;
  45. flag = result = num1 = num2 = 0;
  46. while(1)
  47. {  P2=0x0f;
  48.        firstnum=P2;
  49.         P2=0xf0;
  50.         nextnum=P2;
  51.         keynum=nextnum|firstnum;
  52.         switch(keynum)
  53.         {
  54.         case 0xee: delayms(200);
  55.                             if(flag< 2)                  //1
  56.                             {
  57.                                   num1= num1*10 + 1;
  58.                                    result= num1;
  59.                                    flag++;
  60.                                    
  61.                             };break;
  62.         case 0xde:delayms(200);                                //2
  63.                          if(flag < 2)
  64.                             {
  65.                                   num1= num1*10 + 2;
  66.                                    result= num1;
  67.                                    flag++;
  68.                             };break;
  69.         case 0xbe: delayms(200);                            //3
  70.                          if(flag < 2)
  71.                             {
  72.                                   num1= num1*10 + 3;
  73.                                    result= num1;
  74.                                    flag++;
  75.                             };break;
  76.         case 0x7e: delayms(200);                     //4
  77.                          if(flag < 2)
  78.                             {
  79.                                   num1= num1*10 + 4;
  80.                                    result= num1;
  81.                                    flag++;
  82.                             };break;
  83.         case 0xed: delayms(200);                            //5
  84.                          if(flag < 2)
  85.                             {
  86.                                   num1= num1*10 + 5;
  87.                                    result= num1;
  88.                                    flag++;
  89.                             };break;
  90.         case 0xdd: delayms(200);                            //6
  91.                          if(flag < 2)
  92.                             {
  93.                                   num1= num1*10 + 6;
  94.                                    result= num1;
  95.                                    flag++;
  96.                             };break;
  97.         case 0xbd: delayms(200);                     //7
  98.                          if(flag < 2)
  99.                             {
  100.                                   num1= num1*10 + 7;
  101.                                    result= num1;
  102.                                    flag++;
  103.                             };break;
  104.         case 0x7d: delayms(200);                            //8
  105.                          if(flag < 2)
  106.                             {
  107.                                   num1= num1*10 + 8;
  108.                                    result= num1;
  109.                                    flag++;
  110.                             };break;
  111.         case 0xeb: delayms(200);                     //9
  112.                          if(flag < 2)
  113.                             {
  114.                                   num1= num1*10 + 9;
  115.                                    result= num1;
  116.                                    flag++;
  117.                             };break;
  118.         case 0xdb: delayms(200);            //0
  119.                          if(flag < 2)
  120.                             {
  121.                                   num1= num1*10 + 0;
  122.                                    result= num1;
  123.                                    flag++;
  124.                             };break;
  125.         case 0xbb: symbol1 = '+';                       //+
  126.                             symbol2= symbol1;
  127.                             result= num2 = num1;
  128.                             num1= 0;
  129.                             flag= 0;
  130.                             break;
  131.         case 0x7b: symbol1 = '-';                   //-
  132.                             symbol2= symbol1;
  133.                             result= num2 = num1;
  134.                             num1= 0;
  135.                             flag= 0;
  136.                             break;
  137.         case 0xe7: symbol1 = '*';                           //*
  138.                             symbol2= symbol1;
  139.                             result= num2 = num1;
  140.                             num1= 0;
  141.                             flag= 0;
  142.                             break;
  143.         case 0xd7: symbol1 = '/';                  //÷
  144.                             symbol2= symbol1;
  145.                             result= num2 = num1;
  146.                             num1= 0;
  147.                             flag= 0;
  148.                             break;
  149.         case 0xb7: CLR();break;
  150.         case 0x77: delayms(200);                     //=
  151.                           symbol1= '=';
  152.                             break;
  153.         
  154.               default:break;
  155.         }
  156.                                   if(symbol1=='=')
  157.                                   {switch(symbol2)
  158.                            {
  159.                              case '+':
  160.                                     result = num2 + num1;
  161.                                 break;
  162.                            
  163.                                 case '-':
  164.                                     result = num2 - num1;
  165.                                 break;     
  166.                            
  167.                                 case '*':
  168.                                     result = num2 * num1;
  169.                                break;     
  170.                            
  171.                                 case'/':
  172.                                     result = num2 / num1;
  173.                                 break;   }      
  174.                            }display(result);
  175.   }
  176.   
  177. }
  178. void main()
  179.   {
  180.       keybord();
  181.       
  182.   }
復(fù)制代碼




作者: holy2456    時(shí)間: 2017-12-24 11:56
求大神 求別沉




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 韩日一区| 中文字幕精品视频 | 日韩视频在线免费观看 | 中文字幕一区在线观看视频 | 成av在线 | 天天操天天射综合网 | 国产999精品久久久久久 | 最新免费黄色网址 | 国产成人精品一区二区三区视频 | 精品国产乱码久久久久久1区2区 | 欧美一级免费黄色片 | 99热这里只有精品8 激情毛片 | 日韩精品极品视频在线观看免费 | av网站免费 | 欧美三区| 欧美在线色| 精品久久精品 | 亚洲欧美日本国产 | 久久精品美女 | 国产高清精品一区二区三区 | 久久久久久久久国产精品 | 亚洲精品黑人 | 亚洲免费视频一区 | 亚洲精彩视频在线观看 | 黄色在线免费观看 | 成人欧美一区二区三区在线观看 | 在线不卡视频 | 亚洲福利av | 亚洲视频中文字幕 | 国产精品毛片一区二区三区 | 在线观看欧美日韩视频 | 97国产一区二区 | 日日干日日操 | 国产性色视频 | 青青久久| 精品国产欧美一区二区三区成人 | 精品久久久久久18免费网站 | 久久国内 | 日韩视频在线播放 | 亚洲欧美日本国产 | 国产日韩欧美在线 |