飲料罐裝生產(chǎn)流水線的單片機(jī)控制系統(tǒng)設(shè)計(jì).doc
《飲料罐裝生產(chǎn)流水線的單片機(jī)控制系統(tǒng)設(shè)計(jì).doc》由會員分享,可在線閱讀,更多相關(guān)《飲料罐裝生產(chǎn)流水線的單片機(jī)控制系統(tǒng)設(shè)計(jì).doc(19頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
XX大學(xué) 課程設(shè)計(jì)報(bào)告 課題名稱 飲料罐裝生產(chǎn)流水線的單片機(jī)控制系統(tǒng)設(shè)計(jì) 院 (系) 機(jī)電工程學(xué)院 專 業(yè) 機(jī)械設(shè)計(jì)制造及其自動化 姓 名 XXXX 學(xué) 號 XXXX 起訖日期 2016.8.29-2016.9.9 指導(dǎo)教師 XX 2016年9月9日 飲料罐裝生產(chǎn)流水線的單片機(jī)控制系統(tǒng)設(shè)計(jì) 摘 要 本設(shè)計(jì)是飲料灌裝生產(chǎn)流水線的單片機(jī)控制系統(tǒng)。其硬件部分主要包括電源電路、開關(guān)電路、光電傳感器模塊、數(shù)碼顯示模塊、繼電器控制模塊、報(bào)警模塊6個主要組成部分。 硬件選擇以AT89C51為主體、數(shù)碼顯示采用74LS164串行顯示方案,光電傳感器采用對射式光電開關(guān)電路方案,繼電器控制模塊采用單片機(jī)控制5V繼電器,進(jìn)而控制交流接觸器方案。軟件設(shè)計(jì)主要完成信號檢測,多種工作狀態(tài)的轉(zhuǎn)換,以及顯示灌裝計(jì)數(shù)值三個工作。 關(guān)鍵詞:灌裝流水線 單片機(jī) 光電傳感器 串行數(shù)碼管顯示 繼電器控制 目錄 摘要……………………………………………………………………………………………....1 1.課程設(shè)計(jì)內(nèi)容與要求 3 1.1 課程設(shè)計(jì)內(nèi)容 3 1.2 課程設(shè)計(jì)要求 3 2. 控制系統(tǒng)的硬件電路設(shè)計(jì) 4 2.1硬件電路設(shè)計(jì)proteus軟件簡介 4 2.2 控制系統(tǒng)硬件電路詳細(xì)設(shè)計(jì) 4 2.2.1 控制系統(tǒng)結(jié)構(gòu)圖 4 2.2.2 電源電路設(shè)計(jì) 5 2.2.3 單片機(jī)開關(guān)按鈕設(shè)計(jì) 5 2.2.4 光電傳感器電路設(shè)計(jì) 6 2.2.5 數(shù)碼管顯示模塊 6 2.2.6 報(bào)警模塊 7 2.2.7 傳送帶模塊 7 2.2.8 灌裝設(shè)備模塊 8 3.控制程序設(shè)計(jì)與仿真 8 3.1控制程序設(shè)計(jì)平臺軟件keil uvision2簡介 8 3.2 控制程序詳細(xì)設(shè)計(jì) 8 3.2.1 控制程序流程圖 8 3.2.2 詳細(xì)程序設(shè)計(jì) 11 3.3 控制系統(tǒng)Protues仿真 13 3.3.1 光電傳感器仿真 13 3.3.2 灌裝設(shè)備和傳送帶仿真 13 3.3.3 數(shù)碼管顯示仿真 14 3.3.4 整體仿真圖 14 結(jié)束語 15 參考文獻(xiàn) 15 附錄I 電路圖 16 附錄II C51源代碼 17 1.課程設(shè)計(jì)內(nèi)容與要求 1.1 課程設(shè)計(jì)內(nèi)容 設(shè)計(jì)一套飲料罐裝生產(chǎn)流水線的PLC控制系統(tǒng),控制要求: (1) 系統(tǒng)通過開關(guān)設(shè)定為自動操作模式,一旦啟動,則傳送帶的驅(qū)動電機(jī)啟動并一直保持到停止開關(guān)動作或罐裝設(shè)備下的傳感器檢測到一個瓶子時停止;瓶子裝滿飲料后,傳送帶驅(qū)動電機(jī)必須自動啟動,并保持到又檢測到一個瓶子或停止開關(guān)動作。 (2) 當(dāng)瓶子定位在罐裝設(shè)備下時,停頓1秒,罐裝設(shè)備開始工作,罐裝過程為5秒鐘,罐裝過程應(yīng)有報(bào)警顯示,5秒后停止并不再顯示報(bào)警。 (3)一旦系統(tǒng)啟動,記錄罐裝瓶數(shù),設(shè)最多不超過9999瓶。 (4)可以手動對計(jì)數(shù)值清零(復(fù)位)。 1.2 課程設(shè)計(jì)要求 (1)采用MCS-51單片機(jī)控制,畫出控制系統(tǒng)的硬件電路圖; (2)采用220V交流電源供電,設(shè)計(jì)控制系統(tǒng)直流電源模塊硬件電路圖; (3)編制控制程序,并畫出程序框圖; (4)撰寫課程設(shè)計(jì)報(bào)告。 2. 控制系統(tǒng)的硬件電路設(shè)計(jì) 2.1硬件電路設(shè)計(jì)proteus軟件簡介 Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前比較好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。 Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。[1] 2.2 控制系統(tǒng)硬件電路詳細(xì)設(shè)計(jì) 2.2.1 控制系統(tǒng)結(jié)構(gòu)圖 220V交流電轉(zhuǎn)5V直流穩(wěn)壓電路(供電) 4位數(shù)碼管顯示 51單片機(jī) 開 啟動 停止 關(guān) 復(fù)位計(jì)數(shù)值 M傳送帶 220V繼電器電路 5V傳送帶開關(guān)繼電器 光電傳感器 灌裝設(shè)備 5V灌裝設(shè)備開關(guān)繼電器 圖 (1) 如圖(1)所示整個控制系統(tǒng)輸入量有四個,分別為啟動開關(guān)、停止開關(guān)、復(fù)位計(jì)數(shù)值開關(guān)以及光電傳感器輸入信號。輸出有三個,分別為數(shù)碼管顯示、傳送帶繼電器以及灌裝設(shè)備繼電器。 單片機(jī)在接收到啟動開關(guān)信號后,控制4位數(shù)碼管顯示初始計(jì)數(shù)值,同時輸出信號使傳送帶繼電器線圈得電,進(jìn)而閉合在強(qiáng)電電路中的相應(yīng)的繼電器開關(guān),使傳送帶帶動瓶子運(yùn)動。當(dāng)光電傳感器檢測到瓶子到達(dá)灌裝位置時,向單片機(jī)發(fā)送信號,單片機(jī)接收到信號后立即停止傳送帶,通過內(nèi)部計(jì)時器計(jì)時1S后啟動灌裝設(shè)備,同時報(bào)警指示燈保持常亮。單片機(jī)內(nèi)部定時器繼續(xù)計(jì)時5S后,停止灌裝設(shè)備,關(guān)滅報(bào)警指示燈,數(shù)碼管顯示值加1,然后啟動傳送帶等待光電傳感器檢測到下一個信號開啟再一次的循環(huán)。 在系統(tǒng)運(yùn)行期間如果接收到停止信號系統(tǒng)會立即關(guān)閉傳送帶和灌裝設(shè)備,以及數(shù)碼管顯示;如果接收到復(fù)位信號,單片機(jī)控制的數(shù)碼管計(jì)數(shù)值立即清零;如果數(shù)碼管當(dāng)前的計(jì)數(shù)值達(dá)到了9999,再接收到灌裝完成的信號數(shù)碼管顯示值會變成0進(jìn)而重新計(jì)數(shù)。 2.2.2 電源電路設(shè)計(jì) 由于設(shè)計(jì)要求用220V交流電供電,而單片機(jī)電路需要的電源是直流5V。故需要設(shè)計(jì)220V轉(zhuǎn)5V的直流穩(wěn)壓電路。本系統(tǒng)采用的為常見的直流穩(wěn)壓方案如圖(2)所示。 圖 (2) 變壓器輸出端的9V電壓經(jīng)橋式整流并電容濾波,在電容C1兩端大約會有11V多一點(diǎn)的電壓,假如從電容兩端直接接一個負(fù)載,當(dāng)負(fù)載變化或交流電源有少許波動都會使C1兩端的電壓發(fā)生較大幅度的變化,因此要得到一個比較穩(wěn)定的電壓,在這里接一個三端穩(wěn)壓器的元件U2。 三端穩(wěn)壓器是一種集成電路元件,內(nèi)部由一些三極管和電阻等構(gòu)成,在分析電路時可簡單的認(rèn)為這是一個能自動調(diào)節(jié)電阻的元件,當(dāng)負(fù)載電流大時三端穩(wěn)壓器內(nèi)的電阻自動變小,而當(dāng)負(fù)載電流變小時三端穩(wěn)壓器內(nèi)的電阻又會自動變大,這樣就能保持穩(wěn)壓器的輸出電壓保持基本不變。 因?yàn)槲覀円敵?V的電壓,所以選用7805,7805。前面的字母可能會因生產(chǎn)廠家不同而不同。LM7805最大可以輸出1A的電流,內(nèi)部有限流式短路保護(hù)。三端穩(wěn)壓器后面接有電容,起濾波和阻尼作用。 2.2.3 單片機(jī)開關(guān)按鈕設(shè)計(jì) 由于單片機(jī)上電P2、P3口均為高電平,故此處設(shè)計(jì)最簡單的開關(guān)電路,單片機(jī)口接按鈕接地。以停止開關(guān)為例,如圖3所示 圖(3) 2.2.4 光電傳感器電路設(shè)計(jì) 如圖4所示 圖(4) 光電傳感器由兩部分組成,一部分是發(fā)光的二極管,一部分是由光電三極管組成的光電開關(guān)。當(dāng)左部分和右部分沒有物體遮擋時,發(fā)光二極管的光照射到光電三極管基極上,光電三極管導(dǎo)通,電壓比較器LM393 3腳電平高于2腳2.5V輸出電壓為低電平0V;當(dāng)左部分和右部分有物體遮擋時,光電三極管截止,電壓比較器LM393 3腳電平低于2腳電平2,5V輸出電壓為高電平5V。 2.2.5 數(shù)碼管顯示模塊 圖(5) 顯示模塊選用4個LED共陰極數(shù)碼管,為節(jié)省單片機(jī)輸入輸出口選用用74LS164芯片進(jìn)行串行數(shù)碼顯示。接線圖如圖所示,4個74LS164芯片串行連接,U2接收來自單片機(jī)的數(shù)據(jù),U3、U4、U5輸入端接在前一個數(shù)據(jù)輸出的最高位。每一次刷新顯示時,單片機(jī)通過第一個74LS164向顯示模塊輸入4個字節(jié)通過串行移位的方式,分別保存在U2、U3、U4、U5內(nèi)進(jìn)而控制4個數(shù)碼管的顯示。 2.2.6 報(bào)警模塊 圖(6) 報(bào)警模塊選用LED指示燈,由于單片機(jī)驅(qū)動電流較小故電路中加入三極管進(jìn)行電流放大。當(dāng)三極管的基極接收到來自單片機(jī)的低電平信號,三極管正向?qū)?,LED指示燈亮。 2.2.7 傳送帶模塊 傳送帶電機(jī)模塊由兩部分組成:一部分為弱電的控制電路(圖7),一部分是強(qiáng)電電路如(圖8,圖9)。 圖(7) 圖(8) 圖(9) 當(dāng)三極管的基極接收到來自單片機(jī)的低電平信號時,三極管正向?qū)ㄎ侠^電器開關(guān)K1,位于強(qiáng)電電路中的KM1線圈得電,傳送帶電機(jī)啟動運(yùn)行。當(dāng)三極管的基極接收到來自單片機(jī)的高電平信號時,三極管截止,繼電器的線圈通過二極管D1放電,K1斷開,KM1線圈掉電,KM1斷開,電機(jī)停止運(yùn)行。 2.2.8 灌裝設(shè)備模塊 此模塊和傳送帶模塊類似,此處不再贅述,電路圖如圖10、圖11、圖12所示。 圖(10) 圖(11) 圖(12) 3.控制程序設(shè)計(jì)與仿真 3.1控制程序設(shè)計(jì)平臺軟件keil uvision2簡介 Keil uVision2是德國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)c語言的語法來開發(fā),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用,而且大大的提高了工作效率和項(xiàng)目開發(fā)周期,他還能嵌入?yún)R編,您可以在關(guān)鍵的位置嵌入,使程序達(dá)到接近于匯編的工作效率。KEILC51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時保留了匯編代碼高效,快速的特點(diǎn)。C51編譯器的功能不斷增強(qiáng), 使你可以更加貼近CPU本身,及其它的衍生產(chǎn)品。C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個集成開發(fā)環(huán)境包含:編譯器,匯編器,實(shí)時操作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uVision2 IDE可為它們提供單一而靈活的開發(fā)環(huán)境。[2] 3.2 控制程序詳細(xì)設(shè)計(jì) 3.2.1 控制程序流程圖 控制程序框圖包括主程序框圖圖(13)和定時器中斷函數(shù)框圖(14)。 Y N N N N 主程序 系統(tǒng)初始化 開始開關(guān)on? 傳送帶關(guān)閉 單片機(jī)定時器啟動 停止開關(guān)on? 復(fù)位開關(guān)on? 收到傳感器信號? 傳送帶啟動 數(shù)碼管顯示初始值 傳感器信號消失? 結(jié)束 計(jì)數(shù)值清零 Y Y Y 圖(13) 50ms中斷程序 N 定時器重裝初值 計(jì)數(shù)值t 0加1 t0=120?或t0=20? N N t0=120? t0=20? Y Y 灌裝設(shè)備關(guān)閉 報(bào)警指示燈關(guān)滅 傳送帶啟動 t0=0 定時器關(guān)閉 計(jì)數(shù)值cunt加1 刷新數(shù)碼管顯示 灌裝設(shè)備啟動 報(bào)警指示燈燈亮 Y cunt=0 刷新數(shù)碼管顯示 cunt=10000? N RET 圖(14) 3.2.2 詳細(xì)程序設(shè)計(jì) (1)數(shù)碼管顯示函數(shù) void display() { uchar LED_code[4]; //存放四個數(shù)碼管顯示代碼 uchar i,j,chr,sel; for(i=0;i<4;i++) //將顯示的數(shù)值轉(zhuǎn)換為顯示代碼 LED_code[i]=LED_Map[disdata[i]]; for(i=0;i<4;i++) //74LS164數(shù)碼管串行顯示程序 { chr= LED_code[i]; // sel=0x80; for(j=0;j<8;j++) { Din=chr&sel; CLK=0; sel=sel>>1; delay(1); CLK=1; delay(1); } } } (2) 計(jì)數(shù)顯示函數(shù) voidcunt_disp() //計(jì)數(shù)顯示 { disdata[0]=cunt%1000%100%10; //取個位 disdata[1]=cunt%1000%100/10; //取十位 disdata[2]=cunt%1000/100; //取百位 disdata[3]=cunt/1000; //取千位 display(); } 計(jì)數(shù)顯示函數(shù),取出計(jì)數(shù)值的各個位送給disdata數(shù)組。 (3)關(guān)閉顯示函數(shù) voiddisp_off() //關(guān)閉顯示函數(shù) { uchari,j,chr,sel; for(i=0;i<4;i++) { chr=0x00; //關(guān)閉數(shù)碼管顯示 sel=0x80; for(j=0;j<8;j++) { Din=chr&sel; CLK=0; sel=sel>>1; delay(1); CLK=1; delay(1); } } } 關(guān)閉顯示函數(shù)本質(zhì)上是通過單片機(jī)賦值將數(shù)碼管的每個LED燈關(guān)滅。 (4)初始化函數(shù) voidinit() //初始化 { TMOD=0x01; //定時器初始化 TH0=(65536-50000)/256; //50ms TL0=(65536-50000)%256; EA=1; //開中斷 ET0=1; t0=0; //時間變量 chuansong=1;//傳送帶關(guān)閉 guanzhuang=1;//灌裝設(shè)備關(guān)閉 disp_off();//顯示關(guān)閉 cunt=0; //初始值 TR0=0; } 初始化函數(shù)為系統(tǒng)未啟動狀態(tài),此時初始化系統(tǒng)變量并且關(guān)閉所有設(shè)備。 (5) 定時器中斷函數(shù) voidtimer0()interrupt1 //50ms定時器中斷函數(shù) { TH0=(65536-50000)/256; //50ms設(shè)置 TL0=(65536-50000)%256; t0++; if(t0==20)//1s停頓 { guanzhuang=0; baojing=0; } if(t0==120) //1S停頓加5秒灌裝 { guanzhuang=1; //灌裝設(shè)備啟動 baojing=1; //報(bào)警燈亮 chuansong=0; //傳送帶關(guān)閉 t0=0; //t0重新賦值0 TR0=0; //關(guān)閉定時器 cunt++; //顯示值加1 if(cunt==10000) //計(jì)數(shù)值重置 cunt=0; cunt_disp(); //刷新顯示 } } (6) 主函數(shù) voidmain() //主函數(shù) { loop: init(); //初始化 while(auto_on); //等待啟動 chuansong=0; //傳送帶啟動 cunt_disp(); //顯示當(dāng)初始計(jì)數(shù)值 while(1) //主運(yùn)行程序 { if(!no_stop)gotoloop;//判斷是否有停止信號 if(rst_cunt==0)//判斷是否復(fù)位計(jì)數(shù)值 { cunt=0;//復(fù)位 cunt_disp();//刷新顯示 } if(!cunt_in)//接收到傳感器信號 { chuansong=1;//傳送帶停止 TR0=1;//定時器打開 while(!cunt_in);//等待信號結(jié)束 } } } 3.3 控制系統(tǒng)Protues仿真 3.3.1 光電傳感器仿真 此處用按鈕將發(fā)光二極管短路來模擬有物體遮擋的情況。按鈕未按下(無物體遮擋)時電壓比較器輸出高電平,按鈕按下之后輸出為低電平。 3.3.2 灌裝設(shè)備和傳送帶仿真 此處選用protues中的直流單相電機(jī)仿真交流電機(jī)。 3.3.3 數(shù)碼管顯示仿真 3.3.4 整體仿真圖 結(jié)束語 通過本次的課程設(shè)計(jì),學(xué)到了很多關(guān)于單片機(jī)仿真的東西。在做仿真電路事,遇到了一些困難尤其是電源穩(wěn)壓模塊和光電傳感器模塊,但是通過上網(wǎng)查資料最終還是比較好的解決了這些問題,另外在編寫C51程序時也遇到了一些問題,包括中斷函數(shù)的編寫和信號的處理,但最終也是通過不斷地調(diào)試,思考解決了問題。 通過本次本次的課程設(shè)計(jì),我對專業(yè)知識有了更深的認(rèn)識,相信會對我以后的學(xué)習(xí)或者工作有很大幫助。 參考文獻(xiàn) [1]百度百科.Protues. http://baike.baidu.com/link?url=wr6Khr4kYydYD-K01yBexH2-RlbjW6MMtxw7TC5siqUE4Ye_l_u3t2ZU5i--FKZQ08TrQVXD_jKd9gfXz2Wc5a [2]百度百科.keil. http://baike.baidu.com/link?url=yOZ4_pNldquRnwc5MuhZpPUfD1qzE25ax7SPdLfDhbMRUKvWiJY6fUfzYyf_5_dfhjYOObCkexJAXk7UlMgdLq 附錄I 電路圖 單片機(jī)板電路圖 強(qiáng)電電路電路圖 附錄II C51源代碼 #include- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 飲料 罐裝 生產(chǎn) 流水線 單片機(jī) 控制系統(tǒng) 設(shè)計(jì)
鏈接地址:http://weibangfood.com.cn/p-6615112.html