Keil源程序下载:(使用64*32的点阵屏单元板显示)
https://static.assets-stash.eet-china.com/album/old-resources/2009/10/30/fadea464-ff50-4293-afda-fc71187573d6.rar
main函数如下:
/*****************用DS1302写得时钟程序(64*32上半屏显示)********************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#include"CODE.h"
#include"DS1302LED.H"
sbit R1=P2^4; //位定义
sbit R2=P2^5;
sbit CLK="P2"^6;
sbit STB="P2"^7;
uchar j; //数据变量定义
char temp;
void WriteByte(); //上半屏写一个字节数据函数
/*-------------------------------------------*/
void main()
{
Set_RTC(l_tmpdate1);//初始化时钟芯片
while(1)
{
time_date(); //时间处理
for(j=0;j<16;j++) //行扫描
{
temp=~table[l_tmpdisplay[0]][j]; //时
WriteByte();
temp=~table[l_tmpdisplay[1]][j];
WriteByte();
temp=~table[10][j]; //":"
WriteByte();
temp=~table[l_tmpdisplay[3]][j]; //分
WriteByte();
temp=~table[l_tmpdisplay[4]][j];
WriteByte();
temp=~table[10][j]; //":"
WriteByte();
temp=~table[l_tmpdisplay[6]][j]; //秒
WriteByte();
temp=~table[l_tmpdisplay[7]][j];
WriteByte();
P0=j; //放上面会错乱 消影
STB=0; //上升沿有效
STB=1;
delay(2);
}
}
}
void WriteByte() //上半屏写一个字节的数据
{
uchar k;
for(k=0;k<8;k++) //循环8次把编码传给锁存器
{
temp="temp"<<1;
R1=CY;
R2=1;
CLK="0"; //上升沿有效
CLK="1";
}
}
文章评论(0条评论)
登录后参与讨论