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

📄 智能温度记录仪.txt

📁 一种有效控制温度的智能温度记录仪
💻 TXT
字号:
keilc516.02 T2口当波特率发生器,SFR如何设置? [51abc] [18次] 01-3-27 20:27:28

look,自己慢慢看,不要问! [haotz] [71次] 01-3-27 21:22:53 
#include <reg52.h>
#include "ser.h"
#include "sk.h"
#include "utilies.h"

code const unsigned char Version[]="\t智能温度记录仪 版本1.4 版权所有 2000
年5月!\n\r"
                        "\t设计:郝太忠 \n\r";
code const unsigned char Menu[]="按[V]键显示版本信息\r\n"
                                "按[1]键显示历史数据\r\n";
code const unsigned char Title[]="时间:\t\t1路\t2路\t3路\t4路\t5路\t6路
\r\n";
code const unsigned char errmsg[]="按键无效!\r\n";

unsigned char comdata=0x0;

void init_serial(void)
{
    SCON = 0X50;
    RCAP2L = 0Xb2;   /* 4800 bps */
    RCAP2H = 0XFF;
    ES = 1;            /*IE.4  */
    RI = 0;            /*SCON.0*/
    wrt_string(Version);
    wrt_string(Menu);
}


/* The Timer is set to BaudRate Generator */
void init_timer2(void)
{
      T2CON = 0X34;
      T2MOD = 0X0;
      TR2  = 1;                                 /*  T2CON.2 start timer  */
}


SCON_int () interrupt 4 using 3
{

  if(RI)
    {
      RI=0;
      comdata=SBUF;
      SBUF=comdata;
    }
  if(TI) TI=0;      
}                  

void wrt_ch(char c)
{       
        while(!TI);
        TI=0;
        SBUF=c;

}
void wrt_string(char * string)
{
        ES=0;
        TI=1;
        while(*string) {
                if(*string=='\n')
                        wrt_ch('\r');
                wrt_ch(*string);
                string++;
        }
        while(!TI);
        TI=0;
        ES=1;
}
code const unsigned char JMP00[]=
{0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x02,0x00,0x00};

void command(void)
{
   switch(comdata) {
        case 0:
                break;
        case 'V':
        case 'v':
                comdata=0x0;
                wrt_string(Version);
                wrt_string(Menu);
                break;
        case '1':
                comdata=0x0;
                wrt_string(Title);
                HisData2Com();                  /* 2000/9/18  */
                break;
        case '\r':
        case '\n':        
                break;
        default:
                comdata=0x0;
                wrt_string(errmsg);
                break;
   }
}

idata unsigned int  ComRec;
idata unsigned int  Comcnt;
idata unsigned char ctmp1,ctmp2;
idata unsigned char ComBuf[45];
extern TempRec trHis;
void HisData2Com(void)
{
        ComRec=Get_Wrt_Ptr( )-1;
        for(Comcnt=1;Comcnt<E2RAMSIZE/(sizeof(TempRec)-2)-1;Comcnt++)
        {
                Read_one_Rec(ComRec*(sizeof(TempRec)-2));
                if(ComRec<=1) ComRec=E2RAMSIZE/(sizeof(TempRec)-2)-1;
                else ComRec--;

                ComBuf[0]  = cHIGH(trHis.time.Month)+'0';
                ComBuf[1]  = cLOW (trHis.time.Month)+'0';
                ComBuf[2]  ='/';
                ComBuf[3]  = cHIGH(trHis.time.Day)  +'0';
                ComBuf[4]  = cLOW (trHis.time.Day)  +'0';
                ComBuf[5]  =' ';
                ComBuf[6]  = cHIGH(trHis.time.Hour) +'0';
                ComBuf[7]  = cLOW (trHis.time.Hour) +'0';
                ComBuf[8]  =':';
                ComBuf[9]  = cHIGH(trHis.time.Min)  +'0';
                ComBuf[10] = cLOW (trHis.time.Min)  +'0';
                ComBuf[11]  ='\t';

                ctmp1 = Binary2BCD(trHis.temp[0]/100);
                ComBuf[12]  = cHIGH(ctmp1)  +'0';
                ComBuf[13] = cLOW (ctmp1)  +'0';

                ctmp2 = Binary2BCD(trHis.temp[0]%100);
                ComBuf[14]  = cHIGH(ctmp2)  +'0';
                ComBuf[15] = cLOW (ctmp2)  +'0';
                ComBuf[16]  ='\t';

                ctmp1 = Binary2BCD(trHis.temp[1]/100);
                ComBuf[17]  = cHIGH(ctmp1)  +'0';
                ComBuf[18] = cLOW (ctmp1)  +'0';

                ctmp2 = Binary2BCD(trHis.temp[1]%100);
                ComBuf[19]  = cHIGH(ctmp2)  +'0';
                ComBuf[20] = cLOW (ctmp2)  +'0';
                ComBuf[21]  ='\t';

                ctmp1 = Binary2BCD(trHis.temp[2]/100);
                ComBuf[22]  = cHIGH(ctmp1)  +'0';
                ComBuf[23] = cLOW (ctmp1)  +'0';

                ctmp2 = Binary2BCD(trHis.temp[2]%100);
                ComBuf[24]  = cHIGH(ctmp2)  +'0';
                ComBuf[25] = cLOW (ctmp2)  +'0';
                ComBuf[26]  ='\t';

                ctmp1 = Binary2BCD(trHis.temp[3]/100);
                ComBuf[27]  = cHIGH(ctmp1)  +'0';
                ComBuf[28] = cLOW (ctmp1)  +'0';

                ctmp2 = Binary2BCD(trHis.temp[3]%100);
                ComBuf[29]  = cHIGH(ctmp2)  +'0';
                ComBuf[30] = cLOW (ctmp2)  +'0';
                ComBuf[31]  ='\t';

                ctmp1 = Binary2BCD(trHis.temp[4]/100);
                ComBuf[32]  = cHIGH(ctmp1)  +'0';
                ComBuf[33] = cLOW (ctmp1)  +'0';

                ctmp2 = Binary2BCD(trHis.temp[4]%100);
                ComBuf[34]  = cHIGH(ctmp2)  +'0';
                ComBuf[35] = cLOW (ctmp2)  +'0';
                ComBuf[36]  ='\t';

                ctmp1 = Binary2BCD(trHis.temp[5]/100);
                ComBuf[37]  = cHIGH(ctmp1)  +'0';
                ComBuf[38] = cLOW (ctmp1)  +'0';

                ctmp2 = Binary2BCD(trHis.temp[5]%100);
                ComBuf[39]  = cHIGH(ctmp2)  +'0';
                ComBuf[40] = cLOW (ctmp2)  +'0';
                
                ComBuf[41]  ='\r';
                ComBuf[42]  ='\n';
                ComBuf[43]  ='\0';

                wrt_string(ComBuf);
        }


}

/*
void main(void)
{
        init_timer2( );
        init_serial( );
}

*/


 
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2001 


⌨️ 快捷键说明

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