自动称量参考程序
自动称量参考程序.c
# include
send_data1(0xFF);send_data1(0xFC);send_data1(0xFF);send_data1(0xF F);
/ *************定义程序必须有的变量 * *******************************/ bit busy = 0;//COM1使用
sbit sck = P0^3;//定义HX711的SCK
sbit d_out = P0^2;//定义HX711的D_0UT引脚 sbit k_1 = P3^2; sbit k_2 = P3^3; sbit k_3 = P3^4; sbit k_4 = P3^5;
sbit k_5 = P2^0;//定义了5个开关量输入 sbit step_en = P2^2; sbit step_dir = P2^3;
/ /sbit step_pul = P2^4;//定义步进电机驱动引脚 sbit jd1 = P1^7;
sbit jd2 = P1^6;//定义继电器驱动引脚
/ ************通信使用命令********************/ xdata unsigned char read_hua_mian_id[8] =
{ 0XEE,0XB1,0X01,0XFF,0XFC,0XFF,0XFF,0xcc}; xdata unsigned char
shua_xin_off[8]={0xee,0xb3,0x00,0xff,0xfc,0xff,0xff,0xcc}; xdata unsigned char
shua_xin_on[8]={0xee,0xb3,0x01,0xff,0xfc,0xff,0xff,0xcc}; xdata unsigned char
feng_ming[8]={0XEE,0X61,0X32,0XFF,0XFC,0XFF,0XFF,0XCC}; / **********声明无需存入EEPROM的变量******************/ unsigned char send_message[20] =0;//发送帧消息专用数组 unsigned char read_message[20] = 0;//接收消息专用缓冲区 unsigned char uart_read_f = 0;
unsigned char uart_read_count = 0;
unsigned long hx711_ad = 0;//HX711 AD转换结果 unsigned long ad_bi_jiao = 0;
unsigned int step_f = 0;//存放频率计算结果 unsigned int lin_step_f = 10; unsigned char hua_mian_id = 0; float xi_shu_xiao = 0.0; float xi_shu_da = 0.0;
unsigned long mu_biao_liang_1 = 0;//实际进料时,去掉提前量的数值
第 1 页
自动称量参考程序.c
unsigned long mu_biao_liang_8 = 0;//X0.8的数值 unsigned long shi_shi_zhi_liang = 0;//动态,实时质量 /***********声明需要存入EEPROM的变量**********/ unsigned int mi_ma = 0;
unsigned int step_fast = 0;//步进电机快速运行的频率 unsigned int step_low = 0;//步进电机慢速运行的频率 unsigned long mu_biao_liang = 0;//目标量 unsigned long pian_yi = 0;//质量偏移 unsigned char lv_bo = 0;//滤波系数
unsigned int fa_ma_da = 0;//校准时大砝码的
unsigned int fa_ma_zhong = 0;//校准时中砝码质量 unsigned int fa_ma_xiao = 0;//校准时小砝码质量
unsigned long cai_yang_da = 0;//校准时,大砝码采样值 unsigned long cai_yang_zhong = 0;//较准时,中砝码采样值 unsigned long cai_yang_xiao = 0;//较准时,小砝码采样值 unsigned char liang_du = 130;//默认亮度130 float pi_zhong = 0;//定义皮重
/************声明子函数********************/ void use_k(void);
void send_data1(unsigned char dat); void send_str1(char *s);
void num_to_message(unsigned long dat); unsigned long hx711_10(void);
void step_control(unsigned char k,unsigned int f); void updata_zhong_liang(unsigned long ke); void delay_1ms(unsigned char k); void delay_50ms(unsigned int m);
void set_txt(unsigned char screen_id,unsigned char control_id,unsigned long dat,unsigned char counter); void ying_jian_ce_shi(void);
unsigned int tft_read_txt(unsigned char hua_mian,unsigned char txt);
void shu_ru_mi_ma(void);
void tft_show_6bit(unsigned char hua_mian,unsigned char txt,unsigned long num);
void can_shu_she_zhi(void);
void tft_show_4bit(unsigned char hua_mian,unsigned char txt,unsigned int num); void jiao_cheng(void);
unsigned int ass_to_num_4bit(unsigned char *p); unsigned long ass_num_dot(unsigned char *p); void te_shu_mi_ma(void);
void save_eeprom(unsigned int add,unsigned long dat); unsigned long read_eeprom(unsigned int add);
第 2 页
自动称量参考程序.c
void get_xi_shu(void); float get_zhi_liang(void);
unsigned long shi_ji_zhong_liang(void);
void mao_pao_pai_xu(unsigned long *a,unsigned char chang_du); void zheng_chang_xia_liao(void); void kuai_su_qing_liao(void); void set_mu_biao_liang(void);
/*************主函数**********************/ void main() {
P0M1=0;P0M0=0; jd1 = 0;jd2 = 0;
P1M1=0;P1M0=0xff; jd1 = 0;jd2 = 0;
P2M1=0x10;P2M0=0; P3M1=0;P3M0=0; P4M1=0;P4M0=0; P5M1=0;P5M0=0; SCON = 0x50;
AUXR = 0x15;//COM1,COM2,控制波特率发生器 T2L = 0xD0;
T2H = 0xFF;//波特率设置 AUXR1 |= 0X40; PS = 1;
ES = 1;//允许串行口中断 AUXR1 |= 0X20; CMOD = 0X02;
step_f = FOSC / 4 / 3000; CCON = 0; CH = 0;
CL = 0;
CCAP0L = step_f;
CCAP0H = step_f >> 8; CCAPM0 = 0x4d; CR = 0;
/ **********************************/ EA = 1;//允许CPU总中断
step_en = 1; step_dir = 1;
delay_1ms(250);//250ms /
*********读取**EEPROM**********/
mi_ma = read_eeprom(1); step_fast = read_eeprom(2); step_low = read_eeprom(3);
mu_biao_liang = read_eeprom(4);
第 3 页
自动称量参考程序.c
pian_yi = read_eeprom(5); lv_bo = read_eeprom(6);
fa_ma_da = read_eeprom(7); fa_ma_zhong = read_eeprom(8); fa_ma_xiao = read_eeprom(9); cai_yang_da = read_eeprom(10); cai_yang_zhong = read_eeprom(11); cai_yang_xiao = read_eeprom(12); liang_du = read_eeprom(13); pi_zhong = read_eeprom(14);
/ **************************/
k_1 = 1; k_2 = 1; k_3 = 1; k_4 = 1;
/ k_5 = 1;
****************停留在开机画面*****************/ while(hua_mian_id == 0) {
send_str1(read_hua_mian_id); / /获取有效的画面ID结果
if((read_message[1] == 0xB1)&(read_message[2] == 0x01))
hua_mian_id = read_message[4];
}
/ *********发送亮度控制信号**********/
send_zhen_tou; send_data1(0x60); send_data1(liang_du);
send_zhen_wen;//将亮度调暗到130
delay_1ms(100);//200ms,使传感器电源供给稳定 get_xi_shu();//计算称重系数 pi_zhong = hx711_10();
set_txt(1,6,mu_biao_liang,6);//工作界面的目标量 delay_1ms(100);
mu_biao_liang_1 = mu_biao_liang - pian_yi;//计算去掉提前量
的值
mu_biao_liang_8 = mu_biao_liang_1 * 8 / 10;//0.8 send_str1(feng_ming); jd1 = 1;
/*****************主循环*******************/ …… 此处隐藏:3616字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




