打印
[技术讨论]

纳芯微温度传感器NST1001

[复制链接]
54|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

辅助程序 1,定义用到的变量
unsigned int Count = 0;                           //定义计数值变量COUNT
bit Flag = 0;   
sbit DQ = P3^3;   
辅助程序 2,中断子函数
void exint1() interrupt 2
{
_nop_();
_nop_();
If (DQ == 0)  
{
//定义中断服务标志位C_FLAG;
          //定义IO引脚
//误触发判断
Count++;             //计数+1
Flag = 1;               //中断标志Flag
}
}
辅助程序 3,延时子函数
void Delay2ms()
{
for( i=0; i<xxxx; i++) {;}   //时钟周期延时10ms,根据MCU指令周期设计具体的xxxx值
}
主程序  
void main(void)     
{
          unsigned int  Data = 0;
          unsigned float  Temp = 0;
          INT1 = 1;
   //主程序 main
        // 中断IO口初始状态为High
          IT1 = 1;      
          EX1 = 1;     
          EA = 1;
       // 外中断信号方式控制位,1:下降沿中断。单脉冲周期触发一次
       // 外部中断1允许控制位
       // 中断允许总控制位
          Count = 0;        //计数值清零
12
Copyright ©  NOVOSENSE Microelectronics Co.,Ltd 2023. All rights reserved.

   while (1)
{                  if( Flag == 1)
{                        Flag = 0;
Delay2ms();
if(!Flag)
{                              EX1 = 0;    //关闭外部中断
Data = Count;  //锁存计数值
Count = 0;
if(Data >= 801)      //正负温度判断
{                                    Temp = (Data - 801)*0.0625; }//正温度      else      {                                       Temp = (
801 - Data)*0.0625;
}   //负温度                                        Flag = 0;
EX1=1;  //开启外部中断                                       }     //
END if(!Flag)
}
//END if(Flag == 1)                           }
//
END while 循环}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

103

帖子

1

粉丝