迪文科技论坛

 找回密码
 立即注册
搜索
查看: 184|回复: 0

【校企合作案例】全自动智能核酸提取仪

[复制链接]

567

主题

167

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11967
发表于 2024-5-17 17:10:51 | 显示全部楼层 |阅读模式
校企合作案例全自动智能核酸提取仪

——来自湖南工业大学&南华大学
陈柱老师团队


本期为大家推送迪文科技校企合作案例——全自动智能核酸提取仪。该方案具有直观的操作界面,通过屏幕实时监控设备状态、温度、时间等信息,可通过触摸屏调整参数,并集成了紫外消毒、密码修改等实用功能,增强了实验操作的便捷性与数据的安全性。同时,设备还支持实验启动、暂停及结束操作,以及HEAP和LED灯光控制,进一步确保了实验的精确性与可靠性。

演示视频:



完整开发资料含迪文屏DGUS工程资料与C51代码,获取方式:


1.UI素材展示






2.GUI工程设计

  
图1                                                  图2

                                    





   
图3                                                       图4

                                                
   
图5                                                       图6

                                                

<主界面>(图1)
HEAP:开启风扇,可以避免气溶胶污染带来的交叉感染。
LED:可以提供照明环境,便于用户操作实验和管理仪器。
<设置>:核酸提取仪具体的仪器调试、参数设置等。(图2)
<新建实验>:核酸提取仪工作运行与工作参数配置。(图3)
<紫外消毒>:核酸提取仪开启关闭紫外线灯灭菌及开启时间的设置等。(图4)
< 登录界面 >:通过输入密码解锁使用权限。(图5)
< 密码修改界面 >:通过输入旧密码来更换成新密码。(图6)


3.UI开发示例



4.C51工程设计
C51的代码量较大,这里以主函数代码及各种控件的处理代码为例。
主函数:
#include "sys.h"
#include "uart4.h"
#include "uart5.h"
#include "touch.h"
#include "tim0.h"
#include "norflash.h"
#include "lab.h"

void main(void)
{  
        sys_init();
        uart4_init(9600);
        uart5_init(9600);
        timer0_cnt_init();
        page_change(25);
        touch_init();
        while(1)
        {   
                val_addr_handler();
                lab_time_handler();
                Uart4_Rx_handler();
        }               
}




控件处理代码:
void val_addr_handler(void)
{
                #define  VAL_START_ADDR                0x5000
          u8 n;
                if(is_addr_scan==0)
                {
                        return;
                }
                is_addr_scan=0;
                if(dwkey_show_scan==1)
                {
                        keyshow_scan(DW_KEY_ADDR,DW_KEYSHOW_ADDR);
                                        keyshow_scan(DW_OLDKEY_ADDR,DW_OLDKEYSHOW_ADDR);
                        keyshow_scan(DW_CHANGEKEY1_ADDR,DW_CHANGEKEY1SHOW_ADDR);
                        keyshow_scan(DW_CHANGEKEY2_ADDR,DW_CHANGEKEY2SHOW_ADDR);
                }
                dwkey_show_scan=0;                          sys_read_vp(VAL_START_ADDR,(u8*)&cur_scan_val,SCANLEN);                for(n=0;n<SCANLEN;n++)
                {
                        if(n<=0x05)
                        {
                                 if(cur_scan_val[n]>0)        
                                 {
                                        lab_data_run_view(n);                                 
                                        lab_pop_clear(n,0);        
                                 }                                         
                        }
                  else if(n==0x06)
                        {
                                if(cur_scan_val[n]>0)
                                {
                                        page_id_update(cur_scan_val[n]);        
                                        lab_pop_clear(n,0);        
                                }
                        }
                        else if(n==0x07)
                        {
                                if(cur_scan_val[n]!=last_scan_val[n])
                                {
                                        lab_led_con(cur_scan_val[n]);
                                        last_scan_val[n] = cur_scan_val[n];
                                }
                        }
                        else if(n==0x08)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        lab_uv_con(cur_scan_val[n]);
                                        lab_pop_clear(n,0);
                                }                                
                        }
                        else if(n==0x09)
                        {
                                if(cur_scan_val[n]!=last_scan_val[n])
                                {
                                        lab_heap_con(cur_scan_val[n]);
                                     last_scan_val[n] = cur_scan_val[n];
                                }                                
                        }
                        else if(n==0x0A)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        lab_data_save();
                                        lab_pop_clear(n,0);
                                }
                        }
                        else if(n==0x0B)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        lab_data_default(n);
                                        lab_pop_clear(n,0);
                                }
                        }
                        else if(n==0x0C)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        lab_data_modify();
                                        lab_pop_clear(n,0);
                                }
                        }
                        else if(n==0x0D)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        lab_data_detele();
                                        lab_pop_clear(n,0);
                                }
                        }
                        else if(n==0x0E)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        lab_start();
                                        lab_pop_clear(n,0);
                                }
                        }
                        else if(n==0x0F)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        lab_end(1);
                                        lab_pop_clear(n,0);
                                }
                        }
                        else if(n==0x10)
                        {
                                if(cur_scan_val[n]!=last_scan_val[n])
                                {
                                        lab_pause_cont(cur_scan_val[n]);
                                        last_scan_val[n] = cur_scan_val[n];
                                }
                        }
                        else if(n==0x11)
                        {
                                if(cur_scan_val[n]>0)
                                {
                                        lab_page_status(n);
                                        lab_pop_clear(n,0);
                                }
                                lab_wash_chooose();
                        }
                        else if(n==0x12)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        lab_data_clear();
                                        lab_pop_clear(n,0);
                                }
                        }
                        else if(n==0x13)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        cur_scan_val[n] = 0;
                                        sys_write_vp(0x5013,(u8*)&cur_scan_val,1);
                                        touch_lock();
                                }
                        }
                        else if(n==0x14)
                        {
                                if(cur_scan_val[n]>0)        
                                {
                                        cur_scan_val[n] = 0;
                                        sys_write_vp(0x5014,(u8*)&cur_scan_val,1);
                                        touch_changekey();
                                }
                        }
                }
}














本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-23 02:59 , Processed in 0.119466 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表