📄 ledcontrol.h
字号:
/****************************header file ************************/
#ifndef _LEDCOMTROL_H
#define _LEDCONTROL_H
#include <W77E58.h>
/*************************define**********************************/
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define NOP _nop_()
#define True (bit) 1
#define False (bit) !True
#define Makeword(v1,v2) ((((uint)(v1))<<8)+(uint)(v2))
#define Hbyte(v1) ((uchar)((v1)>>8))
#define Lbyte(v1) ((uchar)((v1)&0xff))
#define CHARLEN 32
#define TIMELEN 7
//led screen scan mode
#define NORMAL 00
#define LEFTMOVE 01
#define RIGHTMOVE 02
#define UPMOVE 03
#define DOWNMOVE 04
#define OUTMOVE 05 //from middle to beside
#define INMOVE 06
/**************************communcation**********************************/
#define MAXLEN 40
#define DATALEN 5
#define UDATALEN 37
#define FRM_BE 0xff
#define ORD_BCOM 0x05 //order is begin communcation
#define ORD_ECOM 0x06
#define ORD_SETT 0x03
#define ORD_DISC 0x09
#define ORD_GETC 0x0A
#define RES_ERR_D 0xd5
#define RES_ERR_W 0xc5
#define RES_OK_W 0xc0
#define LENGTH_ND 4
#define LENGTH_D 36
/***************************************************************/
sbit SCL1 =P1^0; //data port of 24C02
sbit SDA1 =P1^1;
sbit SCL =P1^4; //data port of PCF8563
sbit SDA =P1^5;
sbit DS1820 =P1^6;
sbit FDDOG =P1^7;
sbit MCS =P3^5; //select port of IDT7134
/**********************varable declaration***********************/
// the struction of buffer
//common buffer
typedef struct {
uchar flag_char;
uchar flag_time;
uchar charbuf[CHARLEN];
uchar time[TIMELEN];
}com1buf;
//communcation buffer
typedef struct {
uchar flag; //flag of work is over
uchar len;
uchar loc;
uchar databuf[MAXLEN];
}buffer;
//define two display buffer,every one is 16 rows,every row is 32 byte data
typedef struct {
uchar data_already;
uchar order; // display order from W77E58
uchar buf_num;
uchar disp_buf1[32][16];
uchar disp_buf2[32][16];
}dis1pbuf;
//define buffer
buffer idata RECBUF; //receive data buffer
buffer idata SEDBUF; //send data buffer
volatile com1buf xdata COMBUF _at_ 0xC25; //using 3k address of external RAM
volatile uchar xdata wrt_DRAM_begin _at_ 0x800; //the flag for at89c51 when it cannot be read
volatile dis1pbuf xdata DISPBUF _at_ 0x801; //define display buffer from 2K address of external RAM
volatile uchar xdata wrt_DRAM_finish _at_ 0xffe; //the flag for at89c51 when it can be read
static bit flag_5min,flag_30sec,flag_begin;
static uchar count_sec,count_min, fd_dog;
static uchar fd_dog;
static uchar temp_z,temp_x; //to save the temperature vale
static uchar time[9]; //begin from time[0]
// sec,min,hour,date,week,month,year
//the last two data is temperature
/****************function declaration******************************/
/********************main*********************************/
void cpu_ini(void);
void variable_ini(void);
void watchdog(void);
void timer0_process(void);
void int0_process(void);
void Wrt_IDT7134_Buf1(void);
void Wrt_IDT7134_Buf2(void);
void put_char_dispbuf(uchar *ptr, uchar cnt);
void put_time_dispbuf(uchar time[],uchar num_model1[][16]);
void put_temp_dispbuf(uchar time[],uchar num_model1[][16]);
void put_format_dispbuf(uchar format_time1[][16],uchar format_temp1[][32]);
/**********************24C02********************************/
void get_c_code(uchar *ptr, uchar cnt);
void store_c_code(uchar *ptr, uchar cnt);
/*******************communcation***************************/
void command(uchar cmd);
void commu(void);
bit com_judge_ud(void);
bit com_packet_ud(uchar cmd);
bit com_packet_d(uchar cmd,uchar *ptr,uchar len);
bit com_crc_verify(void);
void serial0_process(void);
uint com_cal_crc(uchar *ptr, uchar len);
/************for PCF8563***********************/
void pcf8563_init(void);
void start_i2c(void);
void stop_i2c(void);
bit sendByte(uchar);
uchar rcvbyte(void);
void ack_i2c(bit);
void set_time(uchar time[]);
void get_time(uchar time[]);
/******** for DS1820************************/
void delay15(void); //delay 15us
void delay60(void); //delay 60us
void delay100m(void);
void write_0_IO(void);
void wrtie_1_IO(void);
bit read_IO(void);
void reset_IO(void);
void write_b_IO(uchar byte);
uchar read_b_IO(void);
void ds1820_ini(void);
void get_temp(uchar time[]);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -