单片机
返回首页

LCD1602液晶屏+DS1302时钟芯片的电子时钟

2012-08-04 来源:61ic

点击浏览下一页
 程序源代码下载地址:http://www.51hei.com/f/1320dsf.rar

#include
#define uchar unsigned char
#define uint unsigned int

uchar code tab1[]="DS1302";
uchar code tab2[]="Week-";
uchar code tab3[]="0123456789";
uchar xdw[13];

sbit SCK=P2^0;
sbit AB=P2^1;
sbit RS=P2^2;
sbit RW=P2^3;
sbit EN=P2^4;
sbit RST=P2^5;
sbit SCLK=P2^6;
sbit DS=P2^7;


void DS1302_xie_hs(uchar dat);
void DS1302_xie_1byte(uchar add,uchar tdat);
uchar DS1302_du_hs(void);
uchar DS1302_du_1byte(uchar add);
void LCM1602_xie_cmd_hs(uchar cmd);
void LCM1602_xie_dat_hs(uchar dat);
void display();
void dushuju();
void inti();
void delay(uint z);

void DS1302_xie_hs(uchar dat)
{
 uint i,num;
 num=dat;
 for(i=0;i<8;i++)
 {
  DS=(bit)(num&0x01);
  SCLK=1;
  SCLK=0;
  num>>=1;
 }
}

void DS1302_xie_1byte(uchar add,uchar tdat)
{
 RST=0;
 SCLK=0;
 RST=1;
 DS1302_xie_hs(add);
 DS1302_xie_hs(tdat);
 SCLK=1;
 RST=0;
}

uchar DS1302_du_hs(void)
{
 uchar i,num;
 for(i=0;i<8;i++)
 {
  num>>=1;
  if(DS)
  num|=0x80;
  SCLK=1;
  SCLK=0;
 }
 return(num);
}

uchar DS1302_du_1byte(uchar add)
{
 uchar tmp;
 RST=0;
 SCLK=0;
 RST=1;
 DS1302_xie_hs(add);
 tmp=DS1302_du_hs();
 SCLK=1;
 RST=0;
 return(tmp);
}

void LCM1602_xie_cmd_hs(uchar cmd)
{
 uchar i,num;
 RS=0;
 RW=0;
 EN=0;
 
 RS=0;
 RW=0;
 EN=1;
 num=cmd;
 for(i=0;i<8;i++)
 {
  AB=(bit)(num&0x01);
  SCK=0;
  SCK=1;
  num>>=1;
 }
 EN=0;
}
void LCM1602_xie_dat_hs(uchar dat)
{
 uchar i,num;
 RS=0;
 RW=0;
 EN=0;
 
 RS=1;
 RW=0;
 EN=1;
 num=dat;
 for(i=0;i<8;i++)
 {
  AB=(bit)(num&0x01);
  SCK=0;
  SCK=1;
  num>>=1;
 }
 EN=0;
}

void display()
{
 uchar i,j,tmp;

 LCM1602_xie_cmd_hs(0x80+0x08);
 for(i=0;i<3;i++)
 {
  for(j=0;j<2;j++)
  {
   LCM1602_xie_dat_hs(tab3[xdw[i*2+j]]);
   delay(2);
  }

 }
}

void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
 for(y=110;y>0;y--);
}

void inti()
{
 RS=0;
 RW=0;
 EN=0;
 SCLK=0;

 LCM1602_xie_cmd_hs(0x38);
 LCM1602_xie_cmd_hs(0x0c);
 LCM1602_xie_cmd_hs(0x06);

 DS1302_xie_1byte(0x8e,0x00);
 DS1302_xie_1byte(0x80,0x00);
 DS1302_xie_1byte(0x82,0x29);
 DS1302_xie_1byte(0x84,0x22);
 DS1302_xie_1byte(0x86,0x24);
 DS1302_xie_1byte(0x88,0x01);
 DS1302_xie_1byte(0x8a,0x02);
 DS1302_xie_1byte(0x8c,0x12);
 DS1302_xie_1byte(0x8e,0x80);
}

void dushuju()
{
uchar seg;
seg=DS1302_du_1byte(0x8d);
xdw[0]=seg>>4;
xdw[1]=seg&0x0f;

seg=DS1302_du_1byte(0x89);
xdw[2]=seg>>4;
xdw[3]=seg&0x0f;

seg=DS1302_du_1byte(0x87);
xdw[4]=seg>>4;
xdw[5]=seg&0x0f;

seg=DS1302_du_1byte(0x85);
xdw[6]=seg>>4;
xdw[7]=seg&0x0f;

seg=DS1302_du_1byte(0x83);
xdw[8]=seg>>4;
xdw[9]=seg&0x0f;

seg=DS1302_du_1byte(0x81);
xdw[10]=seg>>4;
xdw[11]=seg&0x0f;

seg=DS1302_du_1byte(0x8b);
xdw[12]=seg&0x0f;
}

void main()
{
 inti();
 while(1)
 {
  dushuju();
  display();
 }
}
进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

最新器件
精选电路图
  • IGBT模块通过控制门极阻断过电流

  • 运算放大器IC741的基本工作原理及在电路中的实现方式

  • 比较常见的功率整流器和滤波电路

  • 基于M66T旋律发​​生器的电路图解析

  • 基于CA3193的热电偶放大器电路

  • 基于TDA1554的立体声放大器电路

    相关电子头条文章