找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8015|回复: 25
收起左侧

NTC10K热敏电阻温度计单片机程序,谢谢各位师博帮忙看看!

  [复制链接]
回帖奖励 10 黑币 回复本帖可获得 10 黑币奖励! 每人限 1 次
ID:17109 发表于 2019-5-9 11:15 | 显示全部楼层 |阅读模式
热敏电阻程序定义是P1.7,想改成P1.6的要什么改才有效,谢谢各位师博帮忙看看
#include <reg52.h>

sfr ADC_CONTR = 0XBC;        //转换控制寄存器
sfr ADC_RES = 0XBD;                //转换结果高8位
sfr ADC_LOW2 = 0XBE;        //转换结果低2位
sfr P1ASF = 0X9D;                        //I/O口模式

#define ADC_POWER 0X80                //电源位
#define ADC_FLAG         0X10                //标置位
#define ADC_START 0X08                //开启位

//=======延时============
void ADdelay(unsigned char i)
{
        while(i--);
}
//=======初始化=========
void InitADC()
{
        P1ASF=0xC0;                                    //设P1.6和P1.7为ADC转换
        ADC_RES=0;
        ADC_CONTR=ADC_POWER; //启动ADC电源
        ADdelay(200);        
}
//=======P1AD转换启动=======
void ADCP1STA(unsigned char lch)
{
        ADC_CONTR=ADC_POWER|ADC_START|lch; //选择一路启动转换采集
}
//=======获取转换结果=======
unsigned char GetADC(void)
{
        while(!(ADC_CONTR&ADC_FLAG));
        ADC_CONTR&=~ADC_FLAG;      //停止AD转换
        return ADC_RES;
}


NTC10K温度计.rar

38.61 KB, 下载次数: 178

回复

使用道具 举报

ID:487604 发表于 2019-5-9 12:22 | 显示全部楼层
//=======初始化=========
void InitADC()
{
        P1ASF=0xC0;                                    //设P1.6和P1.7为ADC转换
        ADC_RES=0;
        ADC_CONTR=ADC_POWER; //启动ADC电源
        ADdelay(200);        
}
//=======P1AD转换启动=======
void ADCP1STA(unsigned char lch)
{
        ADC_CONTR=ADC_POWER|ADC_START|lch; //选择一路启动转换采集
}
这是你的源代码,InitADC()函数已经把P1.6和P1.7设为模拟输入,也就是ADC转换通道,启动ADC转换的时候调用ADCP1STA(unsigned char lch)函数,lch的输入6就是对P1.6进行ADC转换,lch的输入7就是对P1.7进行ADC转换,

下面是改过的代码

//=======初始化=========
void InitADC()
{     /*****下面3行代码用哪,就把不用的屏蔽**********************/
        P1ASF=0xC0;                                    //设P1.6和P1.7为ADC转换
     //   P1ASF=0x40;                                    //只设P1.6为ADC转换
     //   P1ASF=0x80;                                    //只设P1.7为ADC转换   /********************************************************/

        ADC_RES=0;
        ADC_CONTR=ADC_POWER; //启动ADC电源
        ADdelay(200);        
}



STC12系列官方资料,第九章是AD转换
回复

使用道具 举报

ID:518085 发表于 2019-5-9 13:14 | 显示全部楼层
P1ASF=0xC0;   改为 P1ASF=0x40;   作为A/D使用的口需先将P1ASF特殊功能寄存
器中的相应位置为‘1’,将相应的口设置为模拟功能。
回复

使用道具 举报

ID:94031 发表于 2019-5-9 13:59 | 显示全部楼层
传统51是不带AD的,你得说明你用的是什么型号的单片机。
回复

使用道具 举报

ID:123289 发表于 2019-5-9 15:33 | 显示全部楼层
1、端口号改一下。(定义P1.7的变量改定义为P1.6)
2、采样通道号改一下。(采样命令下达的命令代码由通道7改为通道6)
回复

使用道具 举报

ID:213173 发表于 2019-5-9 15:58 | 显示全部楼层
改这样P1.6或P1.7随便用,只要在主程序改        ADCP1STA(6);//启动AD转换 或 ADCP1STA(7); //启动AD转换

  1. #include <reg52.h>

  2. sfr ADC_CONTR = 0XBC;        //转换控制寄存器
  3. sfr ADC_RES = 0XBD;                //转换结果高8位
  4. sfr ADC_LOW2 = 0XBE;        //转换结果低2位
  5. sfr P1ASF = 0X9D;                        //I/O口模式

  6. #define ADC_POWER 0X80                //电源位
  7. #define ADC_FLAG         0X10                //标置位
  8. #define ADC_START 0X08                //开启位

  9. //=======延时============
  10. void ADdelay(unsigned char i)
  11. {
  12.         while(i--);
  13. }
  14. //=======初始化=========
  15. void InitADC()
  16. {
  17.         P1M1 = 0xc0;                                 //设置P1.6,P1.7高阻
  18.         P1M0 = 0x00;
  19.         P1ASF=0xC0;                                    //设P1.6和P1.7为ADC转换
  20.         ADC_RES=0;
  21.         ADC_CONTR=ADC_POWER; //启动ADC电源
  22.         ADdelay(200);       
  23. }
  24. //=======P1AD转换启动=======
  25. void ADCP1STA(unsigned char lch)
  26. {
  27.         ADC_CONTR=ADC_POWER|ADC_START|lch; //选择一路启动转换采集
  28. }
  29. //=======获取转换结果=======
  30. unsigned char GetADC(void)
  31. {
  32.         while(!(ADC_CONTR&ADC_FLAG));
  33.         ADC_CONTR&=~ADC_FLAG;      //停止AD转换
  34.         return ADC_RES;
  35. }
复制代码
回复

使用道具 举报

ID:155507 发表于 2019-5-9 19:04 | 显示全部楼层
//头文件:
#include <reg52.h>
#include "SMG4.h"
#include "STCADC.h"

//常量表                               
code unsigned char tempbuf[] ={188,186,184,181,179,177,175,172,170,168,166,165,164,163,
                                                                                                                                161,158,155,152,149,146,143,139,136,133,130,128,125,122,
                                                                                                                                119,117,115,112,110,108,105,103,101,99,97,95,93,91,89,87,
                                                                                                                                85,83,81,79,77,76,74};                //0~50度的对应值,通过热敏电阻的B值表计算所得
//变量定义
unsigned char ly_temp=0;                        //保存温度值

//主函数       
void main(void)  
{
        unsigned char i;
        InitADC();
               
        while(1){               
                ADCP1STA(7);                      //启动AD转换  <------ 想改成P1.6的要改成ADCP1STA(6)才有效
                ly_temp=GetADC();                        //读取AD转换值
               
                for(i=0;i<50;i++)                        //比较获得正确的温度值
                {
                        if(ly_temp>tempbuf[i])
                                break;
                }
                ly_temp=--i;
                       
                ly_SMGcp[2]=1;          //在第三位数码上显示点       
                ly_SMGbuf[2]=11;        //显示单位C
                ly_SMGbuf[3]=10;        //第四位不显示
               
                ly_SMGbuf[0]=ly_temp/10;                //温度的十位和个位分开                       
                ly_SMGbuf[1]=ly_temp%10;
                       
                DisPlayS(10000);        //调用显示函数
        }
}

回复

使用道具 举报

ID:17109 发表于 2019-5-9 23:48 来自手机 | 显示全部楼层
angmall 发表于 2019-5-9 19:04
//头文件:
#include
#include "SMG4.h"

师傅你好这个温度计能测0~50度能否可以修改增加到99度吗
回复

使用道具 举报

ID:155507 发表于 2019-5-10 06:40 | 显示全部楼层
ll13536121668 发表于 2019-5-9 23:48
师傅你好这个温度计能测0~50度能否可以修改增加到99度吗

可以修改

//        MF52E 10K at 25, B = 3950, ADC = 12 bits
u16 code temp_table[]={
                140,        //;-40        0
                149,        //;-39        1
                159,        //;-38        2
                168,        //;-37        3
                178,        //;-36        4
                188,        //;-35        5
                199,        //;-34        6
                210,        //;-33        7
                222,        //;-32        8
                233,        //;-31        9
                246,        //;-30        10
                259,        //;-29        11
                272,        //;-28        12
                286,        //;-27        13
                301,        //;-26        14
                317,        //;-25        15
                333,        //;-24        16
                349,        //;-23        17
                367,        //;-22        18
                385,        //;-21        19
                403,        //;-20        20
                423,        //;-19        21
                443,        //;-18        22
                464,        //;-17        23
                486,        //;-16        24
                509,        //;-15        25
                533,        //;-14        26
                558,        //;-13        27
                583,        //;-12        28
                610,        //;-11        29
                638,        //;-10        30
                667,        //;-9        31
                696,        //;-8        32
                727,        //;-7        33
                758,        //;-6        34
                791,        //;-5        35
                824,        //;-4        36
                858,        //;-3        37
                893,        //;-2        38
                929,        //;-1        39
                965,        //;0        40
                1003,        //;1        41
                1041,        //;2        42
                1080,        //;3        43
                1119,        //;4        44
                1160,        //;5        45
                1201,        //;6        46
                1243,        //;7        47
                1285,        //;8        48
                1328,        //;9        49
                1371,        //;10        50
                1414,        //;11        51
                1459,        //;12        52
                1503,        //;13        53
                1548,        //;14        54
                1593,        //;15        55
                1638,        //;16        56
                1684,        //;17        57
                1730,        //;18        58
                1775,        //;19        59
                1821,        //;20        60
                1867,        //;21        61
                1912,        //;22        62
                1958,        //;23        63
                2003,        //;24        64
                2048,        //;25        65
                2093,        //;26        66
                2137,        //;27        67
                2182,        //;28        68
                2225,        //;29        69
                2269,        //;30        70
                2312,        //;31        71
                2354,        //;32        72
                2397,        //;33        73
                2438,        //;34        74
                2479,        //;35        75
                2519,        //;36        76
                2559,        //;37        77
                2598,        //;38        78
                2637,        //;39        79
                2675,        //;40        80
                2712,        //;41        81
                2748,        //;42        82
                2784,        //;43        83
                2819,        //;44        84
                2853,        //;45        85
                2887,        //;46        86
                2920,        //;47        87
                2952,        //;48        88
                2984,        //;49        89
                3014,        //;50        90
                3044,        //;51        91
                3073,        //;52        92
                3102,        //;53        93
                3130,        //;54        94
                3157,        //;55        95
                3183,        //;56        96
                3209,        //;57        97
                3234,        //;58        98
                3259,        //;59        99
                3283,        //;60        100
                3306,        //;61        101
                3328,        //;62        102
                3351,        //;63        103
                3372,        //;64        104
                3393,        //;65        105
                3413,        //;66        106
                3432,        //;67        107
                3452,        //;68        108
                3470,        //;69        109
                3488,        //;70        110
                3506,        //;71        111
                3523,        //;72        112
                3539,        //;73        113
                3555,        //;74        114
                3571,        //;75        115
                3586,        //;76        116
                3601,        //;77        117
                3615,        //;78        118
                3628,        //;79        119
                3642,        //;80        120
                3655,        //;81        121
                3667,        //;82        122
                3679,        //;83        123
                3691,        //;84        124
                3702,        //;85        125
                3714,        //;86        126
                3724,        //;87        127
                3735,        //;88        128
                3745,        //;89        129
                3754,        //;90        130
                3764,        //;91        131
                3773,        //;92        132
                3782,        //;93        133
                3791,        //;94        134
                3799,        //;95        135
                3807,        //;96        136
                3815,        //;97        137
                3822,        //;98        138
                3830,        //;99        139
                3837,        //;100        140
                3844,        //;101        141
                3850,        //;102        142
                3857,        //;103        143
                3863,        //;104        144
                3869,        //;105        145
                3875,        //;106        146
                3881,        //;107        147
                3887,        //;108        148
                3892,        //;109        149
                3897,        //;110        150
                3902,        //;111        151
                3907,        //;112        152
                3912,        //;113        153
                3917,        //;114        154
                3921,        //;115        155
                3926,        //;116        156
                3930,        //;117        157
                3934,        //;118        158
                3938,        //;119        159
                3942        //;120        160
};
回复

使用道具 举报

ID:17109 发表于 2019-5-10 12:39 来自手机 | 显示全部楼层
angmall 发表于 2019-5-10 06:40
可以修改

//        MF52E 10K at 25, B = 3950, ADC = 12 bits

师傅能上传上面这条代码的,打包好的源程序吗谢谢!
回复

使用道具 举报

ID:155507 发表于 2019-5-10 17:31 | 显示全部楼层
ll13536121668 发表于 2019-5-10 12:39
师傅能上传上面这条代码的,打包好的源程序吗谢谢!

打包好的源程序

NTC测温度-C和汇编.zip

91.5 KB, 下载次数: 188

回复

使用道具 举报

ID:17109 发表于 2019-5-11 11:12 | 显示全部楼层
angmall 发表于 2019-5-10 17:31
打包好的源程序

师傅上传一个1寸时钟的资料给你看看,带有四位LED的数字钟,带两只按键可以切换NTC温度计显示的,测温很准,程序里面看不到有NTC阻值表,看看能不能把NTC温度修改分离充电就显示温度计
回复

使用道具 举报

ID:17109 发表于 2019-5-11 11:14 | 显示全部楼层
师傅上传一个1寸时钟的资料给你看看,带有四位LED的数字钟,带两只按键可以切换NTC温度计显示的,测温很准,程序里面看不到有NTC阻值表,看看能不能把NTC温度修改分离充电就显示温度计

1寸时钟资料.rar

810.12 KB, 下载次数: 86

回复

使用道具 举报

ID:17109 发表于 2019-5-11 11:15 | 显示全部楼层
本帖最后由 ll13536121668 于 2019-5-11 17:15 编辑
angmall 发表于 2019-5-10 17:31
打包好的源程序

师傅上传一个1寸时钟的资料给你看看,带有四位LED的数字钟,带两只按键可以切换NTC温度计显示的,测温很准,程序里面看不到有NTC阻值表,看看能不能把NTC温度修改分离充电就显示温度计
回复

使用道具 举报

ID:149451 发表于 2019-5-12 07:28 | 显示全部楼层
我觉得12楼的靠谱,不错的........
回复

使用道具 举报

ID:17109 发表于 2019-5-12 18:43 来自手机 | 显示全部楼层
angmall 发表于 2019-5-10 17:31
打包好的源程序

师博修改成显示温度的可以吗上传看看
回复

使用道具 举报

ID:79544 发表于 2019-6-24 16:14 | 显示全部楼层
学习啦!!!!!!!!!!!!
回复

使用道具 举报

ID:171556 发表于 2019-6-25 16:14 | 显示全部楼层
公式计算方便地
回复

使用道具 举报

ID:573568 发表于 2019-10-11 08:59 | 显示全部楼层
学习一下,正好在弄这方面的。
回复

使用道具 举报

ID:361422 发表于 2020-2-24 16:00 | 显示全部楼层
谢谢各位师傅,学习了
回复

使用道具 举报

ID:697350 发表于 2020-2-26 11:28 | 显示全部楼层

谢谢各位师傅,长见识 了。
回复

使用道具 举报

ID:725316 发表于 2020-5-10 09:45 | 显示全部楼层
大家好,我用P1.6脚作ADC输出,测P1其余脚均只有1.1V左右,无法作作I/O脚用,请问怎么解决?
回复

使用道具 举报

ID:725316 发表于 2020-5-10 09:54 | 显示全部楼层
大家好,请问P1口其他脚可以作I/O脚用吗?
回复

使用道具 举报

ID:725316 发表于 2020-5-10 09:56 | 显示全部楼层
775144281 发表于 2020-2-26 11:28
谢谢各位师傅,长见识 了。

新手报到!请各位高手指教
回复

使用道具 举报

ID:741634 发表于 2020-5-10 13:29 | 显示全部楼层
谢谢各位师傅,又涨了一点见识
回复

使用道具 举报

ID:748312 发表于 2020-5-10 14:25 | 显示全部楼层
谢谢分享资料
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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