桌面粗糙小助手
简介
基于DS1302时钟芯片+oled+stc89c52的桌面小玩具
简介:基于DS1302时钟芯片+oled+stc89c52的桌面小玩具开源协议
:GPL 3.0
描述
2.4硬件原理图
2.4.1单片机最小系统
单片机最小系统包括外部晶体震荡电路、复位电路和电源电路。如图2-4-1是单片机的最小系统。用STC89C52RC,它需要5V的供电系统,上图是使用USB口输出的5V直流直接供电的,从图中可以看出,供电电路在38引脚,通常也称为VCC或VDD,代表电源正极,16引脚接GND,代表电源负极。
图2-4-1 单片机最小系统
2.4.2 DS1302典型电路
DS1302是一种高性能23621、低功耗、带RAM的实时时钟电路TDA2507T,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5VMK005CL4.采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM(RAM(随机存取存储器)RAM -random access memory 随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储信息的不同,随机存储器又分为静态随机存储器(StaTIc RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。)数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。图2-4-2是它的典型电路
图2-4-2DS1302典型电路
2.4.3典型的LDO电路
AMS1117是一个低漏失电压调整器,它的稳压调整管是由一个PNP驱动的NPN管组成的,漏 失电压定义为:VDROP=VBE+VSAT。 AMS1117有固定和可调两个版本可用,输出电压可以是:1.2V,1.5V,1.8V,2.5V,2.85V, 3.0V,3.3V,和5.0V。片内过热切断电路提供了过载和过热保护,以防环境温度造成过高的结 温。 为了确保AMS1117的稳定性,对可调电压版本,输出需要连接一个至少22μF的钽电容。对于固 定电压版本,可采用更小的电容,具体可以根据实际应用确定。通常,线性调整器的稳定性随着输出电流增加而降低。
图2-4-3 LDO典型电路
2.4.4TP4057锂电池充电电路
TP4057是一款专门为锂离子电池设计的线性充电器,利用芯片内部的功率MOSFET对电池进行恒流/恒压充电。充电电流可以由外部电阻编程决定,最大充电电流可以达到500mA。TP4057拥有两个漏极开路输出的状态指示输出端,充电状态指示端CHRG和电池充电完成指示输出端STDBY。芯片内部的功率管电路在芯片的结温超过135℃时自动降低充电电流,这个功能可以使用户最大限度利用芯片充电,不用担心芯片过热而损坏芯片或者外部元器件。
图2-4-4 tp4057典型电路
三、功能设计
3.1 系统设计
按键用于控制和用户交互模式。当单片机检测某个引脚电平为低电平时,触发执行与之相对应的处理函数,设计了开机动画、主页面、二级菜单页面和退出页面。二级菜单页面包括改变时间和日期、设置闹钟触发蜂鸣器、开机动画的显示。
3.2软件流程
图3-2-1 main函数执行流程
在main函数里完成了硬件的初始化包括IIC、字库、OLED、按键函数 和WHILE( )循环。当while执行按键扫描时会检测按键的电平,当为低电平的时候就可以触发case匹配条件并且进入P_K程序锁。此时P_K的值为true,while( )为死循环,在当前while( )执行按键扫描。当某个接口进入函数P_K-while( )循环,就执行此函数。 图3-2-2是P_K-while( )循环的执行流程。
图3-2-2 P_K执行流程
3.2.1开机动画显示
编写OLED操作接口函数,再将图片取模取模工具有lmage2Lcd2.9和PCtoLCD2002软件,先将图片转化为像素点阵,然后再去取模;取模格式为C51类型,得到图片数组。然后编写OLED图片接口函数。
3.2.2 DS1302设置
主要工作原理是移位寄存器,控制逻辑,晶振,时钟和 RAM。在进行任何数据传输时, 必须被制高电平(注 意虽然将它置为高电 平,内部时钟还是在 晶振作用下走时的, 此时,允许外部读写 数据),在每个 SCLK 上 升 沿 时 数 据 被 输 入,下降沿时数据被 输出,一次只能读写 一位,适度还是写需 要通过串行输入控制 指令来实现(也是一 个字节),通过 8 个脉 冲便可读取一个字节 从而实现串行输入与 输出。最初通过 8 个 时钟周期载入控制字 节到移位寄存器。如果控制指令选择的是单字节模式,连续的 8 个时钟脉冲可以进行 8 位数据的写和 8 位数据的读 操作,SCLK 时钟的上升沿时,数据被写入 DS1302,SCLK 脉冲的下降沿读出 DS1302 的数据。8 个脉冲便可读写一个字节;底层逻辑了解完后就根据手册写出DS1302的驱动函数,和操作函数
评论