999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

劉毅 劉偉

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

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

中圖分類號:TS261 文獻標識碼:A 文章編號:1672-3791(2012)08(c)-0030-02

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

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

2檢測器設(shè)計

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

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

3程序設(shè)計

主程序中各子程序通過標識狀態(tài)作相應(yīng)處理。串口數(shù)據(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;} // 報警處理

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

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

{USART_CMDProcess();

USART_ClearRXBuffer();

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

Time_Out_Sec=0; }

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

{USART_SendString();

tx_buffer.flag = FLAG_EMPTY;

Time_Out=1; //通信超時計時開始}

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

3.1.2 串口中斷程序代碼

#include "common.h"

………

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

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

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;; //實驗/恒久

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編號 00->No2 01->No3 10->No4

TM_Status=(rx_buffer.buff[2]>>2)&0x07; //TRAY狀態(tài) 000->準備好 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; // 計數(shù)值清零

rx_buffer.flag = FLAG_EMPTY;}

/************************ *******************************向接收緩沖區(qū)中添加一個字節(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é)保存到當前計數(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ū)當前元素清空

wdt_reset();//喂狗}

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

tx_buffer.flag = FLAG_EMPTY;}

/**************************** *******************************向發(fā)送緩沖區(qū)中添加一個字節(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é)保存到當前計數(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ā)送請求}

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

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

void USART_SendString(void)

{ UDR0=tx_buffer.buff[0]; //從結(jié)構(gòu)數(shù)據(jù)的第1個數(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(); //作好接收準備 }

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刷新標識 0:無效 1:框架顯示 2:版本顯示3:數(shù)據(jù)顯示4:刷新機種

{ 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"); }//紙型錯誤} }

4結(jié)果測試

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

參考文獻

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

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

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

主站蜘蛛池模板: 九色在线视频导航91| 看国产毛片| 免费观看男人免费桶女人视频| 欧美亚洲第一页| 国产精品女熟高潮视频| 亚洲不卡影院| 色综合天天娱乐综合网| 亚洲国产成人精品无码区性色| a亚洲天堂| 国产欧美视频在线观看| 丰满少妇αⅴ无码区| 99性视频| 亚洲欧美日韩中文字幕在线| 国产啪在线| 91精品日韩人妻无码久久| 成人午夜免费观看| 26uuu国产精品视频| 亚洲婷婷六月| 久久一本精品久久久ー99| 国产免费久久精品99re不卡| 午夜性刺激在线观看免费| 国产麻豆va精品视频| 美女扒开下面流白浆在线试听 | 欧美三级视频在线播放| 美美女高清毛片视频免费观看| 日韩第一页在线| 中文字幕久久亚洲一区| 高清无码一本到东京热| 国产一级片网址| 欧美成人综合在线| 国产精品女人呻吟在线观看| 熟女成人国产精品视频| 国产福利免费观看| 亚洲日韩精品欧美中文字幕| 欧美福利在线播放| 日韩免费毛片| 色老头综合网| 又大又硬又爽免费视频| 免费人成网站在线高清| 亚洲精品日产AⅤ| 伊人成人在线| 久久一日本道色综合久久| 91丝袜乱伦| 青青热久麻豆精品视频在线观看| 日韩无码真实干出血视频| A级全黄试看30分钟小视频| 制服丝袜无码每日更新| 性欧美精品xxxx| 综合色88| 91亚洲精选| 日韩欧美91| 欧美激情福利| 精品一区二区三区中文字幕| 在线播放真实国产乱子伦| 国产精品欧美日本韩免费一区二区三区不卡 | 欧美激情视频在线观看一区| 亚洲嫩模喷白浆| 亚洲综合专区| 日韩无码黄色网站| 国产精品自在线拍国产电影| 中文字幕调教一区二区视频| 精品国产美女福到在线不卡f| 亚洲精品爱草草视频在线| 伊人大杳蕉中文无码| 午夜小视频在线| 99er精品视频| 日韩国产无码一区| 亚洲欧美人成电影在线观看| 国产中文一区二区苍井空| 国产一区二区三区在线观看免费| 亚洲日本精品一区二区| 国产波多野结衣中文在线播放| www.亚洲色图.com| 91视频日本| 亚洲精品成人福利在线电影| 日韩在线播放中文字幕| 成人另类稀缺在线观看| 亚洲日韩AV无码一区二区三区人| 亚洲Va中文字幕久久一区| 欧美日韩在线成人| 伊人激情久久综合中文字幕| 91精品啪在线观看国产91九色|