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

📄 mylib.h

📁 液晶显示屏12232的驱动程序.内包含了EEPROM及AD7705的驱动程序
💻 H
字号:
#ifndef mylib_h
#define mylib_h
#include "STC89C5XRD.h"   
#include "intrins.h"
#include "stdio.h"

sbit Led = P1^5;
sbit A0 = P2^0;
sbit _WR = P2^3;
sbit E1 = P2^1;
sbit E2 = P2^2;
#define lcd_data P0

#define set_E1() (E1=1)                   //1片选M
#define set_E2() (E2=1)                   //1片选S
#define set_A0() (A0=1)                   //1数据    
#define set_WR() (_WR=1)                  //1读

#define clr_E1() (E1=0)                   //0
#define clr_E2() (E2=0)                   //0
#define clr_A0() (A0=0)                   //0命令
#define clr_WR() (_WR=0)                  //0写

//液晶显示控制命令表
#define disp_off			0xAE		//显示关闭
#define disp_on 			0xAF		//显示打开
#define disp_start_line  	0xC0		//显示起始地址(后5位-表示0-31行)
#define page_addr_set		0xB8		//页地址设置(0~3)
#define col_addr_set		0x00		//列地址设置(0~61)
#define status_busy			0x80		//0=ready
#define mode_write          0xEE        //写模式
#define dynamic_driver      0xA4        //动态驱动 
#define adc_select			0xA0		//clockwise
#define clk32 	            0xA9		//刷新时钟设置1/32
#define clk16 	            0xA8		//刷新时钟设置1/16
#define reset    			0xE2		//软件复位

#define uchar unsigned char
#define uint  unsigned int
typedef     unsigned char	INT8U;		/* 8 bit 无符号整型  */
typedef     unsigned int    INT16U;     /* 16 bit 无符号整型 */

#define NOP() _nop_();

void display_1();
void display_2();
void display_4();
void display_num(uchar mode);

void lcd_init(void);					//LCD初始化
void lcd_clr(void);                     //LCD清屏
void lcd_clr1(uchar page,uchar i,uchar withe,uchar mode);
void lcd_clr2();
void wait_ready(void);					//等待ready
void draw_bmp(uchar col,uchar layer,uchar width,uchar *bmp);	
                                        //点阵码显示输出
void disp_one_ascii(uchar col,uchar layer,uchar ascii_code,uchar mode);
                                     //单个ascci码输出(ascii_code为ascii编码)
void disp_ram_data(uchar col,uchar layer,uchar n,uchar mode);   
                                        //ram数据(数字)显示输出
void dprintf(uchar col,uchar layer,uchar *buf,uchar mode);     
                                        //通用混合字串显示
void display_3();
void draw_bmp1(uchar col,uchar width,uchar *bmp);

typedef struct data_gb16				//汉字字模数据结构
{
	uchar index[2];
	uchar zimo[32]; 
};

uchar code Num0[];
uchar code Num1[];
uchar code Num2[];
uchar code Num3[];
uchar code Num4[];
uchar code Num5[];
uchar code Num6[];
uchar code Num7[];
uchar code Num8[];
uchar code Num9[];
uchar code Num00[];
uchar code Num01[];
uchar code Num02[];
uchar code Num03[];
uchar code Num04[];
uchar code Num05[];
uchar code Num06[];
uchar code Num07[];
uchar code Num08[];
uchar code Num09[];
uchar code Picture[];
uchar code Power[];
uchar code Power1[];
uchar code Power2[];
uchar code Power3[];
uchar code ascii[] ;


/*flash_eeprom*/
/* 定义命令 */
#define READ_AP_and_Data_Memory_Command				0x01        /*  字节读数据存储区   */
#define PROGRAM_AP_and_Data_Memory_Command          0x02        /*  字节编程数据存储区 */
#define SECTOR_ERASE_AP_and_Data_Memory_Command     0x03        /*  扇区擦除数据存储区 */
/* 定义常量 */
#define ERROR   0
#define OK      1

/* 定义Flash 操作等待时间 */
#define        MCU_CLOCK_40MHz
//#define         MCU_CLOCK_20MHz
//#define        MCU_CLOCK_10MHz
//#define        MCU_CLOCK_5MHz
#ifdef MCU_CLOCK_40MHz
        #define WAIT_TIME        0x00
#endif
#ifdef MCU_CLOCK_20MHz
        #define WAIT_TIME        0x01
#endif
#ifdef MCU_CLOCK_10MHz
        #define WAIT_TIME        0x02
#endif
#ifdef MCU_CLOCK_5MHz
        #define WAIT_TIME        0x03
#endif




/* 调试控制项 */
#define         DEBUG_STC89C_LE58RD+

//#define         DEBUG_STC89C_LE52RC

//#define USED_BYTE_QTY_IN_ONE_SECTOR                1
//#define USED_BYTE_QTY_IN_ONE_SECTOR                2
//#define USED_BYTE_QTY_IN_ONE_SECTOR                4
//#define USED_BYTE_QTY_IN_ONE_SECTOR                8
//#define USED_BYTE_QTY_IN_ONE_SECTOR                16
//#define USED_BYTE_QTY_IN_ONE_SECTOR                32
//#define USED_BYTE_QTY_IN_ONE_SECTOR                64
#define USED_BYTE_QTY_IN_ONE_SECTOR                128
//#define USED_BYTE_QTY_IN_ONE_SECTOR                256
//#define USED_BYTE_QTY_IN_ONE_SECTOR                512
#define		DELAY_CONST         60000

//#ifdef DEBUG_STC89C_LE58RD+                        //STC89C58RD+,  89LE58RD+
        #define DEBUG_AP_Memory_Begin_Sector_addr		0x0000
        #define DEBUG_AP_Memory_End_Sector_addr         0x7e00
        #define DEBUG_AP_Memory_End_Byte_addr           0x7fff

        #define DEBUG_Data_Memory_Begin_Sector_addr     0x8000
//#endif
/*#ifdef DEBUG_STC89C_LE52RC                        //STC89C52RC,        89LE52RC
        #define DEBUG_AP_Memory_Begin_Sector_addr		0x0000
        #define DEBUG_AP_Memory_End_Sector_addr			0x1e00
        #define DEBUG_AP_Memory_End_Byte_addr			0x1fff

        #define DEBUG_Data_Memory_Begin_Sector_addr		0x2000
#endif*/

INT8U byte_read(INT16U byte_addr); /* 字节读 */
INT8U sector_erase(INT16U sector_addr);/* 扇区擦除 */
INT8U byte_program(INT16U byte_addr, INT8U original_data);/* 字节编程 */
INT8U byte_program_and_verify(INT16U byte_addr, INT8U original_data);/* 字节编程并校验 */
/* 写数据进 数据Flash存储器, 只在同一个扇区内写,不保留原有数据	*/
/* begin_addr,被写数据Flash开始地址;counter,连续写多少个字节; array[],数据来源	*/
INT8U sequential_write_flash_in_one_sector(INT16U begin_addr, INT16U counter, INT8U array[]);

/* 写数据进数据Flash存储器(EEPROM), 只在同一个扇区内写,保留同一扇区中不需修改的数据	*/
/* begin_addr,被写数据Flash开始地址;counter,连续写多少个字节; array[],数据来源		*/
INT8U write_flash_with_protect_in_one_sector(INT16U begin_addr, INT16U counter, INT8U array[]);
extern INT8U code Test_array_total[512] ;


/*serio8*/
void init_serial(void);
void send_string_com(unsigned char *str,unsigned int strlen);
void send_char(unsigned char ch);

/*ad7705*/
sbit AD_CLK=P1^0;
sbit AD_CS=P1^1;
sbit AD_IN=P1^2;
sbit AD_OUT=P1^3;
sbit AD_REDY=P1^4;
sbit AD_RST=P1^7;
void delay();
unsigned int ReadDataCh1_Ch2(bit mode);
void writeword(unsigned int byteword);
unsigned int readdata();
void INI7705(void);
void ad7705_init(void);
uint getch(uchar ch);
void CH1_init(void);
void CH2_init(void);
void AD7705_reset(void);
void Wait7705(unsigned int t) ;
void CountChange(void);


void CountResult(bit mode);
void displayresult1(bit mode);
uint filter(bit mode);
#endif

⌨️ 快捷键说明

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