基于利用时钟芯片DS1302实现万年历,1602LCD显示电子表 - 图文(3)

2019-04-14 12:00

LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显

示,5*7点阵 标 动 }

//液晶字符输入的位置************************ void GotoXY(unsigned char x, unsigned char y) { }

//将字符输出到液晶显示 void Print(unsigned char *str) {

if(y==0)

LCD_Write(LCD_COMMAND,0x80|x);

LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏

LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不LCD_Write(LCD_COMMAND,0x38);

LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光

if(y==1)

LCD_Write(LCD_COMMAND,0x80|(x-0x40));

}

while(*str!='\\0') { }

LCD_Write(LCD_DATA,*str); str++;

/***********DS1302时钟部分子程序******************/ typedef struct __SYSTEMTIME__ {

unsigned char Second; unsigned char Minute; unsigned char Hour; unsigned char Week; unsigned char Day; unsigned char Month; unsigned char Year;

unsigned char DateString[11]; unsigned char TimeString[9];

//定义的时间类型

}SYSTEMTIME;

SYSTEMTIME CurrentTime;

#define AM(X) X

#define PM(X) (X+12)

// 转成24小时制

#define DS1302_SECOND 0x80 //时钟芯片的寄存器位置,存放时间 #define DS1302_MINUTE 0x82 #define DS1302_HOUR #define DS1302_WEEK #define DS1302_DAY

0x84 0x8A

0x86

#define DS1302_MONTH 0x88 #define DS1302_YEAR

void DS1302InputByte(unsigned char d) //实时时钟写入一字节(内部函数) {

unsigned char i; ACC = d; for(i=8; i>0; i--) {

0x8C

DS1302_IO = ACC0; //相当于汇编中的 RRC DS1302_CLK = 1; DS1302_CLK = 0; ACC = ACC >> 1; } }

unsigned char DS1302OutputByte(void) //实时时钟读取一字节(内部函数) {

unsigned char i; for(i=8; i>0; i--) {

ACC = ACC >>1; ACC7 = DS1302_IO; DS1302_CLK = 1; DS1302_CLK = 0; }

return(ACC); }

void Write1302(unsigned char ucAddr, unsigned char ucDa) DS1302地址, ucData: 要写的数据

//ucAddr:

//相当于汇编中的 RRC

{

DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1;

DS1302InputByte(ucAddr); // 地址,命令 DS1302InputByte(ucDa); // 写1Byte数据 DS1302_CLK = 1; DS1302_RST = 0; }

unsigned char Read1302(unsigned char ucAddr) //读取DS1302某地址的数据 {

unsigned char ucData; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1;

DS1302InputByte(ucAddr|0x01); // 地址,命令 ucData = DS1302OutputByte(); // 读1Byte数据 DS1302_CLK = 1; DS1302_RST = 0; return(ucData);


基于利用时钟芯片DS1302实现万年历,1602LCD显示电子表 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:遵义市畜牧渔业雪凝灾害情况调查报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: