ImageVerifierCode 换一换
格式:DOCX , 页数:58 ,大小:25.05KB ,
资源ID:17609762      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17609762.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(自动称量参考程序Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

自动称量参考程序Word下载.docx

1、feng_ming8=0XEE,0X61,0X32,0XFF,0XFC,0XFF,0XFF,0XCC;*声明无需存入EEPROM的变量*/unsigned char send_message20 =0;/发送帧消息专用数组unsigned char read_message20 = 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

2、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 页unsigned long mu_biao_liang_8 = 0;/X0.8的数值unsigned long shi_shi_zhi_liang = 0;/动态,实时质量/*声明需要存入EEPROM的变量*/unsigned int mi_

3、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 lo

4、ng cai_yang_da = 0;/校准时,大砝码采样值unsigned long cai_yang_zhong = 0;/较准时,中砝码采样值unsigned long cai_yang_xiao = 0;/较准时,小砝码采样值unsigned char liang_du = 130;/默认亮度130float 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

5、);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 charcontrol_id,unsigned long dat,unsigned char counter);void ying_j

6、ian_ce_shi(void);unsigned int tft_read_txt(unsigned char hua_mian,unsigned chartxt);void shu_ru_mi_ma(void);void tft_show_6bit(unsigned char hua_mian,unsigned chartxt,unsigned long num);void can_shu_she_zhi(void);void tft_show_4bit(unsigned char hua_mian,unsigned chartxt,unsigned int num);void jiao_

7、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 页void get_xi_shu(void);float get_zhi_liang(void);unsigned long shi_ji_zh

8、ong_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;P2M1=0x10;P2M0=0;P3M1=0;P3M0=0;P4M1=0;P4M0=0;P5M1=0;P5M0=0;SCON = 0x

9、50;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*读取*EEPRO

10、M*/mi_ma = read_eeprom(1);step_fast = read_eeprom(2);step_low = read_eeprom(3);mu_biao_liang = read_eeprom(4);第 3 页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_ee

11、prom(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)&(read_message2 = 0x01)hua_mian_id = read_message4;*发送亮度控制信号*/send_

12、zhen_tou;send_data1(0x60);send_data1(liang_du);send_zhen_wen;/将亮度调暗到130delay_1ms(100);/200ms,使传感器电源供给稳定get_xi_shu();/计算称重系数pi_zhong = hx711_10();set_txt(1,6,mu_biao_liang,6);/工作界面的目标量mu_biao_liang_1 = mu_biao_liang - pian_yi;/计算去掉提前量的值mu_biao_liang_8 = mu_biao_liang_1 * 8 / 10;/0.8send_str1(feng_min

13、g);jd1 = 1;/*主循环*/while(1)delay_1ms(5);第 4 页elsehua_mian_id = 0xfe;switch(hua_mian_id)/工作界面case 0x01:use_k();/处理按键按下结果updata_zhong_liang(shi_ji_zhong_liang();break;/输入密码界面,设置各项参数case 0x02:shu_ru_mi_ma();/硬件功能测试case 0x03:ying_jian_ce_shi();/参数设置case 0x04:can_shu_she_zhi();/传感器校准case 0x05:jiao_cheng()

14、;/特别密码界面case 0x06:te_shu_mi_ma();break;case 0xfe:;void PCA_isr() interrupt 7第 5 页CCF0 = 0;void uart1_inte(void) interrupt 4 using 1if(RI)if(SBUF = 0XAA)IAP_CONTR = 0X60;if(SBUF = 0XEE)uart_read_f = 1;for(uart_read_count=0;uart_read_count20;uart_read_count+)read_messageuart_read_count = 0;uart_read_c

15、ount = 0;if(uart_read_f = 1)read_messageuart_read_count =SBUF;uart_read_count+;if(SBUF = 0XFF)uart_read_f = 0;uart_read_count = 19;RI = 0;if(TI)TI = 0;busy = 0;void send_data1(unsigned char dat)while(busy);busy = 1;SBUF = dat;void send_str1(unsigned char *s)第 6 页dowhile(*s != 0xcc);send_data1(*s+);/

16、1msvoid delay_1ms(unsigned char k)unsigned char i, j,m;for(m = 0;mk;m+)_nop_();i = 22;j = 128;while (-j);while (-i);/50msvoid delay_50ms(unsigned int m)unsigned char i, j, k;unsigned int n = 0;for(n=0;nm;n+)i = 5;j = 52;k = 195;while (-k);/按键扫描程序,返回5个按键值的某一个unsigned char scan_k(void)第 7 页unsigned ch

17、ar i=0x38;/什么都没有按,则返回8if(k_1 = 0)delay_1ms(70);/70msi = 0x31;if(k_2 = 0)i = 0x32;if(k_3 = 0)i = 0x33;if(k_4 = 0)i = 0x34;if(k_5 = 0)i = 0x35;return i;/读取HX711数值,25个脉冲unsigned long read_hx711(void)unsigned long count=0;unsigned char i = 0;sck = 0;/AD转换准备。AD结束后,电平也为0;count=0;/接收存储区清零第 8 页while(d_out =

18、 1);/等待芯片准备好.sck = 1;NOP2();/芯片上升沿读取数据。for(i=0;i23;i+)NOP1();if(d_out) count+;/上升沿读取数据count = count 1;1;return count;void mao_pao_pai_xu(unsigned long *a,unsigned char chang_du)unsigned char i=0,j=0;unsigned long temp=0;for(j=0;jai+1)temp = ai;ai = ai+1;ai+1 = temp;/读取HX711unsigned long hx711_10(voi

19、d)unsigned long count3 = 0;第 9 页unsigned char i=0;3;counti = read_hx711();mao_pao_pai_xu(count,3);return count1 ;/返回中间值/获取称重系数void get_xi_shu(void)long a2 = 0.0;a0 = fa_ma_zhong - fa_ma_xiao;a1 = cai_yang_zhong - cai_yang_xiao;xi_shu_xiao = a0/a1;a0 = fa_ma_da - fa_ma_zhong;a1 = cai_yang_da - cai_ya

20、ng_zhong;xi_shu_da = a0/a1;/返回当前质量float get_zhi_liang(void)float a=0;a = hx711_10();if(a pi_zhong)a = pi_zhong; cai_yang_zhong)a = (a - pi_zhong)*xi_shu_xiao;a = (a - pi_zhong)*xi_shu_da;return a;/返回实际重量unsigned long shi_ji_zhong_liang(void)float a =0;a = get_zhi_liang();a *= 100;/步进电机处理函数,开关和频率void

21、 step_control(unsigned char k,unsigned int f)if(f = 0)第 10 页step_f = FOSC / 4 / f +0.5 ;if(k=1)CR = 1;void updata_zhong_liang(unsigned long ke)unsigned long i=0;unsigned char a,b,c,d,e;i = ke;a = i / 10000;b = i / 1000 % 10;c = i / 100 % 10;d = i / 10 % 10;e = i % 10;/send_str1(shua_xin_off);set_txt(1,1,a,1);set_txt(1,2,b,1);set_txt(1,3,c,1);set_txt(1,4,d,1);set_txt(1,5,e,1);/send_str1(shua_xin_on);/更新某画面,某号控件,某个字节长度的数字control_id,unsigned long dat,unsigned char counter)unsigned char p8 = 0;unsigned char i =0;if(counter = 1)第 11 页send_data1(0XB1);send_data1(0X10);sen

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1