電子秤仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (23.56 KB, 下載次數: 38)
下載附件
2018-12-10 03:15 上傳
單片機源程序如下:
- /**********************************************************************************
- 注:質量計算函數:位于adc0804.c文件
- 價格計算函數:位于key.c文件
- 仿真:使用方法———鍵盤輸入一個數,再輸入+ - * /,最后輸入等號,得到結果
- eg:4*=
- **********************************************************************************/
- #include <reg52.h>
- #include "function.h"
- #include "setting.h"
- #include "lcd.h"
- #include "key.h"
- #include "adc0804.h"
- uchar quantity_analog=0; //存放物體質量數據_ADC讀取的模擬量
- float quantity_digital=0; //存放物體質量數據_ADC轉換后的數字量
- float price=0; //存放價格參數
- void main(void)
- {
- // char *string = "Total:"; //字符
- 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(); //掃描按鍵函數
- quantity_digital=quantity_count(); //獲取物體質量———————————————浮點型(float)
- price =price_count(); //獲取鍵盤輸入,計算后的價格——浮點型(float)
- print_weight(0,1); //顯示質量
- if(price>0) //大于0時顯示價格
- {
- print_price(0,2); //顯示價格
- while(1) //計算結束,等待清零鍵按下
- {
- key_scan();
- if(key == ' ')
- {
- system_init(); //系統復位函數
- break;
- }
- }
- }
- if(key == ' ')
- system_init(); //系統復位函數
- }
- }
- /*******************************************************************************/
- /*
- //外部中斷 P3^3 ,用于識別鍵盤輸入
- void temer1() interrupt 3
- {
- EX1=0;
- Matrix_key_num=key_scan();
- EX1=1;
- }
- */
復制代碼
0.png (38.37 KB, 下載次數: 46)
下載附件
2018-12-10 03:16 上傳
所有資料51hei提供下載:
電子秤.zip
(237.68 KB, 下載次數: 92)
2018-12-9 17:13 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|