请选择 进入手机版 | 继续访问电脑版

EDABOSS电子论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 643|回复: 1

[资料共享] 12864时钟 图形温度计 ds1302 ds18b20 矩阵键盘仿真

[复制链接]

26

主题

0

回帖

197

E币

技术员

Rank: 2

积分
52
发表于 2017-5-10 15:08:57 | 显示全部楼层 |阅读模式
不过按键反应比较慢点~!里面有一个图形温度计还有时钟可调等等!
我个人感觉很经典。
214237fifhragp3h4w2l8i.png

12864时钟 图形温度计的全部资料下载:
12864 图形温度计 ds1302 ds18b20 矩阵键盘.rar (81.58 KB, 下载次数: 0)


部分程序源码预览:
  1. //南阳理工学院
  2. //12864+图形温度计+ds1302+ds18b20+矩阵键盘
  3. //此程序如果要在硬件电路上实现要改一些地方!
  4. //不曾努力,就没有资格说失败!
  5. #include "ds18b20.h"
  6. #include "12864.h"
  7. #include "1302.h"
  8. #include "key.h"
  9. #include "zifu.h"
  10. bit flagg=0;
  11. uchar ip;
  12. main()
  13. {
  14.   uchar i;
  15.   systemtime realtime;
  16.   choose12864(2);
  17.   init12864();
  18.   clear12864();
  19.   play8(0,0,0,shu2);                 //屏,列,页,地址
  20.   play8(0,1,0,shu0);
  21.   play16(0,4,0,nian);
  22.   play16(1,0,0,yue);
  23.   play16(1,4,0,ri);
  24.   play16(0,2,1,shi);
  25.   play16(0,6,1,fen);
  26.   play16(1,2,1,miao);
  27.   
  28.   play16(1,0,2,xing);
  29.   play16(1,2,2,qi);
  30.   vertical(3,63,63);
  31.   vertical(3,63,62);
  32.   vertical(3,63,58);
  33.   vertical(3,63,57);
  34.   for(i=0;i<7;i++)
  35.   {
  36.     dot(57+i,3);
  37.         dot(57+i,63);
  38.   }
  39.   for(i=0;i<12;i++)
  40.   {
  41.     dot(59,8+5*i);
  42.   }
  43.   for(i=0;i<7;i++)
  44.   {
  45.     if(i<4)
  46.         {
  47.           play16(0,i*2,3,ming+i*32);
  48.         }
  49.         if(i>=4)
  50.         {
  51.           play16(1,(i-4)*2,3,ming+i*32);
  52.         }
  53.   }
  54.   init_ds1302();
  55.   init_time();
  56.   do
  57.   {
  58.      gettime(&realtime);
  59.          play8(0,2,0,(shu0+16*datastring[0]));
  60.          play8(0,3,0,(shu0+16*datastring[1]));
  61.          play8(0,6,0,(shu0+16*datastring[2]));
  62.          play8(0,7,0,(shu0+16*datastring[3]));
  63.          play8(1,2,0,(shu0+16*datastring[4]));
  64.          play8(1,3,0,(shu0+16*datastring[5]));
  65.          play8(0,0,1,(shu0+16*datastring[6]));
  66.          play8(0,1,1,(shu0+16*datastring[7]));
  67.          play8(0,4,1,(shu0+16*datastring[8]));
  68.          play8(0,5,1,(shu0+16*datastring[9]));
  69.          play8(1,0,1,(shu0+16*datastring[10]));
  70.          play8(1,1,1,(shu0+16*datastring[11]));
  71.          play16(1,4,2,(yi+32*(datastring[12]-1)));
  72.          gettemperature();
  73.          if(flag)
  74.          {
  75.            play8(0,0,2,fu);
  76.            play8(1,6,3,fu);
  77.          }
  78.          else
  79.           {
  80.             clear8(6,4,0);
  81.                 play8(1,6,3,zheng);
  82.           }
  83.          play8(0,4+flag,2,dian);
  84.      play8(0,5+flag,2,C);
  85.          play8(0,0+flag,2,(shu0+16*temp[0]));
  86.          play8(0,1+flag,2,(shu0+16*temp[1]));
  87.          play8(0,2+flag,2,xiao);
  88.          play8(0,3+flag,2,(shu0+16*temp[2]));
  89.          change();
  90.          keyscan();
  91.          switch(sum)
  92.          {
  93.           case 0:ip=ds1302_year;flagg=1;break;
  94.           case 1:ip=ds1302_month;flagg=1;break;
  95.           case 2:ip=ds1302_week;flagg=1;break;
  96.           case 3:ip=ds1302_day;flagg=1;break;
  97.           case 4:ip=ds1302_hour;flagg=1;break;
  98.           case 5:ip=ds1302_minute;flagg=1;break;
  99.           case 6:ip=ds1302_second;flag=1;break;
  100.           default:break;
  101.          }
  102.          if(flagg==1)
  103.          {
  104.            keyscan();
  105.            if(sum==7)
  106.            {
  107.              set(ip,1);
  108.                  sum=0xff;;
  109.            }
  110.            else if(sum==8)
  111.            {
  112.              set(ip,0);
  113.                  sum=0xff;
  114.            }
  115.          }
  116.   }
  117.   while(1);
  118. }
复制代码


积分规则
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|EDABOSS电子论坛

GMT+8, 2024-3-28 16:44 , Processed in 0.042410 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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