• 大小: 77KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: 其他
  • 标签: 点阵  

资源简介

通过设置好的时间,自动运行程序,并实时显示年份、月份、时间,还实行广告的流动……

资源截图

代码片段和文件信息

/*****************************************************
       4字LED点阵屏+DS1302万年历电子钟 C 程序【改模对换/反显】
******************************************************
声明:
     本程序中DS1302读写部分是直接引用网上网友提供的共享程序,
  本程序供大家学习之用,用勿用于商业用途。尊重作者版权。
 
 编写:邓椿薪
 时间:2006年6月9日 晚
 邮箱:love2151@xinhuanet.com
 网址:www.89s51diy.com
*******************************************************

 DS1302 接线图

         Vcc2  CLK I/O  /RST 
           
            |   |   |   |
           -------------------
          | 8   7   6   5  |
          |   DS1302       |
          |                |
          | 1   2   3   4  |
           -------------------
            |   |   |   |
         VCC1           GND

1 脚接+5V    2,3脚32768HZ晶振  4脚接地  5脚接S51的P02 6脚接S51的P01 7接S51的P00
8脚接后备电源,可以接老计算机主板上的3.6V电池,也可以通过二级管隔离接一个大容量电解电容
电压在2.5V以上即可维持


595连级输出数据,138行驱动。*/



#include 
#define uchar unsigned char
#define uint unsigned int
#define light 3                        //定义亮度
uchar code hanzi[];     //汉字字模

uchar code timer[12][16]; //0~9数字
uchar code sw[];                     //138驱动数据

void Show_word();                      //待机显示按三秒间隔分别显示年、月日、星期、时分秒。
void Show_pass();            //不显示一个字
void Send_data(unsigned char *d);      /*串口发送一行*/



/******************************************/
sbit resget=P0^2; //时钟复位
sbit key_moda=P0^3; //模式转换
sbit key_up=P0^4; //时钟加
sbit key_Down=P0^5; //时钟减

sbit T_CLK=P2^3;     //DS1302引脚连接
sbit T_IO =P2^2;
sbit T_RST=P2^1;

sbit ACC0=ACC^0;           //1bit数据存储位
sbit ACC7=ACC^7;

sbit STR=P1^7;              //锁存  
sbit CLK=P3^1;             //时钟  
sbit Data= P3^0;            //数据  
sbit E=P1^4;   


uchar starts_time[7]={0x000x100x220x110x060x070x06};  //初始化后设置
uchar MoveSpeedFlickerlineSecCentHourYearMonthDayWeek;  //时间变量
uchar abfhmsecidx;           //标志计数器 a为自动转换显示时间,b为手动与自动标志
uint zimuo;                    //字模计数器
uchar BUFF[10];            //缓存

void   RTInputByte(uchar);         /* 输入 1Byte */
uchar  RTOutputByte(void);         /* 输出 1Byte */
void   W1302(uchar uchar);        // 向DS1302写入一个字节
uchar  R1302(uchar);               // 从DS1302读出一个字节
void   Set1302(uchar *);           // 写DS1302时间
void   du1302();                   // 读时间  
void   DelayMs(void);              // 延时
void   Set(ucharuchar );          // 变量调整
void   in_data();    // 调整移动数据
void   rxd_data();    // 串口发送移动数据


/*主函数*/
void main()
{
   Move=0;
   zimuo=0;
   TMOD=0x01; //16位定时
   TH0=0x3c;    //25ms晶振为24M
   TL0=0xb0;
   EA=1;
   TR0=1;
   ET0=1; 
   SCON=0;             //初始化串口为工作方式0(同步通信方式,TxD输出同步脉冲)

   while(zimuo<512)
    { 
 while(Move<16)              //数据移位。
       {
     for(Speed=0;Speed<10;Speed++)       //移动速度
      {
    for(line=0;line<16;line++)
  {
         in_data();      //调整移动数据
             rxd_data();
                      P1=sw[line];       
                        
STR=1;STR=0

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-06-04 00:06  4字屏翻页万年历\
     文件      181498  2008-07-16 12:43  4字屏翻页万年历\4字时间显示.DSN
     文件        1364  2011-06-04 00:03  4字屏翻页万年历\4字时间显示.PWI
     文件      181498  2008-07-16 12:41  4字屏翻页万年历\Last Loaded 4字时间显示.DBK
     文件       29346  2008-07-16 12:35  4字屏翻页万年历\zsp.c
     文件       11349  2008-07-16 12:35  4字屏翻页万年历\zsp.hex

评论

共有 条评论