云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于单片机的万年历毕业设计论文

基于单片机的万年历毕业设计论文

  • 62 次阅读
  • 3 次下载
  • 2025/6/23 17:32:09

DS1302_GetTime(&sys);shownum(7,6,sys.Second,0,num); Beep_Hour();

DS1302_GetTime(&sys);shownum(7,6,sys.Second,0,num); } } }

DS1302程序

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

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

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); } void DS1302_GetTime(SYSTEMTIME *Time) 获取时钟芯片的时钟数据到自定义的结构型数组 {

unsigned char ReadValue;

ReadValue = Read1302(DS1302_SECOND);

Time->Second = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_MINUTE);

Time->Minute = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_HOUR);

Time->Hour = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_DAY);

Time->Day = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_WEEK);

Time->Week = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_MONTH);

Time->Month = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_YEAR);

Time->Year = ((ReadValue&0xf0)>>4)*10 + (ReadValue&0x0F); } void Initial_DS1302(void) 时钟芯片初始化 {

unsigned char Second=Read1302(DS1302_SECOND); if(Second&0x80) 判断时钟芯片是否关闭 {

Write1302(0x8e,0x00); 写入允许 _nop_(); _nop_(); _nop_();

Write1302(0x8c,0x09); 写入年 _nop_(); _nop_(); _nop_();

Write1302(0x88,0x05); 写入月 Write1302(0x86,0x05); 写入日 Write1302(0x8a,0x02); 星期 Write1302(0x84,0x23); 时 Write1302(0x82,0x59); 写入分 Write1302(0x80,0x30); 写入秒 Write1302(0x90,0xae); 开启充电 _nop_(); _nop_(); _nop_(); Write1302(0x8e,0x80); 禁止写入 } }

LCD12864程序

#include #define uchar unsigned char #define uint unsigned int sbit CS1=P1^4; sbit CS2=P1^5;

sbit RS=P0^5; sbit RW=P0^6; sbit EN=P0^7; sbit RST=P1^6; #define DataPort P3

void delay(unsigned long v) {

while(v!=0)v--; } void lcd_busy(void)

{

RS=0;RW=1;DataPort=0xff; while(1) {

EN=1;

if(DataPort<0x80) break; EN=0;

} EN=0; }

void wcode(uchar c,uchar csl,uchar csr) {

CS1=csl; CS2=csr;

lcd_busy(); RS=0; RW=0; DataPort=c; EN=1; EN=0; }

void wdata(uchar c,uchar csl,uchar csr) {

CS1=csl; CS2=csr;

lcd_busy(); RS=1; RW=0;

DataPort=c; EN=1; EN=0; }

void set_xy(uchar x,uchar y) {

x=x+0x40; y=y+0xb8; wcode(x,1,1); wcode(y,1,1); } void lw(uchar x, uchar y, uchar dd) {

if(x>=64) {

set_xy(x-64,y);

wdata(dd,0,1);} else {

set_xy(x,y); wdata(dd,1,0); } } void set_startline(uchar i) {

i=0xc0+i; wcode(i,1,1); } void dison_off(uchar o)

{ o=o+0x3e; wcode(o,1,1); } void reset() { RST=0; delay(20); RST=1; delay(20); } void lcd_init(void) {

uchar x,y; reset(); set_startline(0); dison_off(0); for(y=0;y<8;y++) {

for(x=0;x<128;x++)lw(x,y,0); }

dison_off(1); }

void display(uchar xx, uchar yy, uchar n, uchar fb,uchar *32]; if(fb)dx=255-dx; lw(xx*8+i,yy,dx); dx=*32];

if(fb)dx=255-dx; lw(xx*8+i,yy+1,dx); }

}

void shownum(uchar xx,uchar yy,uchar n,uchar fb,uchar num[]) 8*16点阵

{

uchar i,dx; for(i=0;i<8;i++) {

dx=num[2*i+n*16]; if(fb)dx=255-dx; lw(xx*8+i,yy,dx); dx=num[(2*i+1)+n*16]; if(fb)dx=255-dx; lw(xx*8+i,yy+1,dx); } }

void jiemian() 界面,显示固定字符 {

shownum(num); 2 shownum(num); 0 display(ch1616); 年 display(ch1616); 闰年 display(ch1616); ℃

display(ch1616); 阳历,月 display(ch1616); 阳历,日 display(ch1616); 月,农历 shownum(num); : 定时报警 display(ch1616); 星 display(ch1616); 期

shownum(num); : 时分 shownum(num); : 分秒 }

void diswendu() 温度显示 {

ReadTemp();

shownum(12,0,temp_value10,0,num); shownum(13,0,temp_value,0,num); }

搜索更多关于: 基于单片机的万年历毕业设计论文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

DS1302_GetTime(&sys);shownum(7,6,sys.Second,0,num); Beep_Hour(); DS1302_GetTime(&sys);shownum(7,6,sys.Second,0,num); } } } DS1302程序 #define uint unsigned int #define uchar unsigned char #include

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com