高级会员
主题
帖子
积分158
阅读权限30
注册时间2017-7-6
最后登录1970-1-1
在线时间 小时
|
楼主 |
发表于 2017-7-17 13:55
|
显示全部楼层
我把延时调到10个毫秒,看到的效果就是从右往左,大概的轮廓就是每个字体往下陷一行显示。这个应该是和程序有关系,因为我试过控制卡,能正常显示,接线方式一样。
//数据串行输入(列显控制)
//入口参数:数据数组
void SerialPut(u8 dat)
{
u16 m;
for(m=0;m<8;m++)
{
if(dat & 0x80) R=1; //串行数据输入
else R=0;
CLK=0;
delay_us(2);
CLK=1;
dat=dat<<1; //数据左移
}
}
//行显控制
//入口参数:扫描行数
//入口参数0/1/2/3 代表行扫描13,9,5,1/14,10,6,2/15,11,7,3/16,12,8,4的1/4行
void Scan(u8 temp)
{
EN=1; //使能
STB=1;
STB=0; //开始移位
ALine=0x01 & temp;
BLine=0x01 &(temp>>1);
}
void Show_Time(unsigned char i)
{
u8 l;
for(l=0;l<4;l++) //循环扫描1/4行
{
SerialPut(Num[3*4+l]);
SerialPut(Num[2*4+l]);
SerialPut(Num[1*4+l]);
SerialPut(Num[0*4+l]);
Scan(l);
}
}
通过传递“i”参数给Show_Time函数,能在屏的最右端显示0~9的跳动,左边3位跟着跳动,显示情况是字体残缺,是不是行列搭配出现问题,程序附上了。
电路图在附件上,这资料送给大家把~~~
|
|