電子稱C語言程序_第1頁
電子稱C語言程序_第2頁
電子稱C語言程序_第3頁
電子稱C語言程序_第4頁
電子稱C語言程序_第5頁
免費預覽已結(jié)束,剩余3頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

精選文庫下面介紹main.c主程序編寫,其他程序略。(1) 頭文件和一些宏定義#include #include #include #include lcd.h#include hx711.h#include keyboard.h/定義量程系數(shù)#define RATIO 2114/1623/定義標識volatile bit FlagTest = 0;/定時測試標志,每0.5秒置位,測完清0volatile bit FlagKeyPress = 0; /有鍵按下標志,處理完畢清0volatile bit FlagSetPrice = 0; /價格設置狀態(tài)標志,設置好為1。/管腳定義sbit LedA = P22;sbit beep = P10;sbit alert = P11;/顯示用變量int Counter;uchar idata str16 = 000000;int i, iTemp;/稱重用變量unsigned long idata FullScale; /滿量程AD值/1000unsigned long AdVal; /AD采樣值unsigned long weight; /重量值,單位gunsigned long idata price; /單價,長整型值,單位為分 unsigned long idata money; /總價,長整型值,單位為分/鍵盤處理變量uchar keycode;uchar DotPos; /小數(shù)點標志及位置/函數(shù)聲明void int2str(int, char *);void Data_Init();void Port_Init(); void Timer0_Init();void Timer0_ISR () ;void INT1_Init();void KeyPress(uchar);void To_Zero();void Display_Price();void Display_Weight();void Display_Money();/整型轉(zhuǎn)字符串的函數(shù),轉(zhuǎn)換范圍0-65536void int2str(int x, char* str) int i=1; int tmp=10; while(x/tmp!=0) i+; tmp*=10; tmp=x; stri=0; while(i1) str-i=0+(tmp%10); tmp/=10; str0=tmp+0; /重新找回零點,每次測量前調(diào)用void To_Zero() FullScale=ReadCount()/1000; price=0;/顯示單價,單位為元,四位整數(shù),兩位小數(shù)void Display_Price() unsigned int i,j; display_GB2312_string(5,44, ); i = price/100; /得到整數(shù)部分 j = price - i*100;/得到小數(shù)部分 int2str(i,str1); /顯示整數(shù)部分 if (i=1000) display_GB2312_string(5,44,str1); else if (i=100) display_GB2312_string(5,52,str1); else if (i=10) display_GB2312_string(5,60,str1); else display_GB2312_string(5,68,str1); /顯示小數(shù)點 display_GB2312_string(5,76,.); /顯示小數(shù)部分 int2str(j,str1); if (j=10) display_GB2312_string(3,60,str1); else display_GB2312_string(3,68,str1); display_GB2312_string(3,76,.); int2str(j,str1); if (j10) display_GB2312_string(3,84,00); display_GB2312_string(3,100,str1); else if (j999999) /超出顯示量程 display_GB2312_string(7,44,-); return; i = money/100; /得到整數(shù)部分 j = money - i*100;/得到小數(shù)部分 int2str(i,str1); /顯示整數(shù)部分 if (i=1000) display_GB2312_string(7,44,str1); else if (i=100) display_GB2312_string(7,52,str1); else if (i=10) display_GB2312_string(7,60,str1); else display_GB2312_string(7,68,str1); /顯示小數(shù)點 display_GB2312_string(7,76,.); /顯示小數(shù)部分 int2str(j,str1); if (j= 200) FlagTest = 1; Counter = 0; /按鍵響應程序,參數(shù)是鍵值/返回鍵值:/ 7 8 9 10(清0)/ 4 5 6 11(刪除)/ 1 2 3 12(未定義)/ 14(未定義) 0 15(.) 13(確定價格)void KeyPress(uchar keycode) switch (keycode) case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: /目前在設置整數(shù)位,要注意price是整型,存儲單位為分 if (DotPos = 0) /最多只能設置到千位if (price0x8000) weight=0; weight=10000*weight/FullScale; weight=weight*RATIO; /如果超量程,則報警 if (weight = 10000) beep = 0;alert = 0;display_GB2312_string(3,60,-);display_GB2312_string(7,44,-); /如果不超量程 else beep = 1;alert = 1;/顯示重量值 Display_Weight(); /如果單價設定好了,則計算價格 if (FlagSetPrice = 1) money = weight*price/1000; /money單位為分 /顯示總金額 Display_Money(); else display_GB2312_string(7,44, ); /清測試標志 FlagTes

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論