找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4262|回复: 3
打印 上一主题 下一主题
收起左侧

51单片机基于六位数码管的简易加法计算器Proteus仿真程序

[复制链接]
跳转到指定楼层
楼主
自己用4*4矩阵键盘与六位数码管仿真的加法计算器(已经做好啦,按键消抖 ,数码管鬼影现象)


  1. void LedScan()   //六位数码管动态扫描
  2. {  
  3.           static unsigned char i=0;
  4.     P0 = 0xFF;   //显示消隐
  5.                 switch(i)       //每过1ms从低到高位刷新一个数码管
  6.                 {
  7.                         case 0:P2=0x01;i++; P0=        LedBuff[0]; break;
  8.                         case 1:P2=0x02;i++; P0=        LedBuff[1]; break;
  9.                         case 2:P2=0x04;i++; P0=        LedBuff[2]; break;
  10.                         case 3:P2=0x08;i++; P0=        LedBuff[3]; break;
  11.                         case 4:P2=0x10;i++; P0=        LedBuff[4]; break;
  12.                         case 5:P2=0x20;i=0; P0=        LedBuff[5]; break;
  13.                         default :break;
  14.                 }
  15. }
  16. void KeyScan()    //矩阵按键动态扫描
  17. {
  18.         unsigned char i;
  19.         static unsigned char keyout = 0;
  20.         static unsigned char keybuf[4][4] = {
  21.         {0xff,0xff,0xff,0xff},
  22.         {0xff,0xff,0xff,0xff},
  23.         {0xff,0xff,0xff,0xff},
  24.         {0xff,0xff,0xff,0xff},        
  25.         };
  26.               /******按键消抖***************/
  27.         keybuf[keyout][0] = (keybuf[keyout][0] <<1)|KEY_INT_1;
  28.         keybuf[keyout][1] = (keybuf[keyout][1] <<1)|KEY_INT_2;
  29.         keybuf[keyout][2] = (keybuf[keyout][2] <<1)|KEY_INT_3;
  30.         keybuf[keyout][3] = (keybuf[keyout][3] <<1)|KEY_INT_4;
  31.         for(i=0;i<4;i++)
  32.                 {
  33.                         if((keybuf[keyout][i] & 0x0F) == 0x00)
  34.                         {
  35.                                 KeySta[keyout][i] = 0;
  36.                         }
  37.                         else if ((keybuf[keyout][i] & 0x0F) == 0x0f)
  38.                         {
  39.                                 KeySta[keyout][i] = 1;
  40.                         }
  41.                         
  42.                 }
  43.           keyout++;
  44.           keyout=keyout & 0x03;
  45.                
  46.                 switch(keyout)    //扫描矩阵键盘
  47.                 {
  48.                         case 0: KEY_OUT_4 = 1;KEY_OUT_1 = 0;break;
  49.                         case 1: KEY_OUT_1 = 1;KEY_OUT_2 = 0;break;
  50.                         case 2: KEY_OUT_2 = 1;KEY_OUT_3 = 0;break;
  51.                         case 3: KEY_OUT_3 = 1;KEY_OUT_4 = 0;break;
  52.                         default:break;
  53.                 }
复制代码
全部资料51hei下载地址:
简单加法器.rar (70.2 KB, 下载次数: 108)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:701343 发表于 2020-5-18 15:56 | 只看该作者
不带仿真图吗?
回复

使用道具 举报

板凳
ID:711823 发表于 2020-5-21 10:26 | 只看该作者

(.pdsprj)文件在里面啊
回复

使用道具 举报

地板
ID:747667 发表于 2020-6-1 11:56 来自手机 | 只看该作者
没有proteus仿真图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表