


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、自动称量参考程序 自动称量参考程序.c # include # define fosc 22118400l / *定义通讯协议*/ # define send_zhen_tou send_data1(0xee); # define send_zhen_wen send_data1(0xff);send_data1(0xfc);send_data1(0xff);send_data1(0xf f); / *定义程序必须有的变量 * */ bit busy = 0;/com1使用 sbit sck = p0;/定义hx711的sck sbit d_out = p0;/定义hx711的d_0ut引脚
2、sbit k_1 = p3; sbit k_2 = p3; sbit k_3 = p3; sbit k_4 = p3; sbit k_5 = p2;/定义了5个开关量输入 sbit step_en = p2; sbit step_dir = p2; / /sbit step_pul = p2;/定义步进电机驱动引脚 sbit jd1 = p1; sbit jd2 = p1;/定义继电器驱动引脚 / *通信使用命令*/ xdata unsigned char read_hua_mian_id8 = 0xee,0xb1,0x01,0xff,0xfc,0xff,0xff,0xcc; xdata un
3、signed char shua_xin_off8=0xee,0xb3,0x00,0xff,0xfc,0xff,0xff,0xcc; xdata unsigned char shua_xin_on8=0xee,0xb3,0x01,0xff,0xfc,0xff,0xff,0xcc; xdata unsigned char feng_ming8=0xee,0x61,0x32,0xff,0xfc,0xff,0xff,0xcc; / *声明无需存入eeprom的变量*/ unsigned char send_message20 =0;/发送帧消息专用数组 unsigned char read_mess
4、age20 = 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;
5、 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
6、_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_
7、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 u
8、pdata_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 t
9、xt); 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 lon
10、g 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
11、,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,
12、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 / *读取*e
13、eprom*/ 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
14、); 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_message1 = 0xb1) / *发送亮度控制信号*/ send_
15、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; /*主循环*/ while(1) send_str1(read_hua_mian_id); delay_1ms(5); if(read_message1 = 0xb1) switch(hua_mian_id) hua_mian_id = 0xfe; /case 0x01: 工作界面 use_k();/处理按键按下结果 / break; updata_zhong_liang(shi_ji_zhong_liang(); ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司星级浴室管理制度
- 商场用水用电管理制度
- 公司网络电话管理制度
- 宿舍个人安全管理制度
- 学校宿舍水电管理制度
- 土建工地水电管理制度
- 公司车辆清洁管理制度
- 决策执行闭环管理制度
- 单位atm机管理制度
- 固安通勤人员管理制度
- 2025年湖南长沙医疗健康投资集团有限公司招聘笔试参考题库含答案解析
- 电梯施工方案对重反绳轮
- 基于电磁感应原理的旋转设备转速精确测量技术研究
- 女装基础知识
- 职业培训机构组织架构及岗位职责分析
- 高考放假安全班会
- 预防性侵家长会
- 建筑施工安全风险管理制度
- 体彩笔试试题及答案
- 教学设计:2.1 声音的产生与传播
- 龙舟竞渡 y-2024-2025学年人美版(2024)初中美术七年级下册
评论
0/150
提交评论