——DWIN әзірлеушілер форумынан
Бұл шығарылымда біз DWIN әзірлеушілер форумының марапатқа ие болған ашық бастапқы нұсқасын - көп функциялы таразыны шығарамыз. Инженер 4 дюймдік COF смарт экранын қабылдайды және T5L OS өзегі мен HX711 модулі және 5 кг қысым датчигі жинағы арасындағы деректердің өзара әрекеттесуі арқылы пайдаланушылар салмақ, бірлік бағасы, жалпы баға, тарау және т.б. сияқты санау дисплейінің функцияларын оңай жүзеге асыра алады. ., сондай-ақ санау, салмақтың өзгеру қисықтарын қадағалау және таразы дәлдігін түзету және т.б. функциялары, осылайша ыңғайлы және тиімді өлшеу тәжірибесін пайдалану үшін әртүрлі қолданба сценарийлері арасында ауысу оңай.
1. UI әзірлеу
![f26af533d43728cd210e0f7af5e7acc](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f077223d2b27894.png)
2.C51 Дизайн
Баға белгілеу функциясын жүзеге асыру үшін таразышының анықтамалық кодының бөлігі келесідей:
// Бағалар беті===================
#БАҒА_БІЛІК_БАҒА_ADDR 0x1010 анықтау
#VALUATION_GRAM_ADDR 0x1000 анықтау
#БАҒАН_ЖАЛПЫ_БАҒА_ҚОСЫМЫН 0x1020 анықтау
uint32_t valuation_decorticate = 0; // Тара салмағының бағасы
uint32_t valuation_unit_price = 0; //Тауар өлшемінің бағасы
// Бірлік бағасын жаңарту
жарамсыз page_valuation_unit_price_refresh()
{
uint8_t test_display[10] = {0};
егер(баға_бірлігі_бағасы
{
test_display[0] = бағалау_бірлігі_бағасы / 100 % 10 + 0x30;
test_display[1] = '.';
test_display[2] = бағалау_бірлігі_бағасы / 10 % 10 + 0x30;
test_display[3] = бағалау_бірлігі_бағасы / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, сынақ_дисплейі, 4);
}
басқа болса (баға_бірлігінің_бағасы
{
test_display[0] = бағалау_бірлігі_бағасы / 1000 % 10 + 0x30;
test_display[1] = бағалау_бірлігі_бағасы / 100 % 10 + 0x30;
test_display[2] = '.';
test_display[3] = бағалау_бірлігі_бағасы / 10 % 10 + 0x30;
test_display[4] = бағалау_бірлігі_бағасы / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, сынақ_дисплейі, 4);
}
басқа болса (баға_бірлігінің_бағасы
{
test_display[0] = бағалау_бірлігі_бағасы / 10000 % 10 + 0x30;
test_display[1] = бағалау_бірлігі_бағасы / 1000 % 10 + 0x30;
test_display[2] = бағалау_бірлігі_бағасы / 100 % 10 + 0x30;
test_display[3] = '.';
test_display[4] = бағалау_бірлігі_бағасы / 10 % 10 + 0x30;
test_display[5] = бағалау_бірлігі_бағасы / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, сынақ_дисплейі, 4);
}
басқа болса (баға_бірлігінің_бағасы
{
test_display[0] = бағалау_бірлігі_бағасы / 100000 % 10 + 0x30;
test_display[1] = бағалау_бірлігі_бағасы / 10000 % 10 + 0x30;
test_display[2] = бағалау_бірлігі_бағасы / 1000 % 10 + 0x30;
test_display[3] = бағалау_бірлігі_бағасы / 100 % 10 + 0x30;
test_display[4] = '.';
test_display[5] = бағалау_бірлігі_бағасы / 10 % 10 + 0x30;
test_display[6] = бағалау_бірлігі_бағасы / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, сынақ_дисплейі, 4);
}
}
// Салмақты жаңарту
жарамсыз page_valuation_weight_refresh()
{
uint8_t test_display[10] = {0x30};
uint32_t gram_display = 0;
егер(грам_мәні >= бағалау_декортикасы)
{
gram_display = gram_value - бағалау_декортикасы;
егер(грам_дисплей
{
test_display[0] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);
}
басқа болса (грам_дисплей
{
test_display[0] = gram_display / 10 % 10 + 0x30;
test_display[1] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);
}
басқа болса (грам_дисплей
{
test_display[0] = gram_display / 100 % 10 + 0x30;
test_display[1] = gram_display / 10 % 10 + 0x30;
test_display[2] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);
}
басқа болса (грам_дисплей
{
test_display[0] = gram_display / 1000 % 10 + 0x30;
test_display[1] = gram_display / 100 % 10 + 0x30;
test_display[2] = gram_display / 10 % 10 + 0x30;
test_display[3] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);
}
басқа болса (грам_дисплей
{
test_display[0] = gram_display / 10000 % 10 + 0x30;
test_display[1] = gram_display / 1000 % 10 + 0x30;
test_display[2] = gram_display / 100 % 10 + 0x30;
test_display[3] = gram_display / 10 % 10 + 0x30;
test_display[4] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);
}
}
басқа
{
dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);
}
}
// Жалпы бағаны жаңарту
жарамсыз page_valuation_price_refresh()
{
uint32_t баға_мәні = 0;
uint8_t test_display[10] = {0x30, '.', 0x30, 0x30};
егер(грам_мәні >= бағалау_декортикасы)
{
баға_мәні = (грам_мәні - бағалау_декортикасы) * бағалау_бірлігі_бағасы * 2 / 1000;
егер(баға_мәні
{
test_display[0] = баға_мәні / 100 % 10 + 0x30;
test_display[1] = '.';
test_display[2] = баға_мәні / 10 % 10 + 0x30;
test_display[3] = баға_мәні / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
басқа болса (баға_мәні
{
test_display[0] = баға_мәні / 1000 % 10 + 0x30;
test_display[1] = баға_мәні / 100 % 10 + 0x30;
test_display[2] = '.';
test_display[3] = баға_мәні / 10 % 10 + 0x30;
test_display[4] = баға_мәні / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
басқа болса (баға_мәні
{
test_display[0] = баға_мәні / 10000 % 10 + 0x30;
test_display[1] = баға_мәні / 1000 % 10 + 0x30;
test_display[2] = баға_мәні / 100 % 10 + 0x30;
test_display[3] = '.';
test_display[4] = баға_мәні / 10 % 10 + 0x30;
test_display[5] = баға_мәні / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
басқа болса (баға_мәні
{
test_display[0] = баға_мәні / 100000 % 10 + 0x30;
test_display[1] = баға_мәні / 10000 % 10 + 0x30;
test_display[2] = баға_мәні / 1000 % 10 + 0x30;
test_display[3] = баға_мәні / 100 % 10 + 0x30;
test_display[4] = '.';
test_display[5] = баға_мәні / 10 % 10 + 0x30;
test_display[6] = баға_мәні / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
}
басқа
{
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
}
void page_valuation_decorticate()
{
бағалау_декортикасы = грамм_мәні;
page_valuation_weight_refresh();
}
жарамсыз page_valuation_1()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 1;
page_valuation_unit_price_refresh();
}
}
жарамсыз page_valuation_2()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 2;
page_valuation_unit_price_refresh();
}
}
жарамсыз page_valuation_3()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 3;
page_valuation_unit_price_refresh();
}
}
жарамсыз page_valuation_4()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 4;
page_valuation_unit_price_refresh();
}
}
жарамсыз page_valuation_5()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 5;
page_valuation_unit_price_refresh();
}
}
жарамсыз page_valuation_6()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 6;
page_valuation_unit_price_refresh();
}
}
жарамсыз page_valuation_7()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 7;
page_valuation_unit_price_refresh();
}
}
жарамсыз page_valuation_8()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 8;
page_valuation_unit_price_refresh();
}
}
жарамсыз page_valuation_9()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 9;
page_valuation_unit_price_refresh();
}
}
жарамсыз page_valuation_0()
{
егер(баға_бірлігі_бағасы
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы * 10 + 0;
page_valuation_unit_price_refresh();
}
}
void page_valuation_back()
{
бағалау_бірлігі_бағасы = бағалау_бірлігі_бағасы / 10;
page_valuation_unit_price_refresh();
}
жарамсыз page_valuation_clear()
{
бағалау_бірлігі_бағасы = 0;
page_valuation_unit_price_refresh();
}
Жіберу уақыты: 28 сәуір-2024 ж