找回密码
 立即注册

QQ登录

只需一步,快速开始

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

MSP430单片机用12864液晶绘制DS18B20温度曲线源代码

[复制链接]
跳转到指定楼层
楼主
MSP430单片机用12864液晶绘制DS18B20温度曲线源代码,keil4文件



单片机源程序如下:
  1. #include <msp430x14x.h>
  2. #include "Lcd12864.h"
  3. #include "DS18B20.h"
  4. #include "bmp.h"

  5. #define CPU_F ((double)8000000)
  6. #define delayus(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
  7. #define delayms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

  8. #define uchar unsigned char
  9. #define uint unsigned int

  10. //=========================================
  11. //函数功能:初始化时钟
  12. //=========================================
  13. void Init_CLK()
  14. {
  15.         unsigned int i;
  16.         WDTCTL = WDTPW + WDTHOLD;         //停止看门狗
  17.         BCSCTL1 &= ~XT2OFF;                         //打开XT2振荡器
  18.         do
  19.         {
  20.                 IFG1 &= ~OFIFG;                         //清除振荡器失效标志
  21.                 for(i = 0xff;i > 0;i--); //延时,等待XT2起振
  22.         }
  23.         while((IFG1 & OFIFG) != 0);  //直到震荡失效标志不存在
  24.         BCSCTL2 = SELM_2 + SELS;           //选择MCLK、SMCLK为XT2
  25. }

  26. //=========================================
  27. //函数功能:主函数
  28. //=========================================
  29. void main()
  30. {   
  31.         uchar table[6];
  32.     uint temp,XPonit,YPoint;
  33.         float Point;
  34.         Init_CLK();
  35.           InitLcd12864();
  36.         Init_DS18B20();
  37.         FillGdram(0x00);
  38.         DisplayBMP(bmp);
  39.     while(1)
  40.     {
  41.                 for(XPonit=8;XPonit<=127;XPonit++)
  42.                 {        
  43.                         temp = Get_Temp();
  44.                         delayms(100);
  45.                         table[0] = temp / 100 + '0';
  46.                         table[1] = temp % 100 / 10 + '0';
  47.                         table[2] = '.';
  48.                         table[3] = temp % 10 + '0';
  49.                         table[4] = 'C';
  50.                         table[5] = '\0';
  51.                         DisplayString(1,6,table);                  //显示第一行,从第1个位置开始
  52.                         Point = (float)temp / 10 + 0.5;
  53.                         YPoint = 63 - ((int)Point + 7);
  54.                         DrawPoint(XPonit,YPoint,1);
  55.                 }
  56.                 if(XPonit == 128)
  57.                 {        
  58.                         XPonit = 8;
  59.                         FillGdram(0x00);
  60.                         DisplayBMP(bmp);
  61.                 }
  62.     }
  63.         /*
  64.     //DrawPoint(7,7,1); // 画点(7,7)
  65.          // 8 x 8 表格程序段开始
  66.         
  67.           DrawHorizontalLine(0,127,0,1);
  68.         
  69.          
  70.           DrawHorizontalLine(0,127,15,1);
  71.           DrawHorizontalLine(0,127,23,1);
  72.           DrawHorizontalLine(0,127,31,1);
  73.           DrawHorizontalLine(0,127,39,1);
  74.           DrawHorizontalLine(0,127,47,1);
  75.           DrawHorizontalLine(0,127,55,1);
  76.           DrawHorizontalLine(0,127,63,1);
  77.           DrawVerticalLine(0,0,63,1);
  78.           DrawVerticalLine(15,0,63,1);
  79.           DrawVerticalLine(31,0,63,1);
  80.           DrawVerticalLine(47,0,63,1);
  81.           DrawVerticalLine(63,0,63,1);
  82.           DrawVerticalLine(79,0,63,1);
  83.           DrawVerticalLine(95,0,63,1);
  84.           DrawVerticalLine(111,0,63,1);
  85. ……………………

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

所有资料51hei提供下载:
MSP430单片机用12864液晶绘制DS18B20温度曲线源代码.rar (62.2 KB, 下载次数: 32)


评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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