[Sumber terbuka] Alat Penimbangan Multifungsi

——Dari Forum Pengembang DWIN

Dalam edisi ini, kami mendorong kasus sumber terbuka pemenang penghargaan dari DWIN Developer Forum - Multi-function Weigher. Insinyur ini mengadopsi layar pintar COF 4 inci, dan melalui interaksi data antara inti T5L OS dan modul HX711 serta set sensor tekanan 5kg, pengguna dapat dengan mudah menyadari fungsi tampilan penghitungan seperti berat, harga satuan, harga total, tara, dll. ., serta fungsi penghitungan, pelacakan kurva perubahan berat, dan koreksi keakuratan penimbangan, dll., sehingga mudah untuk beralih di antara skenario aplikasi yang berbeda untuk menikmati pengalaman penimbangan yang nyaman dan efisien.

1. Pengembangan UI

f26af533d43728cd210e0f7af5e7acc

2. Desain C51

Bagian dari kode referensi timbangan untuk mengimplementasikan fungsi penetapan harga adalah sebagai berikut:

// Halaman Harga====

#tentukan VALUATION_UNIT_PRICE_ADDR 0x1010

#tentukan VALUATION_GRAM_ADDR 0x1000

#tentukan VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t valuation_decorticate = 0; // Harga Tara Berat

uint32_t penilaian_unit_harga = 0; //Harga satuan

// Penyegaran Harga Satuan

batalkan halaman_valuation_unit_price_refresh()

{

uint8_t test_display[10] = {0};

jika(valuasi_unit_harga

{

test_display[0] = valuation_unit_price / 100 % 10 + 0x30;

tampilan_tes[1] = '.';

test_display[2] = valuation_unit_price / 10 % 10 + 0x30;

test_display[3] = valuation_unit_price / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

lain jika(valuasi_unit_harga

{

test_display[0] = valuation_unit_price / 1000 % 10 + 0x30;

test_display[1] = valuation_unit_price / 100 % 10 + 0x30;

tampilan_tes[2] = '.';

test_display[3] = valuation_unit_price / 10 % 10 + 0x30;

test_display[4] = penilaian_unit_harga / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

lain jika(valuasi_unit_harga

{

test_display[0] = valuation_unit_price / 10.000 % 10 + 0x30;

test_display[1] = valuation_unit_price / 1000 % 10 + 0x30;

test_display[2] = valuation_unit_price / 100 % 10 + 0x30;

tampilan_tes[3] = '.';

test_display[4] = valuation_unit_price / 10 % 10 + 0x30;

test_display[5] = valuation_unit_price / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

lain jika(valuasi_unit_harga

{

test_display[0] = valuation_unit_price / 100000 % 10 + 0x30;

test_display[1] = valuation_unit_price / 10.000 % 10 + 0x30;

test_display[2] = valuation_unit_price / 1000 % 10 + 0x30;

test_display[3] = valuation_unit_price / 100 % 10 + 0x30;

tampilan_tes[4] = '.';

test_display[5] = valuation_unit_price / 10 % 10 + 0x30;

test_display[6] = valuation_unit_price / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

}

 

// Penyegaran Berat Badan

batalkan halaman_valuation_weight_refresh()

{

uint8_t test_display[10] = {0x30};

uint32_t gram_display = 0;

if(gram_value >= valuation_decorticate)

{

tampilan_gram = nilai_gram - dekorasi_penilaian;

jika(tampilan_gram

{

tampilan_tes[0] = tampilan_gram / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

lain jika(tampilan_gram

{

tampilan_tes[0] = tampilan_gram / 10 % 10 + 0x30;

tampilan_tes[1] = tampilan_gram / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

lain jika(tampilan_gram

{

tampilan_tes[0] = tampilan_gram / 100 % 10 + 0x30;

tampilan_tes[1] = tampilan_gram / 10 % 10 + 0x30;

tampilan_tes[2] = tampilan_gram / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

lain jika(tampilan_gram

{

tampilan_tes[0] = tampilan_gram / 1000 % 10 + 0x30;

tampilan_tes[1] = tampilan_gram / 100 % 10 + 0x30;

tampilan_tes[2] = tampilan_gram / 10 % 10 + 0x30;

tampilan_tes[3] = tampilan_gram / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

lain jika(tampilan_gram

{

tampilan_tes[0] = tampilan_gram / 10.000 % 10 + 0x30;

tampilan_tes[1] = tampilan_gram / 1000 % 10 + 0x30;

tampilan_tes[2] = tampilan_gram / 100 % 10 + 0x30;

tampilan_tes[3] = tampilan_gram / 10 % 10 + 0x30;

tampilan_tes[4] = tampilan_gram / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

kalau tidak

{

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

 

// Penyegaran Harga Total

batalkan halaman_valuation_price_refresh()

{

uint32_t harga_nilai = 0;

uint8_t test_display[10] = {0x30, '.', 0x30, 0x30};

if(gram_value >= valuation_decorticate)

{

nilai_harga = (nilai_gram - dekorasi_penilaian) *harga_unit_penilaian * 2/1000;

jika(nilai_harga

{

test_display[0] = nilai_harga / 100 % 10 + 0x30;

tampilan_tes[1] = '.';

test_display[2] = nilai_harga / 10 % 10 + 0x30;

test_display[3] = nilai_harga / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

lain jika(nilai_harga

{

test_display[0] = nilai_harga / 1000 % 10 + 0x30;

test_display[1] = nilai_harga / 100 % 10 + 0x30;

tampilan_tes[2] = '.';

test_display[3] = nilai_harga / 10 % 10 + 0x30;

test_display[4] = nilai_harga / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

lain jika(nilai_harga

{

test_display[0] = nilai_harga / 10.000 % 10 + 0x30;

test_display[1] = nilai_harga / 1000 % 10 + 0x30;

test_display[2] = nilai_harga / 100 % 10 + 0x30;

tampilan_tes[3] = '.';

test_display[4] = nilai_harga / 10 % 10 + 0x30;

test_display[5] = nilai_harga / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

lain jika(nilai_harga

{

test_display[0] = nilai_harga / 100000 % 10 + 0x30;

test_display[1] = nilai_harga / 10.000 % 10 + 0x30;

test_display[2] = nilai_harga / 1000 % 10 + 0x30;

test_display[3] = nilai_harga / 100 % 10 + 0x30;

tampilan_tes[4] = '.';

test_display[5] = nilai_harga / 10 % 10 + 0x30;

test_display[6] = nilai_harga / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

kalau tidak

{

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

batalkan halaman_valuation_decorticate()

{

penilaian_decorticate = nilai_gram;

halaman_penilaian_berat_refresh();

}

batalkan halaman_penilaian_1()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 1;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_penilaian_2()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 2;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_penilaian_3()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 3;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_penilaian_4()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 4;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_valuation_5()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 5;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_penilaian_6()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 6;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_valuation_7()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 7;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_penilaian_8()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 8;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_valuation_9()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 9;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_penilaian_0()

{

jika(valuasi_unit_harga

{

harga_unit_penilaian = harga_unit_penilaian * 10 + 0;

halaman_penilaian_unit_harga_refresh();

}

}

batalkan halaman_valuation_back()

{

penilaian_unit_harga = penilaian_unit_harga / 10;

halaman_penilaian_unit_harga_refresh();

}

batalkan halaman_valuation_clear()

{

penilaian_harga_satuan = 0;

halaman_penilaian_unit_harga_refresh();

}


Waktu posting: 28 April-2024