找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2576|回复: 4
收起左侧

51单片机矩阵键盘数码管显示 Proteus仿真代码 数码管显示不完整

[复制链接]
ID:974141 发表于 2021-10-23 22:06 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif

单片机源程序如下:

  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. void delay1(int x){
  5.         uint i,j;
  6.         for(i=0;i<123;i++)
  7.                 for(j=0;j<x;j++);
  8. }

  9. //uchar led[]={0x00,0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0X77,0X7C,0X39,0X5e,0X79,0X71};
  10. uchar led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0X71 };


  11. unsigned int num[]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,
  12.                                         0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};

  13. unsigned char hang[]={0xef,0xdf,0xbf,0x7f};   
  14.         uchar key_scan(){  
  15.                 uchar a,i,n;
  16.                 for(a=0;a<4;a++){         
  17.                         P1=hang[a];     
  18.                         if(P1!=hang[a]){                  
  19.                                 delay1(100);
  20.                                 if(P1!=hang[a]){                        
  21.                                         for(i=0;i<4;i++){  
  22.                                                 if(P1==num[4*a+i]){                                                
  23.                                                         n=4*a+i+1;  
  24.                                                 }               
  25.                                         }
  26.                                 }
  27.                         }
  28.         }
  29.         return n;  
  30. }

  31. main()      
  32. {
  33.         P2=0XFE;
  34.         while(1)
  35.         {
  36.                 P0=led[key_scan()];
  37.         }
  38. }
  39.         
  40.         
复制代码

Proteus7.5版本的dsn工程文件下载:
51单片机_矩阵键盘.zip (66.34 KB, 下载次数: 79)

评分

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

查看全部评分

回复

使用道具 举报

ID:767282 发表于 2022-6-15 12:52 | 显示全部楼层
请问为什么我的仿真数码管显示不完整啊
回复

使用道具 举报

ID:1082543 发表于 2023-6-7 23:47 | 显示全部楼层
19863998098 发表于 2022-6-15 12:52
请问为什么我的仿真数码管显示不完整啊

可以检查一下电阻
回复

使用道具 举报

ID:332444 发表于 2023-6-8 16:38 | 显示全部楼层
编号数组={119,183,215,231,123,187,219,235,125,189,221,237,126,190,222,238}这样就完成了对矩阵键盘的重编正好用上前些天写的对无序数组四分快速查找算法.
回复

使用道具 举报

ID:332444 发表于 2023-6-9 10:18 | 显示全部楼层
依据不同电路图重新排列
1.png
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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