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

📄 ledcontrol.h

📁 在51上控制LED屏的显示和输出
💻 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 + -