給大家分享個電子秤仿真+單片機源代碼
ADC0804+LCD1602+矩陣鍵盤
電子秤仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (24.6 KB, 下載次數(shù): 70)
下載附件
2018-4-20 03:32 上傳
單片機源程序如下:
- /**********************************************************************************
- 注:質(zhì)量計算函數(shù):位于adc0804.c文件
- 價格計算函數(shù):位于key.c文件
- 仿真:使用方法———鍵盤輸入一個數(shù),再輸入+ - * /,最后輸入等號,得到結(jié)果
- eg:4*=
- **********************************************************************************/
- #include <reg52.h>
- #include "function.h"
- #include "setting.h"
- #include "lcd.h"
- #include "key.h"
- #include "adc0804.h"
- uchar quantity_analog=0; //存放物體質(zhì)量數(shù)據(jù)_ADC讀取的模擬量
- float quantity_digital=0; //存放物體質(zhì)量數(shù)據(jù)_ADC轉(zhuǎn)換后的數(shù)字量
- float price=0; //存放價格參數(shù)
- void main(void)
- {
- // char *string = "Total:"; //字符
- lcd_init(); //初始化lcd
- init_interrupt(); //中斷打開、選擇函數(shù)
- write_com(0x80); //數(shù)據(jù)指針定位到第一行第一個字處
- write_com(0x80+8); //將光標移到 距離數(shù)字的位置
- delay_ms(100);
- // print_string_location(0,2,string); //顯示Price 字符串
- print_string_location(0,2,"Total:"); //顯示Price 字符串
- while(1)
- {
- key_scan(); //掃描按鍵函數(shù)
- quantity_digital=quantity_count(); //獲取物體質(zhì)量———————————————浮點型(float)
- price =price_count(); //獲取鍵盤輸入,計算后的價格——浮點型(float)
- print_weight(0,1); //顯示質(zhì)量
- if(price>0) //大于0時顯示價格
- {
- print_price(0,2); //顯示價格
- while(1) //計算結(jié)束,等待清零鍵按下
- {
- key_scan();
- if(key == ' ')
- {
- system_init(); //系統(tǒng)復位函數(shù)
- break;
- }
- }
- }
- if(key == ' ')
- system_init(); //系統(tǒng)復位函數(shù)
- }
- }
- /*******************************************************************************/
- /*
- //外部中斷 P3^3 ,用于識別鍵盤輸入
- void temer1() interrupt 3
- {
- EX1=0;
- Matrix_key_num=key_scan();
- EX1=1;
- }
- */
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.jpg (5.47 KB, 下載次數(shù): 59)
下載附件
2018-4-20 03:33 上傳
所有資料51hei提供下載:
電子秤.zip
(118.88 KB, 下載次數(shù): 145)
2018-4-19 12:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|