找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机12864图形温度计仿真 ds1302 ds18b20 矩阵键盘

[复制链接]
跳转到指定楼层
楼主
12864图形+温度计+ds1302+ds18b20+矩阵键盘仿真与程序
时间设置:先点想设置的项,然后点加或者减!
花的时间不多。程序里难免有不足之处。



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

  107. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
12864 图形温度计 ds1302 ds18b20 矩阵键盘.rar (81.58 KB, 下载次数: 52)


评分

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

查看全部评分

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

使用道具 举报

沙发
ID:325288 发表于 2018-5-23 21:33 | 只看该作者
非常好的学习资料,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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