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

📄 mylib.h

📁 红外抄表系统的源代码。利用非电信号传送控制信息和数据信息
💻 H
字号:
#ifndef MYLIB_H
#define MYLIB_H

sfr WDT = 0x0A6; //for S52
#include <reg52.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <intrins.h>
#include <absacc.h>

#define CMDOFF 0x0
#define CMDON 0x01
#define CMDLCDOFF 0x02
#define CMDLCDON 0x03
#define CMDB3C4 0x29

#define DEL10 2//1
#define DELL10 56//28
#define DL10ms 300//230
#define DL11ms 2000//3291

#define Phase_A 0x00
#define Phase_B 0x01
#define Phase_C 0x02

#define S1 0x00
#define S2 0x01
#define S3 0x02
#define S4 0x03
#define S5 0x04
#define S6 0x05

#define S12 0x12
#define S13 0x13
#define S14 0x14

#define Ua 0x01
#define Ub 0x02
#define Uc 0x03
#define Ia 0x04
#define Ib 0x05
#define Ic 0x06
#define Ip 0x07
#define UX 0x08

typedef unsigned char uchar;
typedef unsigned int uint;


struct fault_time
{
    uchar sec;
    uchar min;
    uchar hour;
};

sbit beep = P1^5;
sbit SCL=P1^0;
sbit SDA=P1^1;
sbit EEPROM_Enable=P1^7;
sbit T_CLK=P1^4; //实时时钟时钟线引脚
sbit T_IO=P1^3;  //实时时钟数据线引脚
sbit T_RST=P1^2; //实时时钟复位线引脚

sbit clrbit = P3^3;

sbit P3_2=P3^2;
sbit P3_4=P3^4;
sbit UX_in=P3^6;
sbit P3_5 = P3^5;//5_17 added
sbit P2_4 = P2^4;//5_18 added
sbit P2_5 = P2^5;
sbit P2_7 = P2^7;//载波信号输出端

sbit Ip_in=P0^6;
sbit Ic_in=P0^5;
sbit Ib_in=P0^4;
sbit Ia_in=P0^3;
sbit Uc_in=P0^2;
sbit Ub_in=P0^1;
sbit Ua_in=P0^0;

sbit CS2PIN = P2^0;  //for IC2
sbit CS1PIN = P2^1;  //for IC1
sbit CLKPIN = P2^2;
sbit DIPIN = P2^3;

sbit b7=B^7;
sbit b6=B^6;
sbit b5=B^5;
sbit b4=B^4;
sbit b3=B^3;
sbit b2=B^2;
sbit b1=B^1;
sbit b0=B^0;

sbit ACC_7=ACC^7;
sbit ACC_0=ACC^0;

#define ON 0
#define OFF 1
#define Ua_EEPROM 0
#define Ub_EEPROM 6
#define Uc_EEPROM 12
#define Ia_EEPROM 18
#define Ib_EEPROM 24
#define Ic_EEPROM 30
#define Ip_EEPROM 36
#define UX_EEPROM 42
//#define UN_EEPROM 48
#define Num_EEPROM 48
#define acpshort_EEPROM 54
#define EMPTY_EEPROM 60

void delay(uint t);
bit rdbit(void);
void wr_s_eeprom(uchar *buf, uint start_address, uchar len);
void rd_s_eeprom(uchar *buf, uint start_address, uchar len);

void RTInputByte(uchar ucDa); //往DS1302写入1Byte数据;ucDa 写入的数据
uchar RTOutputByte(void); //从DS1302读取1Byte数据
void W1302(uchar ucAddr, uchar ucDa);/*往DS1302写入数据;ucAddr: DS1302地址, ucDa: 要写的数据*/
uchar R1302(uchar ucAddr);//读取DS1302某地址的数据
void Set1302(uchar time[7]);
void LCD_Reset(uchar region);
void LCD_WC1(uchar Ctrl_Byte);
void LCD_WC2(uchar Ctrl_Byte);
void LCD_WriteBit(bit C_D);
void LCD_WD1(uchar data_byteB,uchar data_byteA);
void LCD_WD2(uchar data_byteB,uchar data_byteA);
void DispIC1(uchar Sx,struct fault_time f_time);
void DispIC2_time(uchar Sx,uchar time[7]);
void Phase_select(uchar Phase);
void Init_IC2(void);
void Init_IC1(void);
void TotalNumOfTrb(uchar Total_Num);
/*********************************************************/
uchar hex_to_dec(uchar hex_dat);
void DispIC1_start_stop(uchar Sx,uchar time[6]);
void loop(void);
uchar dec_to_hex(uchar dec_dat);
void set_time(void);
uchar Key6(void);
uchar Key5(void);
uchar Key2(void);//5_17 added
uchar Key3(void);//5_18 added
/*void InitTimer0();//5_17 shaded*/
void InitTimer2();//5_17 shaded
void KickDog(void);

void DisStartT(uchar id,uint Eeprom);
void DisStopT(uchar id,uint Eeprom);

void WriteOneByte(uint address,uchar ch);
uchar ReadOneByte(uint address);
void InitSci(void);
void Change_phase(void);
void SciSend(void);
#endif

⌨️ 快捷键说明

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