📄 ceshi.c
字号:
#include "PL3105.h"
#define uchar unsigned char
#define uint unsigned int
/*常量定义*/
#define CHECK_TIME 1000 //5秒钟
#define PULSE_DZ_CN 3 //待测表收到PULSE_DZ_CN个脉冲后,显示误差
#define PULSE_JX_CN 3 //机械表收到PULSE_JX_CN个脉冲后,显示误差
//写24XX不同空间的地址指令
#define WR_2402 0xA0 // 24空间0-2K 不受保护的低半部分
#define WR_2404 0xA2 // 24空间2-4K 受保护的高半部分
/****** I/O 口设置 ********/
sbit pulse_bz_input = P1^5; //标准表脉冲采样
sbit pulse_dc_input = P1^6; //待测表脉冲采样
sbit beep = P1^4; // 峰鸣器驱动
sbit relay = P1^7; // 继电器驱动
sbit lamp = P1^0; // 调试时用的指示灯
sbit S_Clk = P1^2; // FM24C04的时钟口
sbit S_Dat = P1^3; // FM24C04的数据口
uchar data pulse_bz_pb; //标准表脉冲判别
uchar data pulse_dc_pb; //待测表脉冲判别
uchar data pulse_bz_flag; //标准表脉冲标志
uchar data pulse_dc_flag; //待测表脉冲标志
uchar data clear_flag; //
uint data pulse_bz_cn; //标准表脉冲计数器
uint data pulse_dc_cn; //待测表脉冲计数器
uint data pulse_bz_time; //标准表脉冲计时
uint data pulse_dc_time; //待测表脉冲计时
uint data pulse_bz_t; //标准表脉冲临时计时
uint data pulse_dc_t; //待测表脉冲临时计时
uchar data check_t_num;
uchar data an_start_flag; //
uchar data key_const_reg; //
uchar data key_save_reg; //
uchar data reset_flag;
uchar data key_stop_flag;
uchar data check_step; //
uint data check_time; //
uchar data error; //检查脉冲时出错
uchar data check_pulse; //检查脉冲
uchar data sign_flag; //+-符号,数码显示用
uchar data showing; // 当前表常数正在显示.0隐藏
uchar data const_num;
uchar data current_flash_cn; //当前数码管闪烁的位置。
uchar data time3; //
uchar data flash_stop; //消除在设置常数时闪烁位为隐藏状态。
uchar xdata led_show_list[6];//数码管显示的数据 译码后的数据。
uchar xdata led_show_buf[6];
uchar xdata user_id[6];
uchar xdata user_wc[6];
uchar xdata time_reg[7];
uchar xdata constant_mtr[6]; //电表常数,BCD码中的个位十位百位千位。
uchar data constant_cn; //电表常数的排序位置。
uchar data flashing_time; //设置常数时数码管闪烁定时器
uchar bdata flashing_con; //设置常数相关的位组合
sbit flashing_pb=flashing_con^0;
sbit have_pulse= flashing_con^1; //待测表有脉冲。数码管动态显示有脉冲
sbit FM24_Bit = flashing_con^2; //
uchar data have_pulse_cn; //待测表有脉冲循环计数,用于数码管动态显示有脉冲
uchar data beep_time; //响铃时间。
uchar data beep_time2; //响铃时间2。
uchar data led_show_flag; //可刷新数码管显示的标志
uchar data key_cn; //按键按下的时间(5毫秒的倍数)
uchar data key_time; //按键屏蔽时间
//uchar data flash_flag; //闪灯标志
//uchar data flash_cn; //闪灯计数器
//uchar data flash_time; //闪烁节奏定时器
uchar data hello_flag;
uchar data Timer_RS_2; //
uchar data save_eff_flag1;
uchar data save_eff_flag2;
uchar data watchdog_reset; //看门狗可清标志
uchar data constant_all_flag; //='A'可以显示常数。
uchar data constant_showing; //='S'当前正在显示常数
uchar xdata read_buf[16]; // 读取FM24时用的中间缓冲区
uchar xdata write_buf[16]; // 写入FM24时用的中间缓冲区
uchar xdata constant_all[60]; // 10个常数
uchar data save_num;
uint data Timer_RS_3;
uint data Timer_RS; // 232发射/接收定时器
uchar data RS_Re_OK;
uchar data RS232_State; // RS232接收过程标志:
uchar data RS232_Pointer; // RE_232 BUF数据指针
//uchar data RS232_Add_Len; // RE_232 规约中地址部分的长度
uchar data RS232_Data_Len; // RE_232 规约中数据部分的长度
uchar data RS232_Data_CRC1; // RE_232 规约中的校验和
uchar data RS232_Data_CRC2;
uchar xdata RS232_buf[60]; // Com1中断所接收的数据(RS232数据)
uchar xdata RS232_buf_bak[60]; // Com1中断所接收的数据(RS232数据)备份
//uint data Timer_RS_Answer; // RS232应答时间
uchar xdata Send_RS232[60]; // Com1中断所发射的数据(RS232数据)
uchar xdata Send_RS232_SELF[60]; // 发送232数据缓冲区,自检用
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -