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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3968|回復(fù): 0
收起左側(cè)

單片機(jī)四位數(shù)碼管與4*4矩陣鍵盤計(jì)算器源代碼與Proteus仿真

[復(fù)制鏈接]
ID:674815 發(fā)表于 2020-11-24 08:54 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
QOHM9]BZ1FTXTUEK$GU`JQ3.png

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. unsigned char code Table[10]=
  3. {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定義一個(gè)char型一維數(shù)組(coed:存儲(chǔ)數(shù)據(jù)ROM)
  4. char key;//
  5. void delay()//延時(shí)函數(shù)
  6. {
  7.         char i;//
  8.         for(i=0;i<50;i++);         
  9. }

  10. void display(int num)//
  11. {
  12.         P3=0X00;//清屏;千位
  13.         P2=Table[num/1000];//送顯示
  14.         P3=0X01;//單獨(dú)供電
  15.         delay();//短延時(shí)
  16.        
  17.         P3=0X00;//清屏;百位
  18.         P2=Table[num/100%10];//送顯示
  19.         P3=0X02;//單獨(dú)供電
  20.         delay();//短延時(shí)
  21.        
  22.         P3=0X00;//清屏;十位
  23.         P2=Table[num/10%10];//送顯示
  24.         P3=0X04;//單獨(dú)供電
  25.         delay();//短延時(shí)
  26.        
  27.         P3=0X00;//清屏;個(gè)位
  28.         P2=Table[num%10];//送顯示
  29.         P3=0X08;//單獨(dú)供電
  30.         delay();//短延時(shí)
  31.        
  32. }

  33. char key_scan(void)//
  34. {
  35.         key=0;
  36.         P1=0XFE;//
  37.         //一
  38.         if(P1 !=0XFE)
  39.         {
  40.                 delay();
  41.                 if(P1 !=0XFE)
  42.                 {
  43.                         switch(P1)
  44.                         {
  45.                                 case 0x7E:key=1;break;
  46.                                 case 0xBE:key=2;break;
  47.                                 case 0xDE:key=3;break;
  48.                                 case 0xEE:key=4;break;
  49.                         }
  50.                 }
  51.                   while(P1 !=0XFE);
  52.         }
  53.        
  54.                 //二
  55.         P1=0XFD;
  56.         if(P1!=0XFD)
  57.         {
  58.                 delay();
  59.                 if(P1!=0XFD)
  60.                 {
  61.                         switch(P1)
  62.                         {
  63.                                 case 0x7D:key=5;break;
  64.                                 case 0xBD:key=6;break;
  65.                                 case 0xDD:key=7;break;
  66.                                 case 0xED:key=8;break;
  67.                         }
  68.                 }
  69.                         while(P1!=0XFD);
  70.         }

  71.                 //三
  72.         P1=0XFB;
  73.         if(P1!=0XFB)
  74.         {
  75.                 delay();
  76.                 if(P1!=0XFB)
  77.                 {
  78.                         switch(P1)
  79.                         {
  80.                                 case 0x7B:key=9;break;
  81.                                 case 0xBB:key=10;break;
  82.                                 case 0xDB:key=11;break;
  83.                                 case 0xEB:key=12;break;
  84.                         }
  85.                 }
  86.                 while(P1!=0XFB);
  87.         }
  88.        
  89.                 //四
  90.         P1=0XF7;
  91.         if(P1!=0XF7)
  92.         {
  93.                 delay();
  94.                 if(P1!=0XF7)
  95.                 {
  96.                         switch(P1)
  97.                         {
  98.                                 case 0x77:key=13;break;
  99.                                 case 0xB7:key=14;break;
  100.                                 case 0xD7:key=15;break;
  101.                                 case 0xE7:key=16;break;
  102.                         }
  103.                 }
  104.                         while(P1!=0XF7);
  105.         }
  106.         return key;
  107. }

  108. void main()//主函數(shù)
  109. {
  110.         char key_value;//按鍵信息 0代表無按鍵 1-16代表有按鍵
  111.         int a1=0;//
  112.         int a2=0;//
  113.         char ys_flag=0;//運(yùn)算符
  114.         int result;//計(jì)算結(jié)果
  115.         int show;//顯示內(nèi)容
  116.         while(1)
  117.         {
  118.                 display(show);
  119.                 key_value=key_scan();
  120.                
  121.                 //a1輸入
  122.                 if((key_value>0)&&(key_value<11)&&(ys_flag==0))
  123.                 {
  124.                         if(key_value==10)
  125.                         key_value=0;
  126.                         a1=a1*10+key_value;
  127.                         show=a1;
  128.                 }
  129.                
  130.                 if((key_value>12)&&(key_value<17))
  131.                 {
  132.                         ys_flag=key_value;
  133.                 }
  134.                
  135.                 //a2輸入
  136.                 if((key_value>0)&&(key_value<11)&&(ys_flag!=0))
  137.                 {
  138.                         if(key_value==10)
  139.                         key_value=0;
  140.                         a2=a2*10+key_value;
  141.                         show=a2;
  142.                 }
  143.                
  144.                 if(key_value==12)//輸入運(yùn)算符
  145.                 {
  146.                         switch(ys_flag)
  147.                         {
  148.                                 case 13:result=a1+a2;break;
  149.                                 case 14:result=a1-a2;break;
  150.                                 case 15:result=a1*a2;break;
  151.                                 case 16:result=a1/a2;break;
  152.                         }
  153.                         show=result;
  154.                 }
  155.                
  156.                 if(key_value==11)//復(fù)位
  157.                 {
  158.                         show=0;
  159.                         result=0;
  160.                         a1=0;
  161.                         a2=0;
  162.                         ys_flag=0;
  163.                 }
  164.         }
  165. }
復(fù)制代碼
51hei.png
所有資料51hei提供下載:
四位簡(jiǎn)易計(jì)算器.zip (114.03 KB, 下載次數(shù): 107)


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99热在线播放 | 一区二区在线免费观看 | 中文字幕在线免费观看视频 | 国产成人91 | 日韩在线视频观看 | 欧美视频在线观看一区 | 欧美视频一二三区 | 成人小视频在线观看 | 久久综合五月天 | 在线观看福利影院 | 涩涩视频免费看 | 中文在线字幕免费观看 | 欧美日韩国产成人 | 黄色大片在线 | 99久久九九 | 日韩理论在线 | 91av在线免费观看 | 婷婷在线视频 | 日韩中文字幕在线观看 | 又色又爽又黄18网站 | 国产精品欧美在线 | 高清乱码男女免费观看 | 国产精品一区在线播放 | www.av在线播放| 成人永久免费视频 | 午夜网站在线观看 | 奇米影视888 | 日韩av一二三区 | 福利在线观看 | 亚洲日本视频 | 福利在线观看 | 国产精品99久久久久久久久久久久 | 中文字幕一区二区三区在线观看 | 久久888| 超碰在线中文字幕 | 放几个免费的毛片出来看 | 国内自拍xxxx18 | 一区二区国产精品 | 五月天激情视频 | wwwav在线| 黄色片在线播放 |