




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——自動稱量參考程序自動稱量參考程序.c
#include#defineFOSC22118400L/***定義通訊協(xié)議***/#definesend_zhen_tousend_data1(0xEE);#definesend_zhen_wen
send_data1(0xFF);send_data1(0xFC);send_data1(0xFF);send_data1(0xFF);
/*************定義程序必需有的變量********************************/bitbusy=0;//COM1使用
sbitsck=P0^3;//定義HX711的SCK
sbitd_out=P0^2;//定義HX711的D_0UT引腳sbitk_1=P3^2;sbitk_2=P3^3;sbitk_3=P3^4;sbitk_4=P3^5;
sbitk_5=P2^0;//定義了5個開關(guān)量輸入sbitstep_en=P2^2;sbitstep_dir=P2^3;
//sbitstep_pul=P2^4;//定義步進(jìn)電機(jī)驅(qū)動引腳sbitjd1=P1^7;
sbitjd2=P1^6;//定義繼電器驅(qū)動引腳
/************通信使用命令********************/xdataunsignedcharread_hua_mian_id[8]=
{0XEE,0XB1,0X01,0XFF,0XFC,0XFF,0XFF,0xcc};xdataunsignedchar
shua_xin_off[8]={0xee,0xb3,0x00,0xff,0xfc,0xff,0xff,0xcc};xdataunsignedchar
shua_xin_on[8]={0xee,0xb3,0x01,0xff,0xfc,0xff,0xff,0xcc};xdataunsignedchar
feng_ming[8]={0XEE,0X61,0X32,0XFF,0XFC,0XFF,0XFF,0XCC};/**********聲明無需存入EEPROM的變量******************/unsignedcharsend_message[20]=0;//發(fā)送幀消息專用數(shù)組unsignedcharread_message[20]=0;//接收消息專用緩沖區(qū)unsignedcharuart_read_f=0;
unsignedcharuart_read_count=0;
unsignedlonghx711_ad=0;//HX711AD轉(zhuǎn)換結(jié)果unsignedlongad_bi_jiao=0;
unsignedintstep_f=0;//存放頻率計(jì)算結(jié)果unsignedintlin_step_f=10;unsignedcharhua_mian_id=0;floatxi_shu_xiao=0.0;floatxi_shu_da=0.0;
unsignedlongmu_biao_liang_1=0;//實(shí)際進(jìn)料時,去掉提前量的數(shù)值
第1頁
自動稱量參考程序.c
unsignedlongmu_biao_liang_8=0;//X0.8的數(shù)值unsignedlongshi_shi_zhi_liang=0;//動態(tài),實(shí)時質(zhì)量/***********聲明需要存入EEPROM的變量**********/unsignedintmi_ma=0;
unsignedintstep_fast=0;//步進(jìn)電機(jī)快速運(yùn)行的頻率unsignedintstep_low=0;//步進(jìn)電機(jī)慢速運(yùn)行的頻率unsignedlongmu_biao_liang=0;//目標(biāo)量unsignedlongpian_yi=0;//質(zhì)量偏移unsignedcharlv_bo=0;//濾波系數(shù)
unsignedintfa_ma_da=0;//校準(zhǔn)時大砝碼的
unsignedintfa_ma_zhong=0;//校準(zhǔn)時中砝碼質(zhì)量unsignedintfa_ma_xiao=0;//校準(zhǔn)時小砝碼質(zhì)量
unsignedlongcai_yang_da=0;//校準(zhǔn)時,大砝碼采樣值unsignedlongcai_yang_zhong=0;//較準(zhǔn)時,中砝碼采樣值unsignedlongcai_yang_xiao=0;//較準(zhǔn)時,小砝碼采樣值unsignedcharliang_du=130;//默認(rèn)亮度130floatpi_zhong=0;//定義皮重
/************聲明子函數(shù)********************/voiduse_k(void);
voidsend_data1(unsignedchardat);voidsend_str1(char*s);
voidnum_to_message(unsignedlongdat);unsignedlonghx711_10(void);
voidstep_control(unsignedchark,unsignedintf);voidupdata_zhong_liang(unsignedlongke);voiddelay_1ms(unsignedchark);voiddelay_50ms(unsignedintm);
voidset_txt(unsignedcharscreen_id,unsignedcharcontrol_id,unsignedlongdat,unsignedcharcounter);voidying_jian_ce_shi(void);
unsignedinttft_read_txt(unsignedcharhua_mian,unsignedchartxt);
voidshu_ru_mi_ma(void);
voidtft_show_6bit(unsignedcharhua_mian,unsignedchartxt,unsignedlongnum);
voidcan_shu_she_zhi(void);
voidtft_show_4bit(unsignedcharhua_mian,unsignedchartxt,unsignedintnum);voidjiao_cheng(void);
unsignedintass_to_num_4bit(unsignedchar*p);unsignedlongass_num_dot(unsignedchar*p);voidte_shu_mi_ma(void);
voidsave_eeprom(unsignedintadd,unsignedlongdat);unsignedlongread_eeprom(unsignedintadd);
第2頁
自動稱量參考程序.c
voidget_xi_shu(void);floatget_zhi_liang(void);
unsignedlongshi_ji_zhong_liang(void);
voidmao_pao_pai_xu(unsignedlong*a,unsignedcharchang_du);voidzheng_chang_xia_liao(void);voidkuai_su_qing_liao(void);voidset_mu_biao_liang(void);
/*************主函數(shù)**********************/voidmain(){
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,控制波特率發(fā)生器T2L=0xD0;
T2H=0xFF;//波特率設(shè)置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;
****************停留在開機(jī)畫面*****************/while(hua_mian_id==0){
send_str1(read_hua_mian_id);//獲取有效的畫面ID結(jié)果
if((read_message[1]==0xB1)
}
/*********發(fā)送亮度控制信號**********/
send_zhen_tou;send_data1(0x60);send_data1(liang_du);
send_zhen_wen;//將亮度調(diào)暗到130
delay_1ms(100);//200ms,使傳感器電源供給穩(wěn)定get_xi_shu();//計(jì)算稱重系數(shù)pi_zhong=hx711_10();
set_txt(1,6,mu_biao_liang,6);//工作界面的目標(biāo)量delay_1ms(100);
mu_biao_liang_1=mu_biao_liang-pian_yi;//計(jì)算去掉提前量
的值
mu_biao_liang_8=mu_biao_liang_1*8/10;//0.8send_str1(feng_ming);jd1=1;
/*****************主循環(huán)*******************/while(1){
send_str1(read_hua_mian_id);delay_1ms(5);
if((read_message[1]==0xB1)
switch(hua_mian_id)hua_mian_id=0xfe;
{
//case0x01:工作界面{
use_k();//處理按鍵按下結(jié)果}/break;
updata_zhong_liang(shi_ji_zhong_liang());
case0x02:/輸入密碼界面,設(shè)置各項(xiàng)參數(shù){
}break;
shu_ru_mi_ma();
/case0x03:/硬件功能測試{
}break;ying_jian_ce_shi();
/case0x04:/參數(shù)設(shè)置{
}break;
can_shu_she_zhi();
/case0x05:/傳感器校準(zhǔn){
}break;
jiao_cheng();
/case0x06:/特別密碼界面{
}break;te_shu_mi_ma();
case0xfe:{
}
}break;
;
第5頁
自動稱量參考程序.c
CCF0=0;
CH=0;CL=0;
}
voiduart1_inte(void)interrupt4using1{
if(RI){
if(SBUF==0XAA)
IAP_CONTR=0X60;
if(SBUF==0XEE)
{
uart_read_f=1;
for(uart_read_count=0;uart_read_counta[i+1]){
temp=a[i];a[i]=a[i+1];a[i+1]=temp;
}
}
}
}
//讀取HX711
unsignedlonghx711_10(void){
unsignedlongcount[3]=0;
第9頁
自動稱量參考程序.c
while(d_out==1);//等待芯片準(zhǔn)備好.sck=1;
NOP2();//芯片上升沿讀取數(shù)據(jù)。sck=0;NOP2();
for(i=0;i自動稱量參考程序.c
else{
CR=0;
step_f=FOSC/4/f+0.5;CH=0;CL=0;
CCAP0L=step_f;
CCAP0H=step_f>>8;
}
if(k==1){}else{}
CR=1;CR=0;
}
voidupdata_zhong_liang(unsignedlongke){
unsignedlongi=0;
unsignedchara,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);
}
//更新某畫面,某號控件,某個字節(jié)長度的數(shù)字
voidset_txt(unsignedcharscreen_id,unsignedcharcontrol_id,unsignedlongdat,unsignedcharcounter){
unsignedcharp[8]=0;unsignedchari=0;if(counter==1){
send_zhen_tou;
第11頁
自動稱量參考程序.c
send_data1(0XB1);send_data1(0X10);send_data1(0X00);send_data1(screen_id);send_data1(0X00);send_data1(control_id);
send_data1(dat+0x30);send_zhen_wen;
}else{
p[7]=dat%10+0x30;//
p[6]=dat%100/10+0x30;//p[5]=dat%1000/100+0x30;//p[4]=dat%10000/1000+0x30;//p[3]=dat%100000/10000+0x30;//p[2]=dat%1000000/100000+0x30;//p[1]=dat%10000000/1000000+0x30;//p[0]=dat/10000000+0x30;//
}
if(counter==8){
send_zhen_tou;send_data1(0XB1);send_data1(0X10);send_data1(0X00);send_data1(screen_id);send_data1(0X00);send_data1(control_id);
for(i=0;i>8;IAP_DATA=dat;IAP_TRIG=0x5a;IAP_TRIG=0xa5;_nop_();close_iap();}
unsignedcharread_byte(unsignedintaddr){
unsignedchardat=0;
IAP_CONTR=0x82;IAP_CMD=0x01;IAP_ADDRL=addr;
IAP_ADDRH=addr>>8;IAP_TRIG=0x5a;IAP_TRIG=0xa5;_nop_();_nop_();_nop_();_nop_();dat=IAP_DATA;
close_iap();
第15頁
自動稱量參考程序.c
unsignedintnum=0;//組合好的數(shù)字unsignedchari=0;//循環(huán)使用tong_xin[4]=hua_mian;tong_xin[6]=txt;send_str1(tong_xin);
if(read_message[4]==hua_mian){
for(i=0;i自動稱量參考程序.c
}
//在某扇區(qū)寫入一個4字節(jié)數(shù)據(jù)
voidsave_eeprom(unsignedintadd,unsignedlongdat){
unsignedintaddr=0;unsignedlongdat1=0;unsignedcharp[4]=0;unsignedchari=0;addr=add*512+1;dat1=dat;p[0]=dat1;dat1>>=8;p[1]=dat1;dat1>>=8;p[2]=dat1;dat1>>=8;p[3]=dat1;for(i=0;i}
//慢進(jìn)料速度設(shè)置
if((read_message[6]==4)while(read_message[i+8]){
p[i]=read_message[i+8]-0x30;i++;
}
for(k=0;k}
//中砝碼值
if((read_message[6]==2)read_message[6]=0xff;while(read_message[i+8]){
p[i]=read_message[i+8]-0x30;i++;
}
for(k=0;kmu_biao_liang_8){
step_control(1,step_low*80);break;
}
//假使按鍵按了K3,則馬上終止本次進(jìn)料if(scan_k()=='3'){
i=0;
step_control(0,0);
send_str1(feng_ming);break;
}
}
while(i){
shi_shi_zhi_liang=shi_ji_zhong_liang();
updata_zhong_liang(shi_shi_zhi_liang);//畫面更新if(shi_shi_zhi_liang>mu_biao_liang_1){
step_control(0,0);break;
}
//假使按鍵按了K3,則馬上終止本次進(jìn)料if(scan_k()=='3'){
第30頁
}
自動稱量參考程序.c
send_zhen_wen;break;
}
//清料程序??焖偾辶?0分鐘,按取消鍵中止voidkuai_su_qing_liao(void){
unsignedintm=0;
step_control(1,step_fast*80);while(1){
m++;
if(scan_k()=='3'){
send_str1(feng_ming)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)輸木材協(xié)議合同協(xié)議
- 《辦公室管理》課件
- 變更撫養(yǎng)權(quán)協(xié)議書
- 房地產(chǎn)公司聯(lián)建協(xié)議書
- 車輛的買賣協(xié)議書
- 超市禮品采購合同協(xié)議
- 送材料合同協(xié)議
- 顯失公平協(xié)議書
- 酒店前廳部管理軟件采購合同
- 個人信用服務(wù)合同
- 調(diào)兵山市招聘社區(qū)工作者真題2024
- 2025-2030中國臘味行業(yè)發(fā)展趨勢及發(fā)展前景研究報(bào)告
- 2025-2030中國手機(jī)外殼行業(yè)市場發(fā)展現(xiàn)狀及競爭格局與投資前景研究報(bào)告
- 《中型餐飲企業(yè)組織結(jié)構(gòu)》課件
- 2025年浙江紹興諸暨新城投資開發(fā)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 初中美育考試試題及答案
- 國際貿(mào)易基礎(chǔ)試題庫與答案
- 2025年北京市豐臺區(qū)九年級初三一模語文試卷(含答案)
- 財(cái)務(wù)與審計(jì)的關(guān)聯(lián)與差異試題及答案
- 2024年漢中市中醫(yī)醫(yī)院招聘筆試真題
- 租房養(yǎng)寵協(xié)議合同
評論
0/150
提交評論