找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机8*8矩阵灯程序

[复制链接]
跳转到指定楼层
楼主
ID:256768 发表于 2017-12-3 14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚才上传的是lcd1602,这个才是矩阵等8x8.
是一个矩阵等,采用的输入时直观矩阵。就是8x8矩阵。矩阵中有非零与零两种状态。
单片机源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>

  3. typedef unsigned char uchar;
  4. typedef unsigned int  uint;

  5. uchar bdata Lie_Wei;

  6. sbit p00 = Lie_Wei^0;
  7. sbit p01 = Lie_Wei^1;
  8. sbit p02 = Lie_Wei^2;
  9. sbit p03 = Lie_Wei^3;
  10. sbit p04 = Lie_Wei^4;
  11. sbit p05 = Lie_Wei^5;
  12. sbit p06 = Lie_Wei^6;
  13. sbit p07 = Lie_Wei^7;

  14. uchar Ju_Zhen[8][18]= {        "1 0 0 1 1 0 0 1 L",
  15.                                                 "0 0 0 1 1 0 0 0 L",
  16.                         "0 0 0 0 0 0 0 0 L",
  17.                         "1 0 0 0 0 0 0 1 L",
  18.                                              "1 0 0 0 0 0 0 1 L",
  19.                                             "1 1 0 0 0 0 1 1 L",
  20.                                             "1 1 1 0 0 1 1 1 L",
  21.                                             "1 1 1 1 1 1 1 1 L"                                         
  22.                                             };
  23.                       /*
  24.                         "1 1 1 1 1 1 1 1 L",
  25.                         "1 1 1 1 1 1 1 1 L",
  26.                         "1 1 1 1 1 1 1 1 L",
  27.                                              "1 1 1 1 1 1 1 1 L",
  28.                                             "1 1 1 1 1 1 1 1 L",
  29.                                             "1 1 1 1 1 1 1 1 L",
  30.                                             "1 1 1 1 1 1 1 1 L",
  31.                                             "1 1 1 1 1 1 1 1 L",
  32.                                         */

  33. sbit p34 = P3^4;
  34. sbit p35 = P3^5;
  35. sbit p36 = P3^6;



  36. void Yan_Shi(char i)
  37. {
  38.         char x=0;
  39.         for(;i>0;i--)
  40.         for(x=10;x>0;x--);
  41. }                  

  42. void Hang_Led(uchar Hang)
  43. {
  44.         char i;
  45.         p35 = 0;
  46.         for(i = 10*i; i<=8 ;i++)
  47.         {
  48.                 if(i == Hang)
  49.                 p34 = 1;       
  50.                 else p34 = 0;
  51.                 p36 = 1;
  52.                 _nop_();_nop_();_nop_();
  53.                 p36 = 0;
  54.         }         
  55. }


  56. void Lie_LED(uint GaoSiWei,uint DiSiWei)
  57. {       
  58.         p07 = (bit)(GaoSiWei%10000/1000);
  59.         p06 = (bit)(GaoSiWei%1000/100);
  60.         p05 = (bit)(GaoSiWei%100/10);
  61.         p04 = (bit)(GaoSiWei%10);
  62.         p03 = (bit)(DiSiWei%10000/1000);       
  63.         p02 = (bit)(DiSiWei%1000/100);
  64.         p01 = (bit)(DiSiWei%100/10);
  65.         p00 = (bit)(DiSiWei%10);       
  66. }
  67.                   

  68. void  LED_8x8(char Hang,uint GaoSiWei,uint DiSiWei,uchar Shi_HZ)
  69. {
  70.         Hang_Led(Hang);
  71.         Lie_LED(GaoSiWei,DiSiWei);
  72.         P0=0xff;
  73.         p35=1;
  74.         _nop_();_nop_();_nop_();
  75.         p35=0;       
  76.         P0 = Lie_Wei;
  77.         Yan_Shi(Shi_HZ);
  78. }

  79. void Ju_ZiFu(uchar Zhi_Zhen[8][18])
  80. {
  81.         uchar i;
  82.         for(i=0;i<8;i++)
  83.         {
  84.                 if(Zhi_Zhen[i][16]=='L')
  85.                 {       
  86.                         Hang_Led(i+1);               
  87.                         p07 = (bit)(Zhi_Zhen[i][0]-'0');
  88.                         p06 = (bit)(Zhi_Zhen[i][2]-'0');
  89.                         p05 = (bit)(Zhi_Zhen[i][4]-'0');
  90.                         p04 = (bit)(Zhi_Zhen[i][6]-'0');
  91.                         p03 = (bit)(Zhi_Zhen[i][8]-'0');       
  92.                         p02 = (bit)(Zhi_Zhen[i][10]-'0');
  93.                         p01 = (bit)(Zhi_Zhen[i][12]-'0');
  94.                         p00 = (bit)(Zhi_Zhen[i][14]-'0');
  95.                         P0=0xff;
  96.                         p35=1;
  97.                         _nop_();_nop_();_nop_();
  98.                         p35=0;       
  99.                         P0 = Lie_Wei;
  100.                         Yan_Shi(1);                               
  101.                 }       
  102.         }
  103. }

  104. void main()
  105. {         
  106.         P0 = 0xff;
  107.         p35 = 0;
  108.         p36 = 0;
  109.         Yan_Shi(10);
  110.          while(1)
  111.         {          uchar CiShu;
  112.             for(CiShu=180;CiShu>0;CiShu--)
  113.                 {
  114.                         Ju_ZiFu(Ju_Zhen);
  115. ……………………

  116. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
矩阵灯.rar (26.7 KB, 下载次数: 14)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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