|
傳感器與電路板對接順序: 紅、白、黑、綠 四根線分別依次對應電路板上的 E+、E-、A-、A+ 。 系統(tǒng)供電5V,可使用手機充電器USB接口或電腦USB接口直接供電。
一、日歷時間的設置 接通電源后,打開開關,開機默認處于“日歷時間模式”。屏幕顯示如下圖: 在“日歷時間模式”下,僅A、B、C、D四個按鍵有效。 A:設置;依次按下A鍵,年、月、日、時、分、秒的光標依次閃爍,可通過B、C鍵調(diào)節(jié)。 B:加鍵;按一下,數(shù)值加一。 C:減鍵;按一下,數(shù)值減一。 D:查看鬧鐘;進入“鬧鐘界面”。
二、鬧鈴的設置 在鬧鐘設置界面,依次按下A鍵,鬧鈴的:開/關、時、分、秒的光標依次閃爍。 然后可通過B、C鍵進行調(diào)節(jié)。 按D鍵則隨時可退出“鬧鈴設置界面”返回到“日歷時間界面”。
三、計價秤功能 在正常顯示時間的情況下,按下C鍵,將切換到到“計價秤模式”,顯示界面如下圖: 第一行顯示重量,單位是kg。 第二行顯示“單價P”和“金額M”,單位都是元。 在“計價秤模式”下,16按鍵全部有效。 數(shù)字鍵介紹 1234567890數(shù)字鍵代表數(shù)字,可通過鍵盤設置P= 的值,數(shù)值可精確到0.1g。 設置單價后系統(tǒng)會自動計算出金額M。 A:清零、去皮 B:清除單價P C:切換到“日歷時間模式” D:切換到“計數(shù)秤模式”
四、計數(shù)秤功能 在計價秤模式下,按下D鍵,即切換到“計數(shù)秤模式”,顯示如下圖: 第一行:重量值kg。 第二行:D=單個物品重量值,N=物品個數(shù)。
鍵盤說明: 1234567890數(shù)字鍵代表數(shù)字,可通過鍵盤設置D= 的值,數(shù)值可精確到0.1g。 設置單重后系統(tǒng)會自動計算出個數(shù)N。 A:清零/去皮 B:清除單重D C:切換到“日歷時間模式” D:切換到“計數(shù)秤模式”
五、系統(tǒng)校準方法: 打開開關,等系統(tǒng)穩(wěn)定后,在秤盤上放一個固定重量的物體(比如放100個一角硬幣320g)。如果系統(tǒng)顯示重量不等于這個固定重量(320g),就長按 # 鍵3秒,然后屏幕的第一行右邊會顯示出“校準系數(shù)”。 校準系數(shù)出現(xiàn)以后,可以通過C、D兩個鍵對校準系數(shù)進行增大和較小,通過對“校準系數(shù)”的調(diào)節(jié)使得屏幕上重量顯示的值正好等于物體的真實重量(320g)。 最后長按 # 鍵3秒,校準系數(shù)消失,校準完成。
電路原理圖如下:
單片機源程序如下:
- #include<reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar naozhong_en; //鬧鐘開關位
- sbit bell = P2 ^ 7; //蜂鳴器,低電平響
- /*********************電子秤*******************************/
- unsigned long HX711_Buffer = 0;
- unsigned long Weight_Maopi = 0; //毛皮重量
- long Weight = 0;//重量
- long danjia = 0;//單價
- long zongjia = 0;//總價
- uint com1, com2, temp; //鍵盤用的到的變量
- uchar com, P_a = 0, P_b = 0, P_c = 0, P_d = 0, m = 0;
- bit a = 0;
- bit jia_shu = 0;
- bit Flag_ERROR = 0;
- void Delay_ms(unsigned int n);
- void Get_Weight();
- void Get_Maopi();
- void display_weight();//顯示重量和校準參數(shù)
- void delay_3us();//3US的延時程序
- void keyscan_4x4();//矩陣鍵盤掃描函數(shù)
- //hx711 IO設置
- sbit HX711_DOUT = P2 ^ 0;
- sbit HX711_SCK = P2 ^ 1; //IO設置
- void Delay__hx711_us();
- unsigned long HX711_Read(void);
- uint GapValue;//校準參數(shù):GapValue
- //不同的傳感器特性曲線不是很一致,每個傳感器需矯正這個參數(shù)才能測量準確。
- //當測試的重量偏大時,增加該數(shù)值。如果測試的重量偏小時,減小改數(shù)值。
- uchar flag_24c02;//和24C02通訊是否正常的標志
- sbit sda_24c02 = P1 ^ 7; //定義24C02串行數(shù)據(jù)線
- sbit scl_24c02 = P1 ^ 6; //定義24C02串行時鐘線
- void delay_3us();
- void nack_24c02();//24C02非應答信號
- void stop_24c02();//停止通訊信號
- void star_24c02();//啟動信號
- void cack_24c02();//檢測應答信號
- void mack_24c02();//發(fā)送應答信號
- void w1byte_24c02(uchar byte1);//向24C02寫入一字節(jié)的數(shù)據(jù)
- uchar rd1byte_24c02(void);
- void read_24c02();//讀數(shù)據(jù)操作
- void write_24c02();//寫入16字節(jié)的數(shù)據(jù)操作
復制代碼
PCB:無
仿真: 無
代碼:
代碼.7z
(574.01 KB, 下載次數(shù): 0)
2025-6-13 18:38 上傳
點擊文件名下載附件
所有資料51hei提供下載(內(nèi)含代碼):
|