UART_config(); EA = 1; //PrintString1(str) ; //发送到串口 // delay_10us(10); //延时100US while(1) { //------------------------ //调用温湿度读取子程序 RH(); //串口显示程序 //-------------------------- PrintString1(\ //发送湿度 U16temp1= U8RH_data_H*256 + U8RH_data_L ; a[3] = '0'+U16temp1; a[2] = '.'; a[1] = '0'+U16temp1/10; a[0] = '0'+U16temp1/100; PrintString1(a);PrintString1(\ \ PrintString1(\ //发送温度 U16temp1= U8T_data_H*256 + U8T_data_L ; a[3] = '0'+U16temp1; a[2] = '.'; a[1] = '0'+U16temp1/10; a[0] = '0'+U16temp1/100; PrintString1(a); PrintString1(\℃\\r\\n \ /* str[0]=U8RH_data_H; str[1]=U8RH_data_L; str[2]=U8T_data_H; str[3]=U8T_data_L; str[4]=U8checkdata;
PrintString1(str) ; //发送到串口 */ //读取模块数据周期不宜小于 2S delay_ms(200); delay_ms(200);delay_ms(200);delay_ms(200);delay_ms(200); delay_ms(50); }//elihw }
Delay.c文件
#include \
//========================================================================
// 函数: void delay_ms(unsigned char ms) // 描述: 延时函数。
// 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟. // 返回: none. // 版本: VER1.0 // 日期: 2013-4-1 // 备注:
//========================================================================
void delay_ms(unsigned char ms) {
unsigned int i; do{ i = MAIN_Fosc / 13000; while(--i) ; //14T per loop }while(--ms); }
void delay_10us(unsigned char j) {
unsigned char i; _nop_(); _nop_(); for(;j>0;j--) { for(i=0;i<57;i++); } }
delay.H文件
#ifndef __DELAY_H #define __DELAY_H
#include \
void delay_ms(unsigned char ms); void delay_10us(unsigned char j); #endif
STC15Fxxxx.H 文件
/*------------------------------------------------------------------*/
/* --- STC MCU International Limited -------------------------------*/ /* --- STC 1T Series MCU RC Demo -----------------------------------*/ /* --- Mobile: (86)13922805190 -------------------------------------*/
/* --- Fax: 86-0513-55012956,55012947,55012969 ---------------------*/ /* --- Tel: 86-0513-55012928,55012929,55012966 ---------------------*/ /* --- Web: www.GXWMCU.com -----------------------------------------*/ /* --- QQ: 800003751 ----------------------------------------------*/
/* If you want to use the program or the program referenced in the */ /* article, please specify in which data and procedures from STC */ /*------------------------------------------------------------------*/
#ifndef _STC15Fxxxx_H #define _STC15Fxxxx_H
#include
/* BYTE Registers */ sfr P0 = 0x80; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr S4CON = 0x84; sfr S4BUF = 0x85; sfr PCON = 0x87;
sfr TCON = 0x88; sfr TMOD = 0x89;
sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr AUXR = 0x8E;
sfr WAKE_CLKO = 0x8F; sfr INT_CLKO = 0x8F; sfr AUXR2 = 0x8F;
sfr RL_TL0 = 0x8A; sfr RL_TL1 = 0x8B; sfr RL_TH0 = 0x8C; sfr RL_TH1 = 0x8D;
sfr P1 = 0x90;
sfr P1M1 = 0x91; //P1M1.n,P1M0.n =00--->Standard, 01--->push-pull 都一样
sfr P1M0 = 0x92; // =10--->pure input, 11--->open drain sfr P0M1 = 0x93; //P0M1.n,P0M0.n =00--->Standard, 01--->push-pull sfr P0M0 = 0x94; // =10--->pure input, 11--->open drain sfr P2M1 = 0x95; //P2M1.n,P2M0.n =00--->Standard, 01--->push-pull sfr P2M0 = 0x96; // =10--->pure input, 11--->open drain sfr CLK_DIV = 0x97; sfr PCON2 = 0x97;
sfr SCON = 0x98; sfr SBUF = 0x99; sfr S2CON = 0x9A; // sfr S2BUF = 0x9B; //
sfr P1ASF = 0x9D; //只写,模拟输入(AD或LVD)选择
sfr P2 = 0xA0;
sfr BUS_SPEED = 0xA1; sfr AUXR1 = 0xA2; sfr P_SW1 = 0xA2;
sfr IE = 0xA8; sfr SADDR = 0xA9;
sfr WKTCL = 0xAA; //唤醒定时器低字节 sfr WKTCH = 0xAB; //唤醒定时器高字节 sfr S3CON = 0xAC; sfr S3BUF = 0xAD;
sfr IE2 = 0xAF; //STC12C5A60S2系列
实际上1T的
sfr P3 = 0xB0; sfr P3M1 = 0xB1; //P3M1.n,P3M0.n =00--->Standard, 01--->push-pull sfr P3M0 = 0xB2; // =10--->pure input, 11--->open drain sfr P4M1 = 0xB3; //P4M1.n,P4M0.n =00--->Standard, 01--->push-pull sfr P4M0 = 0xB4; // =10--->pure input, 11--->open drain sfr IP2 = 0xB5; //STC12C5A60S2系列 sfr IPH2 = 0xB6; //STC12C5A60S2系列 sfr IPH = 0xB7;
sfr IP = 0xB8; sfr SADEN = 0xB9; sfr P_SW2 = 0xBA;
sfr ADC_CONTR = 0xBC; sfr ADC_RES = 0xBD; sfr ADC_RESL = 0xBE;
sfr P4 = 0xC0; sfr WDT_CONTR = 0xC1; sfr IAP_DATA = 0xC2; sfr IAP_ADDRH = 0xC3; sfr IAP_ADDRL = 0xC4; sfr IAP_CMD = 0xC5; sfr IAP_TRIG = 0xC6; sfr IAP_CONTR = 0xC7;
sfr ISP_DATA = 0xC2; sfr ISP_ADDRH = 0xC3; sfr ISP_ADDRL = 0xC4; sfr ISP_CMD = 0xC5; sfr ISP_TRIG = 0xC6; sfr ISP_CONTR = 0xC7;
sfr P5 = 0xC8; //
sfr P5M1 = 0xC9; // sfr P5M0 = 0xCA; // sfr P6M1 = 0xCB; // sfr P6M0 = 0xCC; // sfr SPSTAT = 0xCD; // sfr SPCTL = 0xCE; // sfr SPDAT = 0xCF; //
sfr PSW = 0xD0; sfr T4T3M = 0xD1;
//带AD系列 //带AD系列 //带AD系列 P5M1.n,P5M0.n P5M1.n,P5M0.n =00--->Standard, 01--->push-pull =10--->pure input, 11--->open drain =00--->Standard, 01--->push-pull =10--->pure input, 11--->open drain