亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        紙型檢測(cè)器設(shè)計(jì)應(yīng)用

        2012-04-29 00:44:03劉毅劉偉
        科技資訊 2012年24期

        劉毅 劉偉

        摘要:本文主要介紹模擬復(fù)印機(jī)生產(chǎn)組裝過程中,在TM與IOT組裝前設(shè)計(jì)一個(gè)檢測(cè)裝置,對(duì)TM的各組件狀態(tài)及傳感器進(jìn)行檢測(cè),確保組裝到IOT整機(jī)后,TM均為良品。以此解決原生產(chǎn)方式中的弊端。

        關(guān)鍵詞:單片機(jī)串口通信TM(Tray Module)IOT(Image Output Terminal)

        中圖分類號(hào):TS261 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2012)08(c)-0030-02

        1設(shè)計(jì)構(gòu)想

        多功能復(fù)印機(jī)現(xiàn)有工程生產(chǎn)方式如圖1,這種生產(chǎn)方式操作麻煩,且容易造成二次人為故障,生產(chǎn)效率低?;谶@種考慮,將生產(chǎn)過程改良如下,可解決原生產(chǎn)方式的弊端(如圖2)。

        2檢測(cè)器設(shè)計(jì)

        TM與IOT由物理層,數(shù)據(jù)連接層,虛擬命令層構(gòu)成。本設(shè)計(jì)利用虛擬命令層獲取相關(guān)信息,完成檢測(cè)目的。綜合考慮成本,設(shè)計(jì)周期,難易度等因素,最終選定單片機(jī)+LCD作為設(shè)計(jì)課題。

        檢測(cè)器系統(tǒng)如圖3所示,單片機(jī):采用ATMEGA48單片機(jī)完成整個(gè)檢測(cè)器的控制;LCD:顯示TM的動(dòng)態(tài)信息,TM內(nèi)部故障發(fā)生時(shí)報(bào)警;電源控制:當(dāng)檢測(cè)器檢測(cè)到正確連接到TM時(shí),啟動(dòng)按鍵,延時(shí)1秒鐘向TM供電,檢測(cè)過程中,一時(shí)發(fā)生故障,系統(tǒng)自動(dòng)供電電源,防止二次故障發(fā)生;LED蜂鳴:LED顯示數(shù)據(jù)的發(fā)送接收狀態(tài),有數(shù)據(jù)傳輸時(shí)LED閃爍,異常時(shí)蜂鳴器報(bào)警。

        3程序設(shè)計(jì)

        主程序中各子程序通過標(biāo)識(shí)狀態(tài)作相應(yīng)處理。串口數(shù)據(jù)讀取利用單片機(jī)串口中斷函數(shù),非常方便于數(shù)據(jù)的連續(xù)發(fā)送與接收。

        3.1 程序代碼

        3.1.1 主程序

        /************************************** *************************************************

        #include "common.h"

        ………

        intmain(void)

        { Sys_Init(); //系統(tǒng)初始化

        ………….

        TIMSK0 |=(1<

        sei();

        while(1)

        {wdt_reset();//喂狗

        if(Key_Ctr==1){Key_Control(); Key_Ctr=0;} // 按鍵處理

        if(Buzzer_F!=0){Buzzer_On(Buzzer_F);Buzzer_F=0;} // 蜂鳴

        if((Error_F!=0)&&(Run_F!=0)){Buzzer_F=1;} // 報(bào)警處理

        if(Send_F==1){USART_Data_Send();Send_F=0;} // 數(shù)據(jù)傳送

        if(rx_buffer.flag == FLAG_RECEIVE_OK) // 如果串口接收到完整的數(shù)據(jù)幀,則進(jìn)行處理

        {USART_CMDProcess();

        USART_ClearRXBuffer();

        Time_Out=0;//通信超時(shí)計(jì)時(shí)結(jié)束

        Time_Out_Sec=0; }

        if(tx_buffer.flag == FLAG_SEND_REQUEST) // 如果串口發(fā)送緩沖區(qū)有發(fā)送請(qǐng)求,執(zhí)行發(fā)送

        {USART_SendString();

        tx_buffer.flag = FLAG_EMPTY;

        Time_Out=1; //通信超時(shí)計(jì)時(shí)開始}

        if(RefreshLCD_F){ RefreshLCD();RefreshLCD_F=0;} // 如果LCD有刷新請(qǐng)求,則刷新LCD}}

        3.1.2 串口中斷程序代碼

        #include "common.h"

        ………

        RX_BUFFER rx_buffer;//接收數(shù)據(jù)結(jié)構(gòu)體實(shí)例

        TX_BUFFER tx_buffer;//發(fā)送數(shù)據(jù)結(jié)構(gòu)體實(shí)例

        static ucharNO_CMD_D5[5]={0xD5,0x00,0x00,0x00,0x55};

        …………….

        /****************************** ******************************************串口初始化

        voidUSART_init(uint baud)

        {UBRR0H=baud>>8;

        UBRR0L=baud&0x00FF;

        UCSR0A=0x00; //U2xn=0,波特率無倍速

        UCSR0B=(1<

        UCSR0C=(1<

        USART_ClearRXBuffer();

        USART_ClearTXBuffer();}

        /******************************** *****************************************數(shù)組發(fā)送

        void USART_Data_Send(void)

        {uchar i;

        switch(Data_F)

        {

        case 1:{for(i=0;i

        ………

        case 6:{for(i=0;i

        default:; }}

        /************************************** *****************************TRAY-STS數(shù)據(jù)處理

        void USART_CMDProcess(void)

        {if(rx_buffer.buff[1]==0x03)//本組數(shù)據(jù)為TM 版本數(shù)據(jù)

        {Ver_D=(rx_buffer.buff[3]>>3)&0x03;; //實(shí)驗(yàn)/恒久

        Ver_H=rx_buffer.buff[3]&0x07;//TM版本上位

        Ver_L=rx_buffer.buff[2]&0x3F;//TM版本下位

        RefreshLCD_F=2;}

        else if(rx_buffer.buff[1]==0x04) //本組數(shù)據(jù)為TRAY_STS

        { TM_No=rx_buffer.buff[2]&0x03;//取出TRAY編號(hào) 00->No2 01->No3 10->No4

        TM_Status=(rx_buffer.buff[2]>>2)&0x07; //TRAY狀態(tài) 000->準(zhǔn)備好 001->上升 010->Tary拔

        出 011->無紙 100->上升NG 101->NC 110->上升3次NG 111->SizeSensor NG

        ASize=(rx_buffer.buff[2]>>5)|(rx_buffer.buff[3]<<2); //SizeSensor模擬電壓AD值

        DSize=(rx_buffer.buff[3]>>6)&0x01;//SizeSensor數(shù)字位 0,1

        RefreshLCD_F=3;}

        else; }

        /****************************** **************************************清空接收緩沖區(qū)

        void USART_ClearRXBuffer(void)

        { uchar i;

        for(i=0; i

        rx_buffer.rxcount = 0; // 計(jì)數(shù)值清零

        rx_buffer.flag = FLAG_EMPTY;}

        /************************ *******************************向接收緩沖區(qū)中添加一個(gè)字節(jié)

        uchar USART_AddToRXBuffer(uchar ch)

        { if(rx_buffer.rxcount >= RX_MAX){ return ERROR_RXBUFFER_FULL;} // 緩沖區(qū)滿

        else

        { rx_buffer.buff[rx_buffer.rxcount] = ch;// 將要添加的字節(jié)保存到當(dāng)前計(jì)數(shù)值指向的位置

        rx_buffer.rxcount ++; // 緩沖區(qū)的長度增加1

        wdt_reset();//喂狗

        return ADD_CHAR_OK; // 返回添加成功信息}}

        /**************************** *******************************清空發(fā)送緩沖區(qū)

        void USART_ClearTXBuffer(void)

        { uchar i;

        for(i=0; i

        { tx_buffer.buff[i] = 0x00; // 緩沖區(qū)當(dāng)前元素清空

        wdt_reset();//喂狗}

        tx_buffer.txcount = 0; // 計(jì)數(shù)值清零

        tx_buffer.flag = FLAG_EMPTY;}

        /**************************** *******************************向發(fā)送緩沖區(qū)中添加一個(gè)字節(jié)

        uchar USART_AddToTXBuffer(uchar ch)

        {if(tx_buffer.txcount > TX_MAX){ return ERROR_TXBUFFER_FULL;} // 緩沖區(qū)滿

        else

        {wdt_reset();

        tx_buffer.buff[tx_buffer.txcount] = ch;// 將要添加的字節(jié)保存到當(dāng)前計(jì)數(shù)值指向的位置

        tx_buffer.txcount ++; // 緩沖區(qū)的長度增加1

        wdt_reset();//喂狗

        if(tx_buffer.txcount == TX_MAX)

        {tx_buffer.flag = FLAG_SEND_REQUEST; // 填充完畢指定數(shù)量數(shù)據(jù),設(shè)置發(fā)送請(qǐng)求}

        return ADD_CHAR_OK; // 返回添加成功信息}}

        /************************ ***************************將發(fā)送緩沖區(qū)的內(nèi)容一次性發(fā)送

        void USART_SendString(void)

        { UDR0=tx_buffer.buff[0]; //從結(jié)構(gòu)數(shù)據(jù)的第1個(gè)數(shù)開始發(fā)送

        tx_buffer.txcount=0;}

        /**************************** ************************串口發(fā)送中斷服務(wù)函數(shù)

        SIGNAL(SIG_USART_TRANS)

        { if(++tx_buffer.txcount

        else if(tx_buffer.txcount==TX_MAX)

        { USART_ClearTXBuffer(); //發(fā)送完畢

        USART_ClearRXBuffer(); //作好接收準(zhǔn)備 }

        else;}

        /************************** ***************************串口接收完畢中斷服務(wù)函數(shù)

        SIGNAL(SIG_USART_RECV)

        {rx_buffer.buff[rx_buffer.rxcount] = UDR0;

        rx_buffer.rxcount ++;

        if(rx_buffer.rxcount >= RX_MAX){ rx_buffer.flag = FLAG_RECEIVE_OK;}}

        3.1.3 LCD顯示程序代碼(紙型檢出部份)

        void RefreshLCD(void)/*刷新LCD顯示*/

        {if(RefreshLCD_F==1)//LCD刷新標(biāo)識(shí) 0:無效 1:框架顯示 2:版本顯示3:數(shù)據(jù)顯示4:刷新機(jī)種

        { if(TM_Status==2){disp_String(x,y,(uchar *)"已取出");}//紙盒拔出

        else{

        if((199

        {disp_String(x,y,(uchar *)"A5 SEF");}

        else if((184

        {disp_String(x,y,(uchar *)"B5 SEF");}

        ……………..

        else if((0

        {disp_String(x,y,(uchar *)"11x17SEF");}

        else{disp_String(x,3,(uchar *)" ErrorSize"); }//紙型錯(cuò)誤} }

        4結(jié)果測(cè)試

        只要是TM組件自身的故障都就能檢出,如TM紙型感知傳感器未安裝或接觸不良、TM控制器版本錯(cuò)誤等。目前為止,沒有一件因TM不良而導(dǎo)致整機(jī)拆卸的維修事件,提高了生產(chǎn)效率。

        參考文獻(xiàn)

        [1] 芯藝.AVR單片機(jī)GCC程序設(shè)計(jì)[J].單片機(jī)技術(shù)應(yīng)用,2005,1,1.

        [2] 陳勇.基礎(chǔ)工業(yè)工程[J].工業(yè)技術(shù),2010,7,1.

        [3] 吳鍇,郭海霞.單片機(jī)串行口的擴(kuò)展研究[J].單片機(jī)技術(shù),2010,5,19.

        岛国AV一区二区三区在线观看| 亚洲高清美女久久av| 亚洲偷自拍国综合第一页国模| 免费人成视频网站在线不卡| 蜜臀av999无码精品国产专区| 国精产品一区二区三区| 国产在视频线精品视频二代| 亚洲女同一区二区三区| 国产成人无码a区在线观看导航| 国产一女三男3p免费视频| 国产资源在线视频| 国产精品高清免费在线| 亚洲午夜av久久久精品影院色戒| 国产免费无码一区二区三区| 亚洲五月婷婷久久综合| 国产人妖在线观看一区二区三区| 婷婷综合另类小说色区| 午夜福利电影| 日本一区免费喷水| 日本人妻精品有码字幕| 国产一区二区三区免费观看在线 | 亚洲乱码国产一区三区| 制服无码在线第一页| 亚洲精品一区二区网站| 国产免费一区二区三区免费视频| 亚洲国产成人久久综合一区77| 一区二区三区中文字幕有码| 丰满人妻猛进入中文字幕| 天天天天躁天天爱天天碰2018| 中文字幕一区二区三区乱码不卡| 亚洲天堂一区二区三区视频| 丁香五月亚洲综合在线| 久久婷婷香蕉热狠狠综合| 国产裸体AV久无码无遮挡| 亚洲中文字幕久久在线| 欧美性巨大╳╳╳╳╳高跟鞋| 精品一区二区av天堂| 国产精品高清国产三级国产av| 亚洲乱码国产乱码精品精| 国产99视频精品免费视频免里| 中文字幕中文字幕人妻黑丝|