原创 (原创)点阵屏显示DS1302写得时钟程序(64*32上半屏显示)

2009-10-30 16:33 6270 6 6 分类: MCU/ 嵌入式

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";   
  } 
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条