找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2077|回复: 1
打印 上一主题 下一主题
收起左侧

STC15W408AS单片机+max7219程序原理图 显示时间,日期,温度 可以自动亮度

[复制链接]
跳转到指定楼层
楼主
显示芯片用max7219 ,时钟芯片采用DS1302.温度芯片采用18b20 ,光敏电阻采用4516

附原理图,和程序代码,


单片机源程序如下:
  1. #include "all.h"
  2. //======================================
  3. void Write_Max7219_byte(char DATA)           
  4. {  
  5.         char i;      
  6.         Max7219_pinCS=0;                //CS=0有效,CS=1锁存   
  7.         for(i=8;i>=1;i--)  
  8.           {         
  9.             Max7219_pinCLK=0;  
  10.             Max7219_pinDIN=DATA&0x80; //&10000000, 编译器对位操作的理解:非0即为1  
  11.             DATA=DATA<<1;  
  12.             Max7219_pinCLK=1;       //上升沿把数据送出去  
  13.            }                                   
  14. }  
  15. //-------------------------------------------  
  16. /*向M第一片MAX7219写入数据*/  
  17. void Write_Max7219_1(char add1,char dat1)  
  18. {   
  19.      Max7219_pinCS=0;
  20.      Write_Max7219_byte(add1);           //写入地址,即数码管编号
  21.      Write_Max7219_byte(dat1);               //写入数据,即数码管显示数字   
  22.      Max7219_pinCS=1;                          
  23. }  
  24. //===========================================
  25. //初始化
  26. void Init_MAX7219()  
  27. {         
  28. Write_Max7219_1(0x09, 0xff);       //译码方式:BCD码  
  29. //Write_Max7219_1(0x0a, 0xf0);       //亮度   
  30. Write_Max7219_1(0x0b, 0x05);       //扫描界限;8个数码管显示  
  31. Write_Max7219_1(0x0c, 0x01);       //掉电模式:0,普通模式:1  
  32. Write_Max7219_1(0x0f, 0x00);       //显示测试:1;测试结束,正常显示:0  
  33. }
复制代码
  1. #include "all.h"
  2. //*************************************************************
  3. //主晶振在20-35之间
  4. //低于20MHZ 温度无法使用
  5. //自用晶振35MHZ
  6. //=================================================================
  7. //IO口初始化
  8. void io_init()
  9. {
  10. P1M0&=0x00;P1M1&=0x00; //P3口,准双
  11. P3M0&=0x00;P3M1&=0x00; //P1口,准双
  12. }
  13. //=================================
  14. //max7219显示
  15. void max7219_xs()//max7219xs
  16. {
  17.         static uint i;
  18.         i++;
  19.         if(i>2000)
  20.         {
  21.         Write_Max7219_1(1,TIME[2]>>4);  //显示时高位
  22.         Write_Max7219_1(2,TIME[2]&0X0F);  //显示时低位不带小数点,
  23.         Write_Max7219_1(3,TIME[1]>>4);//显示分高位
  24.         Write_Max7219_1(4,TIME[1]&0X0F);//显示分低位
  25.         Write_Max7219_1(5,TIME[0]>>4);//显示秒高位
  26.   Write_Max7219_1(6,TIME[0]&0x0f);//显示秒。低位
  27.         }
  28.   if(i>4000)
  29.         {
  30.                          i=0;P15=1;
  31.         Write_Max7219_1(1,TIME[2]>>4);  //显示时高位
  32.         Write_Max7219_1(2,((TIME[2]&0X0F)|0x80));  //显示时低位,带小数点,
  33.         Write_Max7219_1(3,TIME[1]>>4);//显示分高位
  34.         Write_Max7219_1(4,TIME[1]&0X0F);//显示分低位
  35.         Write_Max7219_1(5,TIME[0]>>4);//显示秒高位
  36.   Write_Max7219_1(6,TIME[0]&0x0f);//显示秒。低位
  37.         }

  38. }



  39. void WDT_CONTR_allog() //看门狗定时器 2.5s定时
  40. {
  41.    WDT_CONTR=0x36;
  42. }
  43. void main()
  44. {
  45.         io_init(); //io口初始化
  46.   Init_MAX7219(); //max7219初 始化
  47.         anjian();//主按键使用,屏蔽所有功能无法使用
  48.         adc_init();        //adc调节亮度初始化
  49.         Ds1302Init();  //ds1302初始化赋值初始时间
  50.         while(1)
  51.         {
  52.                  Ds1302ReadTime(); //ds1302读取        
  53.                  WDT_CONTR_allog();//看门狗定时器
  54.                  adc_ld();  //亮度调节
  55.                  anjian_0();//显示时间
  56.                  anjian_1();//显示日期
  57.                  anjian_2();//显示周
  58.                  anjian_3();//判断一次
  59.                  anjian_4();//显示温度
  60.                  anjian_5();//调整年
  61.                  anjian_6();//调整月
  62.                  anjian_7();//调整日
  63.                  anjian_8();//调整时
  64.                  anjian_9();//调整分
  65.                  anjian_10();//调整秒
  66.                  anjian_11();//调整周
  67.                  anjian_12();//返回显示时间
  68.                  anjian_k3(); //返回显示时间
  69.                
  70.                

  71.         }
  72. }
复制代码


所有资料51hei提供下载:
原理图.rar (18.53 KB, 下载次数: 44)
程序.rar (91.28 KB, 下载次数: 31)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:28992 发表于 2021-3-20 04:35 | 只看该作者
非常感谢您的分享 好资料,51黑有你更精彩!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表