基于51單片機的多功能電子秤具有去皮、計價、累計、清除、超重聲光報警等功能
自己做的,仿真、原理圖、程序、報告都有,下載之后就可以用(篇幅有限,顯示的程序不全,需要的話可在附件區下載)
操作說明:(1)輸入單價后,按下*鍵,再按=,顯示單個商品總價,再按+計入并存儲合計
(2)按下/去皮;按下ON/C清除單價;按下-全部清除
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
仿真1.png (153.27 KB, 下載次數: 118)
下載附件
仿真1
2020-7-18 11:07 上傳
仿真2.png (153.19 KB, 下載次數: 114)
下載附件
2020-7-18 11:07 上傳
仿真3.png (153.63 KB, 下載次數: 110)
下載附件
2020-7-18 11:07 上傳
仿真4.png (153.47 KB, 下載次數: 108)
下載附件
2020-7-18 11:07 上傳
原理圖
原理圖.png (120.06 KB, 下載次數: 115)
下載附件
2020-7-18 11:07 上傳
程序
程序.png (289.51 KB, 下載次數: 130)
下載附件
程序
2020-7-18 11:07 上傳
單片機源程序如下:
- /**********************************************************************************
- 注:質量計算函數:位于adc0804.c文件
- 價格計算函數:位于key.c文件
- 仿真:使用方法———鍵盤輸入一個數,再輸入+ - * /,最后輸入等號,得到結果
- eg:4*=
- **********************************************************************************/
- #include <reg52.h>
- #include "function.h"
- #include "setting.h"
- #include "lcd.h"
- #include "key.h"
- #include "adc0804.h"
- sbit Beep=P2^6; //IO口定義
- sbit LED=P2^7; //IO口定義
- uchar quantity_analog=0; //存放物體質量數據_ADC讀取的模擬量
- float quantity_digital=0; //存放物體質量數據_ADC轉換后的數字量
- float price=0; //存放價格參數
- float leiji[6]; //定義第1,2組數據
- float all=0;
- char code str[] = "Wd:";
- uint t=0,s=0;
- void main(void)
- {
- Beep=1; //IO口定義
- LED=1; //IO口定
- lcd_init(); //初始化lcd
- init_interrupt(); //中斷打開、選擇函數
- write_com(0x80); //數據指針定位到第一行第一個字處
- write_com(0x80+8); //將光標移到 距離數字的位置
- delay_ms(100);
- // print_string_location(0,2,string); //顯示Price 字符串
- print_string_location(0,2,"Total:"); //顯示Price 字符串
- while(1)
- {
- key_scan(); //掃描按鍵函數
-
- if(key == '-')
- {
- for(t=0;t<6;t++ )
- {
- leiji[t]=0;
- }
- system_init(); //系統復位函數
- key_operator=0;
- number_count=0; //清零
- all=0;
- }
-
-
-
- if(key == ' ')
- {
- for(t=0;t<6;t++ )
- {
- number_1[t]=0;
- }
- system_init(); //系統復位函數
- key_operator=0;
- number_count=0; //清零
- }
-
-
- quantity_digital=quantity_count()-qupi; //獲取物體質量———————————————浮點型(float)
- if(quantity_count()>45)
- {
- Beep=0; //IO口定義
- LED=0; //IO口定
- }
- else
- {
- Beep=1; //IO口定義
- LED=1; //IO口定
- }
-
-
- price=price_count(); //獲取鍵盤輸入,計算后的價格——浮點型(float)
- print_weight(0,1); //顯示質量
-
- if(price>0) //大于0時顯示價格
- {
- print_price(0,2); //顯示價格
- while(1) //計算結束,等待清零鍵按下
- {
- key_scan();
-
-
- if(key == ' ')
- {
- for(t=0;t<6;t++ )
- {
- number_1[t]=0;
- }
- price=0;
- key_operator=0;
- number_count=0; //清零
- system_init(); //系統復位函數
- break;
- }
-
- if(key == '-')
- {
- for(t=0;t<6;t++ )
- {
- leiji[t]=0;
- }
- system_init(); //系統復位函數
- key_operator=0;
- number_count=0; //清零
- all=0;
- }
-
-
- if(key == '+')
- {
- leiji[s]=price;
- all=0;
- price=0;
- key_operator=0;
- number_count=0; //清零
- system_init(); //系統復位函數
- s++;
- if(s==5) s=0;
-
- for(t=0;t<6;t++ )
- {
- all=all+leiji[t];
- }
-
- print_all(0,2); //顯示價格
-
- }
-
- }
- }
-
- if(key == ' ')
- {
- for(t=0;t<6;t++ )
- {
- number_1[t]=0;
- }
-
- price=0;
- key_operator=0;
- number_count=0; //清零
- system_init(); //系統復位函數
- }
-
- }
- }
復制代碼
文檔:
51hei.png (9.36 KB, 下載次數: 110)
下載附件
2020-7-18 22:53 上傳
全部資料51hei下載地址:
多功能稱重系統.zip
(7.95 MB, 下載次數: 350)
2020-7-18 11:19 上傳
點擊文件名下載附件
基于51單片機的多功能電子秤 下載積分: 黑幣 -5
|