📄 mylib.h
字号:
#ifndef mylib_h
#define mylib_h
#include "STC89C5XRD.h"
#include "intrins.h"
#include "stdio.h"
#include "math.h"
#include "string.h"
#define uchar unsigned char
#define uint unsigned int
typedef unsigned char INT8U; /* 8 bit 无符号整型 */
typedef unsigned int INT16U; /* 16 bit 无符号整型 */
sbit SetSerio=P2^7;
sbit Led = P4^1;
sbit Bell= P4^2;
sbit A0 = P1^1;
sbit _WR = P2^6;
sbit E1 = P1^2;
sbit E2 = P1^3;
#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 NOP() _nop_();
void display_1();
void display_2();
void display_4();
void display_num(uchar mode,uchar beginaddre,uchar cole,uchar k1a,uchar k2a,uint k);
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 Degree[];
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 Power[];
uchar code ascii[] ;
uchar code Keep_bit[];
uchar code SendShow[];
uchar code SendShow2[];
uchar code SendShow3[];
uchar code SendShow4[];
uchar code SendShow5[];
uchar code Left[];
uchar code Right[];
uchar code Biao[];
uchar code Ding[];
uchar code Zeng[];
uchar code Chang[];
uchar code Zhuan[];
uchar code Jue[];
uchar code Ju[];
/*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^4;
sbit AD_CS=P1^0;
sbit AD_IN=P1^5;
sbit AD_OUT=P1^6;
sbit AD_REDY=P2^5;
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 CLK_Reset();
//void CountChange(void);
//void CountResult(bit mode);
uint filter(bit mode);
void RTDkey();
void key();
void keyprocess(uchar KEY_NO);
void Main_menu();
void disp_num_order();
void test_menu();
//void wentai_menu();
//void speed_menu();
//void print_datas();
//void choice();
void turn_up(bit mode);
//void turn_down();
void Biao_ding();
void Turnaround_Power();
void Turnaround_Corner();
void Turnaround_Power_20();
void Turnaround_Corner_20();
void Turnaround_Power_ling_data();
void Turnaround_Power_20_data();
void Turnaround_Corner_ling_data();
void Turnaround_Corner_20_data();
void disp_numorder_settings();
//void ShowMENU_NO_1();
void Turnaround_Corner_test();
uint filter_biaoding(bit CHX);
void Turnaround_CornerORPower_SendValue();
void Turnaround_Corner_test2();
void Turnaround_CornerORPower_SendORnot();
void Turnaround_Corner_test3();
void display_num1(uchar beginaddre,uchar cole,uint k,bit mode);
//void send();
//void receive();
void test2();
void TestANdSend();
void send_string_com1(unsigned char *str,unsigned int strlen);
void Test_Case_9();
void Test_Case_10();
#define IDMENU_TEST 0x01
#define Bd_jm 0x02
#define Turnaround_Power_ling 0x03
#define Turnaround_Corner_ling 0x04
#define Turnaround_Power_20NM 0x05
#define Turnaround_Corner_20NM 0x06
#define Turnaround_Corner_Tstg 0x07
#define Turnaround_Corner_Tstg2 0x08
#define Turnaround_Corner_Tstg3 0x0a
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -