资源简介
也是在网上看到的DS3231代码,使用的0.96OLED【屏幕】,不过代码仅仅是可以正常使用,调节按键,还没来得及修改,IIC驱动还有OLED驱动都在相应的H文件里面;
代码片段和文件信息
#include “reg51.h“
#include “intrins.h“
#include “oled.h“
#include “DC3231.h“
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define u8 unsigned char
#define u32 unsigned int
#define OLED_CMD 0 //写命令
#define OLED_DATA 1 //写数据
#define OLED_MODE 0
uchar key1;
uchar sec min hour day date month yearDtemp;
//------------------------------------------------------------------------
void DS3231_Init(void)
{
uchar k;
P6=k=IIC_single_byte_read(0x02);
k|=0x20;
P7=k;
IIC_single_byte_write(k0x02); //转换12小时制 第六位置H = 0100 0000
//P7=IIC_single_byte_read(0x02);
//P7=~P7;
}
//--------------------------------------------------------------------------
uchar BCD2HEX(uchar val) //BCD转换为Byte
{
return ((val>>4)*10)+(val&0x0f);
}
//--------------------------------------------------------------------------
uchar B_BCD(uchar val)//Byte码转换为BCD码
{
return (((val%100)/10)<<4)|(val%10);
}
//--------------------------------------------------------------------------
void Readtime()
{
uchar temp;
temp=IIC_single_byte_read(0x00);//秒
sec=(int)BCD2HEX(temp);
//sec=2;
temp=IIC_single_byte_read(0x01);//分
min=BCD2HEX(temp);
temp=IIC_single_byte_read(0x02); //时
//temp&=0x3F;
hour=BCD2HEX(temp);
day=IIC_single_byte_read(0x03);//星期
temp=IIC_single_byte_read(0x04); //日
date=BCD2HEX(temp);
temp=IIC_single_byte_read(0x05); //月
month=BCD2HEX(temp);
temp=IIC_single_byte_read(0x06); //年
year=BCD2HEX(temp);
Dtemp=IIC_single_byte_read(0x11);//温度
}
//-------------------------------------------------------------------
void Showtime()
{
disp16(002); //年的千位
disp16(800); //年的百位
OLED_Set_Pos(341);
OLED_WR_Byte(0x011); //由上至下二进制低至高位
OLED_WR_Byte(0x011); //由上至下二进制低至高位
OLED_WR_Byte(0x011); //由上至下二进制低至高位
OLED_WR_Byte(0x011); //由上至下二进制低至高位
/////////////////////////////////////////////////////////////
OLED_Set_Pos(591);
OLED_WR_Byte(0x011); //由上至下二进制低至高位
OLED_WR_Byte(0x011); //由上至下二进制低至高位
OLED_WR_Byte(0x011); //由上至下二进制低至高位
OLED_WR_Byte(0x011); //由上至下二进制低至高位
OLED_WR_Byte(0x011); //由上至下二进制低至高位
////////////////////////////////////////////////////////////
OLED_Set_Pos(394);
OLED_WR_Byte(0x181);
OLED_WR_Byte(0x3C1);
OLED_WR_Byte(0x3C1);
OLED_WR_Byte(0x181);
OLED_Set_Pos(395);
OLED_WR_Byte(0x601);
OLED_WR_Byte(0xF01);
OLED_WR_Byte(0xF01);
OLED_WR_Byte(0x601);
//////////////////////////////////////////////////////////////
OLED_Set_Pos(854);
OLED_WR_Byte(0x181);
OLED_WR_Byte(0x3C1);
OLED_WR_Byte(0x3C1);
OLED_WR_Byte(0x181);
OLED_Set_Pos(855);
OLED_WR_Byte(0x601);
OLED_WR_Byte(0xF01);
OLED_WR_Byte(0xF01);
OLED_WR_Byte(0x601);
Readtime();
disp32(933sec/10); //秒的十位
disp32(1113sec%10); //秒的个位
disp32(463min/10); //分的十位
disp32(643min%10); //分的个位
disp32(03hour/10); //时的十位
disp32(183hour%10); //时的个位
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 277 2018-11-16 14:36 DS3231+12864\DC3231.H
文件 61269 2018-11-16 14:36 DS3231+12864\DS3231+12864
文件 2070 2018-11-16 14:36 DS3231+12864\DS3231+12864.build_log.htm
文件 14738 2018-11-16 14:36 DS3231+12864\DS3231+12864.hex
文件 95 2018-11-16 14:36 DS3231+12864\DS3231+12864.lnp
文件 38791 2018-11-16 14:36 DS3231+12864\DS3231+12864.M51
....... 72591 2018-11-16 14:36 DS3231+12864\DS3231+12864.uvgui.Administrator
....... 6517 2018-11-16 14:36 DS3231+12864\DS3231+12864.uvopt
....... 14159 2018-11-16 14:36 DS3231+12864\DS3231+12864.uvproj
文件 3444 2018-11-16 14:34 DS3231+12864\ds3231IIC.C
文件 5719 2018-11-16 14:36 DS3231+12864\ds3231IIC.LST
文件 11195 2018-11-16 14:36 DS3231+12864\ds3231IIC.OBJ
文件 8204 2018-11-16 14:35 DS3231+12864\main.c
文件 14309 2018-11-16 14:36 DS3231+12864\main.LST
文件 25435 2018-11-16 14:36 DS3231+12864\main.OBJ
文件 9799 2018-11-16 14:28 DS3231+12864\oled.c
文件 1184 2018-11-16 14:28 DS3231+12864\oled.h
文件 14169 2018-11-16 14:36 DS3231+12864\oled.LST
文件 32902 2018-11-16 14:36 DS3231+12864\oled.OBJ
文件 7876 2018-11-16 14:14 DS3231+12864\oledfont.h
文件 6376 2009-05-07 14:37 DS3231+12864\STARTUP.A51
文件 14048 2018-11-16 14:36 DS3231+12864\STARTUP.LST
文件 749 2018-11-16 14:36 DS3231+12864\STARTUP.OBJ
目录 0 2018-11-16 14:36 DS3231+12864
----------- --------- ---------- ----- ----
365916 24
相关资源
- 股票撮合系统
- 华科课设 空气质量监测系统
- 计算法和查表法实现的CRC16校验码生成
- 图基本操作的编程实现源码
- VC-easyx绘图游戏简易教程
- 中颖单片机SH79F3283P例程
- 二叉树需要的的5个基本操作运算
- 线程安全型队列的实现
- 基于ZigBee + HXD019D 的万能红外转发器
- acllib.rar
- 单词处理程序
- 数模转换-DAC124s085
- C Primer Plus(第五版)中文版编程练习
- 多线程实现双向链表增删改
- 稀疏矩阵的十字链表表示方法:矩阵
- 串的基本操作定长顺序存储表示:初
- 在LPC2368上实现的FFT程序功率
- 基于单片机的串口多机通信6机
- 流水灯实验报告
- 数据结构与算法教学大纲程序代码
- 汽车控制系统
- GPS公交自动报站
- 三角函数包括反三角函数不调用库实
- RC4 加密算法 C演示代码
- STC12C2052AD的参考例程
- Malloc和mfree函数的实现原理
- ledkey.dll simboard.dll
- 51核心 自制鼠标 PS2协议 PAN3401光学芯
- Lsd基于TCP实现聊天系统
- 广工数据结构anyview2019最新完整参考答
评论
共有 条评论