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

📄 0-100度水的焓值表密度计算公式.c

📁 摘要:实施计量供热后
💻 C
字号:

#include  <msp430x14x.h>
unsigned int j=0; 
static const char led_tab[]=
		{0x7E,0x30,0x6D,0x79,
		0x33,0x5B,0x5F,0x70,
		0X7F,0x7B,0x80};   //7段显示数据表,0-9,"."
	

//水的定压比热容非4.17部分,扩大了1000,即(4170+表中数据)/1000为实际数值
char han_value[]={
0X31,0X2D,0X2A,0X27,0X25,0X22,0X20,0X1E,0X1C,0X1A,
0X19,0X17,0X16,0X15,0X13,0X13,0X11,0X10,0X10,0X0F,
0X0E,0X0D,0X0D,0X0C,0X0B,0X0B,0X0B,0X0A,0X0A,0X0A,
0X09,0X09,0X09,0X08,0X08,0X08,0X08,0X08,0X08,0X08,
0X08,0X08,0X08,0X08,0X08,0X08,0X08,0X08,0X08,0X08,
0X09,0X09,0X09,0X09,0X0A,0X0A,0X0B,0X0B,0X0B,0X0B,
0X0C,0X0C,0X0D,0X0D,0X0E,0X0E,0X0F,0X10,0X10,0X11,
0X11,0X12,0X13,0X13,0X14,0X15,0X15,0X16,0X17,0X18,
0X19,0X1A,0X1A,0X1B,0X1C,0X1D,0X1E,0X1F,0X20,0X21,
0X22,0X23,0X25,0X25,0X27,0X28,0X29,0X2A,0X2B,0X2C,0X2E,
};	

#pragma vector=PORT2_VECTOR      //外部按键中断
__interrupt void Port2()
{

 //if((P1IN&BIT4)==BIT4)
P2IFG &= ~BIT4;;                       //中断标志清除
 
 LPM3_EXIT; //退出中断后退出低功耗模式。若退出中断后要保留低功耗模式,将本句屏蔽

}

#pragma vector=TIMERA1_VECTOR        
__interrupt void Timer_A(void)    //ta1脉冲中断
{
   switch(TAIV)
   {
   case 2:
   //P1OUT^=0x01;     //脉冲累加  
  //// j++;
   break;
   case 4:break;
   case 10:
             break;
      
   }
}





void main(void)
{
  unsigned int k,ii,ai;
 float f_md;
    unsigned int m,i; 

  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
   P1DIR=BIT0;      
   P1OUT|=BIT0;       //熄灭P1.0
    P4DIR |=0xFF;
    P3DIR |=0xFF; 
    P3OUT=0XFF;

 // P1DIR&=~BIT0;                         //设置为输入方向
    //P1SEL&=~BIT0;                         //设置为普通I/O口功能
     P2DIR=~BIT4;
    P2IES|=BIT4;                          //选择下降沿触发
    P2IE|=BIT4;                           //打开中断允许
// P1OUT=~BIT0;


 P1SEL = BIT2;                             //设置P1.2端口为功能模块使用 他TA1
 TACTL = TASSEL0+TACLR+TAIE+MC1;           //定时器A时钟信号选择ACLK,同时设置定时器A计数模式为连续增计模式
 CCTL1 = SCS+CAP+CCIE;                 //,CCI0A为捕获信号源
 CCTL1 |=0x4000;                       //输入上升沿捕获
 
 

 _EINT();
 

  
  while(1)                                  // Repeat forever
  {

//以下代码可以作为按键显示延时用**********************************************
 P1OUT&=~BIT0;   //点亮P1.0 
 
 for (ai=0;ai<=100;ai++)
 {
 f_md=-0.0035*ai*ai - 0.0708*ai + 1000.9;//水的密度计算公式
 j=f_md;
 // j=4170+han_value[ai];//水的定压比热容计算(扩大了1000)
for(k=0;k<4;k++)
{
//for(ii=0;ii<2;ii++)

for(ii=0;ii<100;ii++)
{

P4OUT=led_tab[j/1000];  //千位
P3OUT&=~BIT1;
P3OUT|=BIT2;
P3OUT|=BIT3;
P3OUT|=BIT4;
for(i=0;i<=100;i++);  //显示短暂停顿

m=j%1000;
P4OUT=led_tab[m/100];  //百位
P3OUT|=BIT1;
P3OUT&=~BIT2;
P3OUT|=BIT3;
P3OUT|=BIT4;
for(i=0;i<=100;i++);

m=j%100;
P4OUT=led_tab[m/10]; //十位
P3OUT|=BIT1;
P3OUT|=BIT2;
P3OUT&=~BIT3;
P3OUT|=BIT4;
for(i=0;i<=100;i++);

m=j%10;
P4OUT=led_tab[m]; //个位
P3OUT|=BIT1;
P3OUT|=BIT2;
P3OUT|=BIT3;
P3OUT&=~BIT4;
for(i=0;i<=100;i++);
}
}

}
 P1OUT|=BIT0;  //熄灭P1.0       
//以上代码可以作为按键显示延时用*******************************************


 //  P1OUT|=BIT0;
// _BIS_SR(LPM3_bits+GIE);    //等同于LPM3

    P3OUT=0XFF;
    P4OUT=0XFF;
 LPM3;  
}

}

⌨️ 快捷键说明

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