找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机按键控制8x8点阵Proteus仿真程序

[复制链接]
跳转到指定楼层
楼主
简易的8X8点阵,拿去
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. void delayms(unsigned int n);
  6. sbit KEY=P2^0;
  7. sbit KEY1=P2^1;
  8. sbit KEY2=P2^2;

  9. //添加取模记得定义数组数量
  10. uchar code M[11][8]=                                                                               
  11. {
  12.         {0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00},
  13.         {0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00},
  14.         {0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00},
  15.         {0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00},
  16.         {0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00},
  17.         {0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00},
  18.         {0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00},
  19.         {0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00},
  20.         {0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00},
  21.         {0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00},
  22.         {0x00,0x20,0x30,0x38,0x3c,0x3e,0x00,0x00}
  23. };

  24. uchar i,j;
  25. void main()
  26. {
  27.         P0 = 0xff;
  28.         P1 = 0xff;
  29.         P2 = 0xff;
  30.        
  31.         TMOD = 0x01;
  32.         TH0  = (65535-2000)/256;
  33.         TL0  = (65535-2000)%256;
  34.         IT0 = 1;
  35.         IE  = 0x83;
  36.         i   = 0xfc;                                                                        //开头修改这即可
  37.         while(1)
  38.         {
  39.                 if(!KEY)
  40.                 {
  41.                         delayms(100);
  42.                         while(!KEY)
  43.                         {
  44.                                          P0 = 0xff;
  45.                                         P1 = 0x80;
  46.                                         j = 0;
  47.                                         i = (i+1)%11;
  48.                         }
  49.                 }
  50.                 if(!KEY1)
  51.                 {
  52.                         delayms(100);
  53.                         while(!KEY1)
  54.                         {
  55.                                          P0 = 0xff;
  56.                                         P1 = 0x80;
  57.                                         j = 0;
  58.                                         i = (i+1)%11;
  59.                         }
  60.                 }
  61.                 if(!KEY2)
  62.                 {
  63.                         delayms(100);
  64.                         while(!KEY2)
  65.                         {
  66.                                          P0 = 0xff;
  67.                                         P1 = 0x80;
  68.                                         j = 0;
  69.                                         i = (i+1)%11;
  70.                         }
  71.                 }               
  72.         }
  73. }

  74. void Key_Down() interrupt 0                //中断
  75. {
  76.         P0 = 0xff;
  77.         P1 = 0x80;
  78.         j = 0;
  79.         i = (i+1)%11;
  80.         TR0 = 1;
  81. }

  82. void Show_Dot_Matrix() interrupt 1
  83. {
  84.         TH0  = (65535-2000)/256;
  85.         TL0  = (65535-2000)%256;
  86.         P1 = _crol_(P1,1);                                //循环左移
  87.         P0 = ~M[i][j];                                               
  88.         j=(j+1)%8;                                                               
  89. }
  90. void delayms(unsigned int n)
  91. {
  92.         unsigned int i,j;
  93.         for(j=n;j>0;j--)
  94.         for(i=112;i>0;i--);
  95. }
复制代码

仿真代码51hei附件下载:
8X8点阵.zip (56.46 KB, 下载次数: 38)

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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