📄 智能温度记录仪.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 + -