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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3740|回復: 1
打印 上一主題 下一主題
收起左側

單片機計算器(實現加減乘除運算)proteus仿真與源程序

[復制鏈接]
跳轉到指定樓層
樓主
單片機計算器仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<at89x52.h>
  2. #define uchar unsigned char
  3. uchar LED[]={0x3f,0x60,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  4. uchar Lamp[]={0x07,0x06,0x05,0x04,0x30,0x02,0x01,0x00} ;                                       

  5. unsigned char key=0;
  6. unsigned long int num=0;
  7. unsigned long int num_old=0;
  8. long int result=0;
  9. unsigned char res[10]={0};
  10. unsigned char pos=0;
  11. unsigned char flag=0;
  12. unsigned char hang=0,lie=0;
  13. unsigned char i=0;

  14. void delayms(unsigned char i)
  15. { unsigned char k;
  16.   while(i--)
  17.   for(k=0;k<120;k++) ;
  18. }
  19. unsigned char keycode[4][4]={{1,2,3,'*'},
  20.                              {4,5,6,'/'},
  21.                                                          {7,8,9,'C'},
  22.                                                          {0,'+','-','='}  };

  23. unsigned char keyScan()
  24. {
  25.    P1 = 0x0f;
  26.    switch(P1&0x0f)
  27.    {
  28.      case 0x0e: hang=0;break;
  29.          case 0x0d: hang=1;break;
  30.          case 0x0b: hang=2;break;
  31.          case 0x07: hang=3;break;
  32.      default: break;
  33.         }
  34.     P1 = 0xf0;
  35.         switch(P1&0xf0)
  36.         {
  37.          case 0xe0: lie=0;break;
  38.          case 0xd0: lie=1;break;
  39.          case 0xb0: lie=2;break;
  40.          case 0x70: lie=3;break;
  41.          default: break;
  42.         }
  43.     return keycode[hang][lie];                               
  44. }
  45. void Display(uchar DisplayNum,uchar LEDNum)
  46. {
  47. P2=Lamp[LEDNum];
  48. P0=LED[DisplayNum];
  49. delayms(3);
  50. }

  51. void T1_isr() interrupt 3
  52. {
  53. #define KEY_DOWN P1!=0x0f
  54. #define KEY_UP   P1==0x0f
  55.   static uchar flag = 0;
  56.   TH1 = (65536-50000)/256;
  57.   TL1 = (65536-50000)%256;
  58.   P1  = 0x0f;
  59.    if(flag == 0 && KEY_DOWN)
  60.      flag = 1;
  61.    else if(flag == 1 && KEY_UP)
  62.      flag = 0;
  63.    else if(flag == 1 && KEY_DOWN)
  64.    {
  65.           flag = 2;
  66.           pos++;
  67.           Display(keyScan(),pos);
  68.    }
  69.    else if(flag == 2 &&        KEY_UP)
  70.       flag = 0;
  71. }

  72. void show()
  73. {
  74.   unsigned char i=0;
  75.   if(pos==0) Display(0,0);
  76.   else
  77.   for(i=0;i<pos;i++)
  78.   {
  79.         Display(keyScan(),pos-i-1);
  80.          
  81.    }
  82. }
  83. void main()
  84. {
  85.    TMOD = 0x10;
  86.    TH1  = (65536-50000)/256;
  87.    TL1  = (65536-50000)%256;
  88. ……………………

  89. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
新建文件夾01.rar (40.24 KB, 下載次數: 34)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:458161 發表于 2018-12-30 17:24 | 只看該作者
這個不能用啊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜影院在线观看视频 | av播播| 男女深夜网站 | 国产在线a| 日韩福利视频 | 亚洲午夜精品一区二区三区 | 精品国产乱码久久久久久蜜柚 | 韩日精品视频 | 国产精品久久久久久久久久不蜜臀 | 精品免费国产一区二区三区 | 精品欧美激情精品一区 | 国产激情视频在线观看 | 午夜在线免费观看视频 | 欧美精品久久久久 | 国产成人精品综合 | 亚洲不卡一| 蜜桃视频一区二区三区 | 亚洲国产精品精华素 | 中文字幕亚洲一区二区va在线 | 久久专区| 亚洲欧洲日韩 | 亚洲精品日韩一区二区电影 | 丁香婷婷在线视频 | 日韩美女一区二区三区在线观看 | 中文字幕av亚洲精品一部二部 | 久久久久久高清 | 日韩在线视频免费观看 | 97精品国产手机 | 日韩欧美国产精品一区二区三区 | 91精品一区二区三区久久久久久 | 亚洲一卡二卡 | 颜色网站在线观看 | 欧美日韩成人影院 | 日本成人福利 | 亚洲精品乱码久久久久久按摩 | 国产精品成人在线播放 | 久久久久国产 | 天天综合网天天综合 | 精品日韩在线 | 日本久久久久久 | 久草福利|