⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 LT-1B msp430 程序原理图集合
💻 C
字号:
/*************************************************************
程序功能:读取DS18B20进行温度测量以后的结果并在1602液晶上显示
---------------------------------------------------------------
测试说明:观察显示温度数值。
*************************************************************/

#include  "msp430.h"
#include  "BoardConfig.h"
#include  "cry1602.h"
#include "DS18B20.h"
 uchar scandata[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                          0x7f,0x6f};
//要显示的6位温度数字
 uchar dn[6]=""; 
double num=0;
int temp=0;

void Disp_Numb(uint temper);

void delayus(i)
{
    i=i*100;
    for(;i>0;i--);
}
void init()
{
  P4OUT = 0x00;  
  P5OUT = 0xff;
}
void display(unsigned char data, unsigned char bit)
{
    P4OUT = scandata[data];
    P5OUT = (0xbf >> bit)|(0xbf << (8-bit));
}

/*************************主函数*************************/
void main( void )
{
 uchar dN[6]="";
    int high=0;
    unsigned char low;
    
    double c=0;

    int i;
  //  WDTCTL = WDTPW + WDTHOLD;
 
    WDTCTL = WDT_ADLY_1_9 ;  
    IE1 |= WDTIE;  
    BoardConfig(0x88);        
    P4DIR = 0xff;                 
    P5DIR = 0xff;                 
  
    P4OUT = 0x00;                
    P5OUT = 0xff; 

  
    BCSCTL1 &= ~XT2OFF;                
    do
    {
        IFG1 &= ~OFIFG;           
        for (i = 0xFF; i > 0; i--);     
    }
    while ((IFG1 & OFIFG));             
    BCSCTL2 |= SELM_2 + SELS;      
   
    TACTL |= TASSEL_2 + ID_3; 

    _EINT();
    
    while(1)
    {
       num = Do1Convert();
       num = num/16;
    }
             
}

#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
    display((int)num%10, 2);
    delayus(5);
    init();
    display((int)num/10%10,3);
    delayus(5);
    init();
    display((int)(num*10)%10,1);
    delayus(5);
    init();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -