8*8LED点阵 第一行随便怎么亮都可以,
第二行怎么写都和第一行一样。
程序:
#include <reg52.h>
#include <intrins.h>
#define L1 P0
sbit ser=P3^4;
sbit rclk=P3^5;
sbit srclk=P3^6;
unsigned char code zimo1[8]={0x81,0x80,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char code zimo[8]={0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x0};
void OUT(void);
void delay(unsigned int j);
void HC(unsigned char hang);
void main()
{
unsigned char i,j;
while(1)
{
for(i=0;i<1;i++) //列扫描
{
for(j=0;j<8;j++)
{
L1=zimo1[7-j];
delay(1);
}
}
for(i=0;i<1;i++) //行扫描
{
for(j=0;j<8;j++)
{
HC(zimo[j]); //并入
OUT(); //串出
delay(1);
}
}
}
}
void delay(unsigned int j) //延时
{
unsigned char k;
for(;j>0;j--)
for(k=12;k>0;k--);
}
void HC(unsigned char hang)
{
unsigned char i;
for(i=0;i<8;i++)
{
srclk=0;
ser=(bit)(hang&0x80);
hang<<=1;
srclk=1;
}
}
void OUT(void)
{
rclk=0;
rclk=1;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
HC6800-ES V2.0.pdf 下载积分: 积分 -1 分
759.08 KB, 下载次数: 4, 下载积分: 积分 -1 分
自己想出来了 纠结了3星期
定义行扫描的时候定义域没弄好 该用INT
而且好像要先扫描列 不然会有别的地方有的暗
一周热门 更多>