亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3610|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

GYJ-0299 NTC測(cè)溫檢測(cè)開(kāi)關(guān)量干節(jié)點(diǎn)輸出 溫度報(bào)警 溫度變送器模塊原理圖+C程序源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
【簡(jiǎn)要說(shuō)明】
尺寸:長(zhǎng)79mmX寬50mmX高22mm
一、主要芯片:STC15W408AS
二、工作電壓:直流6~24伏
三、支持:UATR接口下載程序
【板子特點(diǎn)】
1、6V~24V寬電壓輸入;
2、具有電源指示功能;
3、繼電器輸出最大支持220V 10A;
4、3位數(shù)碼管顯示;
5、雙按鍵溫度可調(diào);
6、測(cè)量溫度范圍0~99度
7、采用螺旋端子壓接,接線可靠方便擴(kuò)展;
8、供電具有防反接保護(hù)。電路工作穩(wěn)定可靠;
9、工作環(huán)境:濕度小于80%,溫度 -0度至50度
10、提供相關(guān)軟件、原理圖 例程及相關(guān)資料;

/********************************************************************
                            宏定義
*********************************************************************/
#include<STC15W408AS.h>                 //庫(kù)文件
#include<intrins.h>
#define uchar unsigned char//宏定義無(wú)符號(hào)字符型
#define uint unsigned int  //宏定義無(wú)符號(hào)整型
#define ADC_POWER   0x80            //ADC 電源控制位
#define ADC_FLAG    0x10            //ADC 轉(zhuǎn)換結(jié)束標(biāo)志位
#define ADC_START   0x08            //ADC 開(kāi)始轉(zhuǎn)換控制位
#define ADC_SPEEDLL 0x00            //210 個(gè)時(shí)鐘周期轉(zhuǎn)換一次
#define ADC_SPEEDL  0x20            //420 個(gè)時(shí)鐘周期轉(zhuǎn)換一次
#define ADC_SPEEDH  0x40            //630 個(gè)時(shí)鐘周期轉(zhuǎn)換一次
#define ADC_SPEEDHH 0x60            //840 個(gè)時(shí)鐘周期轉(zhuǎn)換一次

typedef unsigned char  INT8U;
typedef unsigned int   INT16U;
#define ENABLE_ISP 0x82 //系統(tǒng)工作時(shí)鐘<20MHz 時(shí),對(duì)IAP_CONTR 寄存器設(shè)置此值
#define WD1        0x5a        //使用STC11xx系列單片機(jī)時(shí),先寫入0x5a,然寫入0xa5
#define WD2        0xa5
char IAPAddr=0;
/********************************************************************
                            初始定義
*********************************************************************/
code uchar seg7code[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //顯示段碼 數(shù)碼管字跟
code uint  wendu[106][2]={//溫度與電阻阻值對(duì)應(yīng)關(guān)系表格
0,3274,//0度對(duì)應(yīng)阻值32.74k
1,3111,//1度對(duì)應(yīng)阻值31.11k
2,2957,//2度對(duì)應(yīng)阻值29.57k
3,2812,//
4,2674,//
5,2545,
6,2422,
7,2306,
8,2196,
9,2092,
10,1993,
11,1900,
12,1811,
13,1728,
14,1648,
15,1573,
16,1501,
17,1433,
18,1369,
19,1308,
20,1250,
21,1194,
22,1142,
23,1092,
24,1045,
25,1000,//25度對(duì)應(yīng)阻值10k               
26,957,//26度對(duì)應(yīng)阻值9.57k
27,916,
28,877,
29,840,
30,805,
31,771,
32,739,
33,709,
34,679,
35,652,
36,625,
37,600,
38,576,
39,553,
40,531,
41,510,
42,490,
43,471,
44,453,
45,435,
46,418,
47,402,
48,387,
49,372,
50,358,
51,345,
52,332,
53,320,
54,308,
55,297,
56,286,
57,276,
58,266,
59,256,
60,247,
61,238,
62,230,
63,222,
64,214,
65,207,
66,199,
67,193,
68,186,
69,180,
70,174,
71,168,
72,162,
73,157,
74,        152,
75,        147,
76,        142,
77,        137,
78,        133,
79,        128,
80,        124,
81,        120,
82,        116,
83,        113,
84,        109,
85,        106,
86,        102,//86度對(duì)應(yīng)阻值1.02k
87,        99,//87度對(duì)應(yīng)阻值0.99k
88,        96,
89,        93,
90,        90,
91,        88,
92,        85,
93,        82,
94,        80,
95,        78,
96,        75,
97,        73,
98,        71,
99,        69,
100,67,
101,65,
102,63,
103,61,
104,59,
105,58//105度對(duì)應(yīng)阻值0.58k
         

};        
/********************************************************************
                            I/O定義
*********************************************************************/
bit z=0,ba=0,k=0,zs=0;
uchar y=0,smg2=0,s1=0,s2=0,ii=0;
uint s=0,bai=0,shi=0,ge=0,js=0,dat=0,dat1=0,dat2=0;
sbit aj1=P5^4;
sbit aj2=P5^5;
sbit out=P3^4;
sbit L1=P3^5;//數(shù)碼管位控制
sbit L2=P3^6;//數(shù)碼管位控制
sbit L3=P3^7;//數(shù)碼管位控制
sbit dp=P3^3;//小數(shù)點(diǎn)
bit kt=0,kt_1=0;
uchar trg=0,trg_1=0,cont=0,cont_1=0;
uchar ReadData=0,ReadData_1=0;
/********************************************************************
                            E2P函數(shù)
*********************************************************************/
union union_temp16
{
    INT16U un_temp16;
    INT8U  un_temp8[2];
}my_unTemp16;

INT8U Byte_Read(INT16U add);              //讀一字節(jié),調(diào)用前需打開(kāi)IAP 功能
void Byte_Program(INT16U add, INT8U ch);  //字節(jié)編程,調(diào)用前需打開(kāi)IAP 功能
void Sector_Erase(INT16U add);            //擦除扇區(qū)
void IAP_Disable();                       //關(guān)閉IAP 功能
/********************************************************************
                         AD轉(zhuǎn)換初始化程序
*********************************************************************/
void InitADC()
{
   P1ASF = 0x80;          //設(shè)置P1.7口AD轉(zhuǎn)換,必須加
   P1M0=0X80;
   P1M1=0X80;        //設(shè)置P1.7口為開(kāi)漏模式,使用AD功能
    ADC_RES = 0;                   //AD數(shù)據(jù)寄存器清空
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;//打開(kāi)AD電源,轉(zhuǎn)換周期210
    _nop_();                        //延時(shí)一個(gè)機(jī)器周期
    _nop_();
        _nop_();                        //延時(shí)一個(gè)機(jī)器周期
}
/********************************************************************
                         AD轉(zhuǎn)換控制程序
*********************************************************************/
uchar ADCRead(uchar px)          //轉(zhuǎn)換輸出的數(shù)據(jù) (PX為通道口)
{
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL |px| ADC_START;//開(kāi)始轉(zhuǎn)換
    _nop_();                        //延時(shí)一個(gè)機(jī)器周期
    _nop_();                                                //延時(shí)一個(gè)機(jī)器周期
    _nop_();                                                //延時(shí)一個(gè)機(jī)器周期
    _nop_();                                                //延時(shí)一個(gè)機(jī)器周期
    while (!(ADC_CONTR & ADC_FLAG));//等待轉(zhuǎn)換結(jié)束
    ADC_CONTR &= ~ADC_FLAG;         //關(guān)閉AD轉(zhuǎn)換
    return ADC_RES;                //返回?cái)?shù)據(jù)
}
/*******************************************************************
*                        讀取按鍵狀態(tài)
********************************************************************/
void KeyRead()//讀取按鍵IO口函數(shù)
{
     ReadData = aj1^0xff;  // 讀取按鍵狀態(tài)取反后賦值給ReadData
     trg = ReadData & (ReadData ^ cont);  //trg短按,每按下按鍵trg=1;抬手后為trg=0,長(zhǎng)按為trg=0
     cont = ReadData;   //cont長(zhǎng)按,長(zhǎng)按cont=1,抬手后cont=0

         ReadData_1 = aj2^0xff;  // 讀取按鍵狀態(tài)取反后賦值給ReadData
     trg_1 = ReadData_1 & (ReadData_1 ^ cont_1);  //trg短按,每按下按鍵trg=1;抬手后為trg=0,長(zhǎng)按為trg=0
    cont_1 = ReadData_1;   //cont長(zhǎng)按,長(zhǎng)按cont=1,抬手后cont=0
}
/*******************************************************************
*                        按鍵
********************************************************************/
void key_1()
{         
  if(trg & 0x01) //短按
  {      
     kt_1=0;
         kt=1; //這是短按標(biāo)志位,kt=1說(shuō)明短按了
  }
  if((aj1!=0)&&(kt==1))//判斷
        {
         z=1; // 選位標(biāo)志位
         y++; //選位
         out=1;
         if(y==4)
          {
           z=0;
           k=1;
           y=0;
//           s=s1+s2+s3;
          }
         kt=0;
    }           // 短按

}

void key_2()
{         
  if(trg_1 & 0x01) //短按
  {      
     kt=0;
         kt_1=1; //這是短按標(biāo)志位,kt=1說(shuō)明短按了
  }
  if((aj2!=0)&&(kt_1==1))//判斷
        {
         if(y==1)
          {
           s1++;
           if(s1>9)
            {
                 s1=0;
                }
          }
         if(y==2)
          {
           s2+=10;
           if(s2>90)
            {
                 s2=0;
                }
          }
         s=s1+s2;
         kt_1=0;
    }           // 短按
}

/*******************************************************************
*                        定時(shí)器配置
********************************************************************/
void ConfigTimer0(){
        TMOD=0x01;//將定時(shí)器0,1都設(shè)置為模式1
    TH0=0XFC;//1ms
    TL0=0X66;
        TR0=1;//開(kāi)啟定時(shí)器0
        ET0=1;//開(kāi)定時(shí)器0的中斷
        EA=1;//開(kāi)總中斷
}

/*******************************************************************
*                         顯示
********************************************************************/
void led(uint date)
{
bai=date/100;
shi=date%100/10;
ge=date%10;
}
/*******************************************************************
*                         t0定時(shí)器
********************************************************************/
void timer0() interrupt 1
{
    TH0=0XFC;//1ms
    TL0=0X66;
        js++;
        if(js==200){ba=1;js=0;}
           if(z==0){
          smg2++;
          }
           else{
             smg2=y;//讓逐個(gè)顯示位
           }

             switch(smg2){                 //數(shù)碼管掃描
        /**************數(shù)碼管-開(kāi)始*****************/
          case 1:  if(y==0){P1=0x39;} else {P1=seg7code[ge];}L3=1;L2=1;L1=0;dp=0;break;//從P2進(jìn)P0出
          case 2:  P1=seg7code[shi];L3=1;L2=0;L1=1;if(zs==0){dp=0;}else{dp=1;}break;
          case 3:  P1=seg7code[bai]; L3=0;L2=1;L1=1;dp=0;break;      
        /**************數(shù)碼管-結(jié)束*****************/      
          default: smg2=0; L3=1;L2=1;L1=1; break;
         }
}
/********************************************************************
                            主函數(shù)
*********************************************************************/
void main()
{
  ConfigTimer0();        //定時(shí)器初始化
    InitADC();           //AD初始化
    P1M0 = 0xff;   //設(shè)置強(qiáng)推挽和開(kāi)漏模式
    P1M1 = 0x80;
        P3M0 = 0x08;   //小數(shù)點(diǎn)使用
        P3M1 = 0x00;
        if(Byte_Read(0X0001)==0xff){s1=0;s2=0;}//首次讀取,如果讀到0xFF說(shuō)明沒(méi)有存過(guò)數(shù)據(jù),直接付給00值
        else
        {
         s1=Byte_Read(0X0001);
         s2=Byte_Read(0X0002);
        }
        s2=s2*10;
        s=s2+s1;
   while(1)
    {
          if(ba==1){
                    dat=((ADCRead(7)*51)/255);
                                dat1=(dat*1000)/(51-dat);
                                for(ii=0;ii<106;ii++)  {
                  if((dat1 <= wendu[ii][1]) && (dat1 > wendu[ii+1][1])){ //對(duì)比列表查找溫度
                   dat2=(wendu[ii][0]);//dat2為溫度值
                                   ii=0;
                   break;
                  }
                             }
                                ba=0;
                           } //51是單片機(jī)的工作電壓,單片機(jī)的工作電壓是多少這個(gè)就是多少
            
          if((y==0)&&(z==0)){zs=1;led((dat2*10));} //zs標(biāo)志位控制小數(shù)點(diǎn)
          if(y==1){zs=0;led(s1);}
          if(y==2){zs=0;led(s2);}
          if(y==3){zs=0;z=0;led(s);}
          if(dat2>s){out=0;}else{out=1;}
          KeyRead(); //按鍵掃描
          key_1();
          key_2();
          if(k==1)
          {
             Sector_Erase(0);
                 Byte_Program(0x0001,s1);  //寫入扇區(qū)
                 Byte_Program(0x0002,(s2/10));  //寫入扇區(qū)
                 k=0;
          }
        }
  
}
//讀一字節(jié),調(diào)用前需打開(kāi)IAP 功能,入口:DPTR = 字節(jié)地址,返回:A = 讀出字節(jié)
INT8U Byte_Read(INT16U add)
{
    IAP_DATA = 0x00;
    IAP_CONTR = ENABLE_ISP;         //打開(kāi)IAP 功能, 設(shè)置Flash 操作等待時(shí)間
    IAP_CMD = 0x01;                 //IAP/ISP/EEPROM 字節(jié)讀命令

    my_unTemp16.un_temp16 = add;
    IAP_ADDRH = my_unTemp16.un_temp8[0];    //設(shè)置目標(biāo)單元地址的高8 位地址
    IAP_ADDRL = my_unTemp16.un_temp8[1];    //設(shè)置目標(biāo)單元地址的低8 位地址

    //EA = 0;
    IAP_TRIG = WD1;   //先送 WD1,再送WD2 到ISP/IAP 觸發(fā)寄存器,每次都需如此
    IAP_TRIG = WD2;   //送完WD2 后,ISP/IAP 命令立即被觸發(fā)起動(dòng)
    _nop_();
    //EA = 1;
    IAP_Disable();  //關(guān)閉IAP 功能, 清相關(guān)的特殊功能寄存器,使CPU 處于安全狀態(tài),
                    //一次連續(xù)的IAP 操作完成之后建議關(guān)閉IAP 功能,不需要每次都關(guān)
    return (IAP_DATA);
}
/*********************************************************************************************/
//字節(jié)編程,調(diào)用前需打開(kāi)IAP 功能,入口:DPTR = 字節(jié)地址, A= 須編程字節(jié)的數(shù)據(jù)
void Byte_Program(INT16U add, INT8U ch)
{
    IAP_CONTR = ENABLE_ISP;         //打開(kāi) IAP 功能, 設(shè)置Flash 操作等待時(shí)間
    IAP_CMD = 0x02;                 //IAP/ISP/EEPROM 字節(jié)編程命令

    my_unTemp16.un_temp16 = add;
    IAP_ADDRH = my_unTemp16.un_temp8[0];    //設(shè)置目標(biāo)單元地址的高8 位地址
    IAP_ADDRL = my_unTemp16.un_temp8[1];    //設(shè)置目標(biāo)單元地址的低8 位地址

    IAP_DATA = ch;                  //要編程的數(shù)據(jù)先送進(jìn)IAP_DATA 寄存器
    //EA = 0;
    IAP_TRIG = WD1;   //先送 WD1,再送WD2 到ISP/IAP 觸發(fā)寄存器,每次都需如此
    IAP_TRIG = WD2;   //送完WD2 后,ISP/IAP 命令立即被觸發(fā)起動(dòng)
    _nop_();
    //EA = 1;
    IAP_Disable();  //關(guān)閉IAP 功能, 清相關(guān)的特殊功能寄存器,使CPU 處于安全狀態(tài),
                    //一次連續(xù)的IAP 操作完成之后建議關(guān)閉IAP 功能,不需要每次都關(guān)
}
/*********************************************************************************************
//擦除扇區(qū), 入口:DPTR = 扇區(qū)地址 */
void Sector_Erase(INT16U add)
{
    IAP_CONTR = ENABLE_ISP;         //打開(kāi)IAP 功能, 設(shè)置Flash 操作等待時(shí)間
    IAP_CMD = 0x03;                 //IAP/ISP/EEPROM 扇區(qū)擦除命令

    my_unTemp16.un_temp16 = add;
    IAP_ADDRH = my_unTemp16.un_temp8[0];    //設(shè)置目標(biāo)單元地址的高8 位地址
    IAP_ADDRL = my_unTemp16.un_temp8[1];    //設(shè)置目標(biāo)單元地址的低8 位地址

    //EA = 0;
    IAP_TRIG = WD1;   //先送 WD1,再送WD2 到ISP/IAP 觸發(fā)寄存器,每次都需如此
    IAP_TRIG = WD2;   //送完WD2 后,ISP/IAP 命令立即被觸發(fā)起動(dòng)
    _nop_();
    //EA = 1;
    IAP_Disable();  //關(guān)閉IAP 功能, 清相關(guān)的特殊功能寄存器,使CPU 處于安全狀態(tài),
                    //一次連續(xù)的IAP 操作完成之后建議關(guān)閉IAP 功能,不需要每次都關(guān)
}
/*********************************************************************************************/
void IAP_Disable()
{
    //關(guān)閉IAP 功能, 清相關(guān)的特殊功能寄存器,使CPU 處于安全狀態(tài),
    //一次連續(xù)的IAP 操作完成之后建議關(guān)閉IAP 功能,不需要每次都關(guān)
    IAP_CONTR = 0;      //關(guān)閉IAP 功能
    IAP_CMD   = 0;      //清命令寄存器,使命令寄存器無(wú)命令,此句可不用
    IAP_TRIG  = 0;      //清命令觸發(fā)寄存器,使命令觸發(fā)寄存器無(wú)觸發(fā),此句可不用
    IAP_ADDRH = 0;
    IAP_ADDRL = 0;
}
/*********************************************************************************************/

image006.jpg (27.45 KB, 下載次數(shù): 53)

image006.jpg

image008.jpg (23.72 KB, 下載次數(shù): 58)

image008.jpg

image010.jpg (19.05 KB, 下載次數(shù): 65)

image010.jpg

image014.jpg (94.17 KB, 下載次數(shù): 65)

image014.jpg

image019.jpg (31.34 KB, 下載次數(shù): 54)

image019.jpg

GYJ-0299_NTC測(cè)溫檢測(cè)開(kāi)關(guān)量干節(jié)點(diǎn)輸出相關(guān)資料.rar

117.6 KB, 下載次數(shù): 48, 下載積分: 黑幣 -5

GYJ-0299_NTC測(cè)溫檢測(cè)開(kāi)關(guān)量干節(jié)點(diǎn)輸出使用說(shuō)明書.rar

1.05 MB, 下載次數(shù): 35, 下載積分: 黑幣 -5

GYJ-0299_NTC測(cè)溫檢測(cè)開(kāi)關(guān)量干節(jié)點(diǎn)輸出原理圖.pdf

103.7 KB, 下載次數(shù): 41, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表