刚才上传的是lcd1602,这个才是矩阵等8x8.
是一个矩阵等,采用的输入时直观矩阵。就是8x8矩阵。矩阵中有非零与零两种状态。
单片机源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- typedef unsigned char uchar;
- typedef unsigned int uint;
- uchar bdata Lie_Wei;
- sbit p00 = Lie_Wei^0;
- sbit p01 = Lie_Wei^1;
- sbit p02 = Lie_Wei^2;
- sbit p03 = Lie_Wei^3;
- sbit p04 = Lie_Wei^4;
- sbit p05 = Lie_Wei^5;
- sbit p06 = Lie_Wei^6;
- sbit p07 = Lie_Wei^7;
- uchar Ju_Zhen[8][18]= { "1 0 0 1 1 0 0 1 L",
- "0 0 0 1 1 0 0 0 L",
- "0 0 0 0 0 0 0 0 L",
- "1 0 0 0 0 0 0 1 L",
- "1 0 0 0 0 0 0 1 L",
- "1 1 0 0 0 0 1 1 L",
- "1 1 1 0 0 1 1 1 L",
- "1 1 1 1 1 1 1 1 L"
- };
- /*
- "1 1 1 1 1 1 1 1 L",
- "1 1 1 1 1 1 1 1 L",
- "1 1 1 1 1 1 1 1 L",
- "1 1 1 1 1 1 1 1 L",
- "1 1 1 1 1 1 1 1 L",
- "1 1 1 1 1 1 1 1 L",
- "1 1 1 1 1 1 1 1 L",
- "1 1 1 1 1 1 1 1 L",
- */
- sbit p34 = P3^4;
- sbit p35 = P3^5;
- sbit p36 = P3^6;
- void Yan_Shi(char i)
- {
- char x=0;
- for(;i>0;i--)
- for(x=10;x>0;x--);
- }
- void Hang_Led(uchar Hang)
- {
- char i;
- p35 = 0;
- for(i = 10*i; i<=8 ;i++)
- {
- if(i == Hang)
- p34 = 1;
- else p34 = 0;
- p36 = 1;
- _nop_();_nop_();_nop_();
- p36 = 0;
- }
- }
- void Lie_LED(uint GaoSiWei,uint DiSiWei)
- {
- p07 = (bit)(GaoSiWei%10000/1000);
- p06 = (bit)(GaoSiWei%1000/100);
- p05 = (bit)(GaoSiWei%100/10);
- p04 = (bit)(GaoSiWei%10);
- p03 = (bit)(DiSiWei%10000/1000);
- p02 = (bit)(DiSiWei%1000/100);
- p01 = (bit)(DiSiWei%100/10);
- p00 = (bit)(DiSiWei%10);
- }
-
- void LED_8x8(char Hang,uint GaoSiWei,uint DiSiWei,uchar Shi_HZ)
- {
- Hang_Led(Hang);
- Lie_LED(GaoSiWei,DiSiWei);
- P0=0xff;
- p35=1;
- _nop_();_nop_();_nop_();
- p35=0;
- P0 = Lie_Wei;
- Yan_Shi(Shi_HZ);
- }
- void Ju_ZiFu(uchar Zhi_Zhen[8][18])
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- if(Zhi_Zhen[i][16]=='L')
- {
- Hang_Led(i+1);
- p07 = (bit)(Zhi_Zhen[i][0]-'0');
- p06 = (bit)(Zhi_Zhen[i][2]-'0');
- p05 = (bit)(Zhi_Zhen[i][4]-'0');
- p04 = (bit)(Zhi_Zhen[i][6]-'0');
- p03 = (bit)(Zhi_Zhen[i][8]-'0');
- p02 = (bit)(Zhi_Zhen[i][10]-'0');
- p01 = (bit)(Zhi_Zhen[i][12]-'0');
- p00 = (bit)(Zhi_Zhen[i][14]-'0');
- P0=0xff;
- p35=1;
- _nop_();_nop_();_nop_();
- p35=0;
- P0 = Lie_Wei;
- Yan_Shi(1);
- }
- }
- }
- void main()
- {
- P0 = 0xff;
- p35 = 0;
- p36 = 0;
- Yan_Shi(10);
- while(1)
- { uchar CiShu;
- for(CiShu=180;CiShu>0;CiShu--)
- {
- Ju_ZiFu(Ju_Zhen);
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
矩阵灯.rar
(26.7 KB, 下载次数: 14)
|