matrix-8*8电子屏 红色上为列下为行。其他颜色上为行,下为列。这一点要注意。
所有点,行低电平,列高电平时才会亮。
P0口输出时一定要接上拉电阻。
仿真图如下:
8*8点阵
暂时还没写到按键控制,只有简单的几个显示小程序,重点是研究8*8的点亮方式。
单片机程序如下:
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
- uchar code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- void delay (uint x)
- {
- uint i,j;
- for (i=x;i>0;i--)
- for(j=110;j>0;j--);
- }
- void main (void)
- {
- uint i,j;
- while(1)
- {
- for(i=0;i<3;i++)
- { for (j=0;j<8;j++)
- {
- P0=taba[i];
- P3=0xff;
- delay (100);
- }
- }
- for (i=0;i<3;i++)
- {
- for (j=0;j<8;j++)
- {
- P0=taba[7-i];
- P3=0xff;
- delay (100);
- }
- }
- for(j=0;j<3;j++)
- {
- for(i=0;i<8;i++)
- {
- P0=0x00;
- P3=tabb[7-i];
- delay(100);
- }
- }
- for(j=0;j<3;j++)
- {
- for(i=0;i<8;i++)
- {
- P0=0x00;
- P3=tabb[i];
- delay(100);
- }
- }
- }
- }
复制代码
|