c语言ntc程序,NTC热敏电阻测温度 单片机C和汇编源程序

该博客提供了使用STC 1T系列单片机通过ADC读取NTC热敏电阻数据并测量温度的C语言程序。程序使用74HC595驱动8位数码管显示ADC电压和温度值,采用对分查找表格计算温度,适用于1%精度的MF52 10K@25℃热敏电阻。
摘要由CSDN通过智能技术生成

/*---------------------------------------------------------------------*/

/* --- STC MCU International Limited ----------------------------------*/

/* --- STC 1T Series MCU Demo Programme -------------------------------*/

/* 如果要在程序中使用此代码,请在程序中注明使用了宏晶科技的资料及程序   */

/*---------------------------------------------------------------------*/

/*************        本程序功能说明        **************

读ADC和测温度.

用STC的MCU的IO方式控制74HC595驱动8位数码管。

用户可以修改宏来选择时钟频率.

用户可以在"用户定义宏"中选择共阴或共阳. 推荐尽量使用共阴数码管.

使用Timer0的16位自动重装来产生1ms节拍,程序运行于这个节拍下, 用户

修改MCU主时钟频率时,自动定时于1ms.

左边4位数码管显示ADC2接的电压基准TL431的读数, 右边4位数码管显示温度值, 分辨率0.1度.

NTC使用1%精度的MF52 10K@25度C.

测温度时, 为了通用, 使用12位的ADC值, 使用对分查找表格来计算, 小数点后

一位数是用线性插补来计算的.

所以, 测温度的ADC3进行4次ADC连续采样, 变成12位的ADC来计算温度.

******************************************/

#include        "config.H"

#include        "adc.h"

/****************************** 用户定义宏 ***********************************/

#define                LED_TYPE        0x00                //定义LED类型, 0x00--共阴, 0xff--共阳

#define        Timer0_Reload        (65536UL -(MAIN_Fosc / 1000))                //Timer 0 中断频率, 1000次/秒

/*****************************************************************************/

/*************        本地常量声明        **************/

u8 code t_display[]={                                                //标准字库

//         0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F

0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,

//black         -     H    J         K          L           N        o   P         U     t    G    Q    r   M    y

0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e,

0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46};        //0. 1. 2. 3. 4. 5. 6. 7. 8. 9. -1

u8 code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};                //位码

/*************        IO口定义        **************/

sbit        P_HC595_SER   = P4^0;        //pin 14        SER                data input

sbit        P_HC595_RCLK  = P5^4;        //pin 12        RCLk        store (latch) clock

sbit        P_HC595_SRCLK = P4^3;        //pin 11        SRCLK        Shift data clock

/*************        本地变量声明        **************/

u8         LED8[8];                //显示缓冲

u8        display_index;        //显示位索引

bit        B_1ms;                        //1ms标志

u16        msecond;

/*************        本地函数声明        **************/

u16        get_temperature(u16 adc);

/****

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值