标题: STC12c5a60s2单片机ds1302+0.96寸oled显示程序 万能板叠起来制作的 [打印本页]

作者: 灵魂9527    时间: 2022-4-3 17:19
标题: STC12c5a60s2单片机ds1302+0.96寸oled显示程序 万能板叠起来制作的
下层背面

11.电路图如下



12.本来打算用type-c供电的,后面发现显示屏一直不亮,一度怀疑是我程序问题,排除了很多因素,因为稳压我用的是78l05
后面查了78L05数据手册才发现芯片要有1.7v以上压差才能有5V输出,所以我暂时用7V的电池供电,以后再改善一下


单片机源程序如下:
#include <reg51.h>                           
#include "delay.h"
#include "oledfont.h"
#include "bmp.h"
#include "oled.h"
#include "ds1302.h"



#define uchar unsigned char            
#define uint unsigned int        



//主函数
void main()
{
  TMOD=0x11;       //指定定时/计数器的工作方式为3
        TH0=0;           //定时器T0的高四位=0
        TL0=0;           //定时器T0的低四位=0
        EA=1;            //开总中断
        ET0=1;           //允许T0中断
        TR0=1;           //开启中断,启动定时器

        OLED_Init() ;     //液晶屏初始化子函数
        OLED_ColorTurn(0);  //0正常显示,1 反色显示
        OLED_DisplayTurn(0);  //0正常显示 1 屏幕翻转显示
        //welcome0();  //调用欢迎信息1
        ds1302_init();   //DS1302时钟的初始化子函数
        led=1;
        n=0;
  while(1)
{

    key();



}
}

void timer0() interrupt 1  //取得并显示日历和时间
{           

  sec  = BCD(read_1302(0x81));//读取1302的秒数据并转换成十进制数
  min  = BCD(read_1302(0x83));
  hour = BCD(read_1302(0x85));
  day  = BCD(read_1302(0x87));
  mouth= BCD(read_1302(0x89));
  year = BCD(read_1302(0x8d));
  week = BCD(read_1302(0x8b));


  OLED_ShowNum(0,0,20,2,16);//  显示20
        OLED_ShowNum(16,0,year/10,1,16);//  显示年
        OLED_ShowNum(24,0,year%10,1,16);//  
        
        OLED_ShowChar(32,0,'-',16);//

        OLED_ShowNum(40,0,mouth/10,1,16);//  显示月
        OLED_ShowNum(48,0,mouth%10,1,16);//  
        
        
        OLED_ShowChar(56,0,'-',16);//

  OLED_ShowNum(64,0,day/10,1,16);//  显示日
  OLED_ShowNum(72,0,day%10,1,16);//  

        
        
  OLED_ShowNum(0,2,hour/10,1,16);//  显示时
        OLED_ShowNum(8,2,hour%10,1,16);//  
        OLED_ShowString(16,2,":",16);//

        OLED_ShowNum(24,2,min/10,1,16);//  显示分
        OLED_ShowNum(32,2,min%10,1,16);//  
        OLED_ShowString(40,2,":",16);//
        OLED_ShowNum(48,2,sec/10,1,16);// 显示秒
        OLED_ShowNum(56,2,sec%10,1,16);//
        
        
  write_week(0,5,16,week);           //写星期函数



}

Keil代码下载: 源码+图纸.7z (51.52 KB, 下载次数: 105)

作者: 人工置顶员    时间: 2022-4-4 14:29
好资料,51黑有你更精彩!!!
作者: heicad    时间: 2022-4-9 18:27
好资料,51黑有你更精彩!!!
作者: cuijb    时间: 2022-4-10 02:59
高人,51hei有你更精彩
作者: 触景情伤    时间: 2022-4-10 06:39
上3231吧…
作者: cuijb    时间: 2022-4-11 18:31
楼主手工不错
作者: FENGJLONG    时间: 2022-5-13 21:27
好资料,51黑有你更精彩!
作者: 紫色的云    时间: 2022-5-17 17:16

好资料,51黑有你更精彩! 谢谢 资料分享
作者: 993387119    时间: 2022-5-19 18:51
有了type-c,就可以去掉7805了吧
作者: QQ3071108860    时间: 2022-5-23 11:00
好资料,51黑有你更精彩!!
作者: ljm6514    时间: 2022-5-24 10:07
好资料,学习了,谢谢
作者: 463328508    时间: 2022-5-25 08:10
我一直想学单片机控制OLED汉字显示谢谢分享
作者: CK152152    时间: 2022-5-26 15:16
好资料,51黑有你更精彩!!!
作者: tongguan123    时间: 2022-5-26 23:41
感谢楼主分享!同时希望大家可以开源更多自己实验验证过的东西!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1