《單片機技術與應用》 課件 項目二 智能車間生產線計數系統(tǒng)設計與制作任務2_第1頁
《單片機技術與應用》 課件 項目二 智能車間生產線計數系統(tǒng)設計與制作任務2_第2頁
《單片機技術與應用》 課件 項目二 智能車間生產線計數系統(tǒng)設計與制作任務2_第3頁
《單片機技術與應用》 課件 項目二 智能車間生產線計數系統(tǒng)設計與制作任務2_第4頁
《單片機技術與應用》 課件 項目二 智能車間生產線計數系統(tǒng)設計與制作任務2_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

任務2計數模塊設計與制作單片機技術與應用項目二智能車間生產線計數系統(tǒng)設計與制作任務2計數模塊設計與制作三諾生物傳感有限公司【基礎任務要求】利用紅外光電傳感器檢測產品進行計數,當計數值達到3時報警,并且每1秒鐘信號燈閃爍一次。(用中斷方式實現計數)任務2計數模塊設計與制作任務實現四步驟繪制控制電路圖搭接硬件電路硬件設計調試控制電路調試控制程序軟硬件調試仿真運行實物運行功能實現繪制流程圖編程實現三個功能:中斷計數、蜂鳴器控制、1秒定時軟件設計01020304重點、難點難點STC89C52單片機時鐘電路復位電路電源電路指示燈電路系統(tǒng)框圖任務2計數模塊設計與制作蜂鳴器電路紅外光電傳感器電路任務2計數模塊設計與制作紅外光電傳感器時鐘電路復位電路指示燈電路蜂鳴器電路顯示電路按鍵電路任務名:計數模塊設計與制作元件名稱圖片型號數量Proteus中的名稱單片機芯片AT89C511用AT89C51代替STC89C52晶振12MHZ1CRYSTAL電容22pF2CAP電解電容22μf/16V1CAP-ELEC電阻0.1KΩ1RES電阻470Ω1RES電阻10KΩ1RES發(fā)光二極管1LED-RED紅外光電傳感器1用按鈕button代替三極管1PNP蜂鳴器1BUZZER元器件選型硬件電路圖任務2計數模塊設計與制作硬件設計-繪電路細致規(guī)范嚴謹小錦囊電路繪制規(guī)范:用統(tǒng)一規(guī)定的元件符號盡量避免導線的交叉導線要求橫平豎直設置元器件參數元件放在編輯區(qū)內元器件之間要用導線連接軟件設計2如何用中斷方式編程實現1秒延時?重點、難點1如何用中斷方式編程實現計數函數?重點、難點知識鏈接1.中斷系統(tǒng)的結構知識鏈接

5個中斷源2個優(yōu)先級2個外部中斷3個內部中斷INT0(P3.2)INT1(P3.3)T0T1UART

與中斷有關的特殊功能寄存器:IP:中斷優(yōu)先控制寄存器IE:中斷允許控制寄存器TCON:定時/計數控制寄存器SCON:

UART控制寄存器中斷標志寄存器可編程,可控MCS–51中斷要點2.中斷源及相關中斷標志3.定時/計數器控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT0

INT1

INT0觸發(fā)方式控制位0

低電平觸發(fā)1

邊沿↓觸發(fā)

INT1

INT0外部中斷請求標志1

有有效觸發(fā)時0

當CPU響應中斷時T1T0溢出標志由硬件自動中斷請求標志可編程控制位在每個機器周期S5P2都采樣引腳P3.3P3.20記錄有無中斷0

當CPU響應中斷時,也可由指令清除1

計數器“+1”有溢出時,并向CPU請求中斷知識鏈接知識鏈接中斷允許寄存器IE

EAESET1EX1ET0EX0INT0INT1T1T0UARTCPU0禁止1

允許0

禁止1

允許總中斷

總中斷中斷中斷IE(A8)中斷的開放和禁止是可控,可編程的T2CPUIE的相應位被置“0”或“1”該相應中斷即被“禁止”或“開放”4.中斷控制寄存器voidtimer0() //定時1秒函數{unsignedinti;for(i=0;i<1000;i++){ TH0=0xFC; TL0=0x18; while(!TF0){;} TF0=0;} }voidmain() //主函數{TMOD=0x01;TH0=0xFC; TL0=0x18;

TR0=1;

EX0=1;EA=1;while(1){jishu();led=0;timer0();led=1;} }中斷編程步驟開放中斷源允許開放總中斷源允許中斷函數編程知識鏈接5.IP寄存器(優(yōu)先級控制)知識鏈接例:設有如下要求,將T0、外中斷1設為高優(yōu)先級,其他為低優(yōu)先級,求IP的值。IP的值:0x06在上例中,如果5個中斷請求同時發(fā)生,求中斷響應的次序。響應次序為:

定時器0-外中斷1-外中斷0-定時器1-串行中斷11000000知識鏈接特定事件發(fā)生主程序主程序中斷服務子程序斷點中斷源CPU6.單片機的中斷過程中斷請求中斷響應中斷服務中斷返回中斷請求中斷響應中斷服務中斷返回知識鏈接7.中斷源-一些特定的事件,也稱中斷請求信號知識鏈接8.中斷服務程序

處理特定事件的一段程序。中斷編程步驟開放中斷源允許開放總中斷源允許中斷函數編程特定事件發(fā)生主程序主程序中斷服務子程序斷點中斷源CPU紅外光電傳感器檢測到產品中斷響應計數產品,當產品數為3時,報警知識鏈接8.中斷服務程序

處理特定事件的一段程序。知識鏈接8.中斷服務程序處理特定事件的一段程序。voidjishu()interrupt0//計數函數{

unsignedintjs;if(IRIN==0) //如果紅外輸入=0{delay(10); //延時10msif(IRIN==0){while(!IRIN);//松手檢測js++;if(js==3){ baojing();//調用報警函數 js=0;}}}}知識鏈接9.中斷函數的定義在C語言程序中,中斷函數使用關鍵詞interrupt與中斷號來定義中斷函數,其一般形式如下:void中斷函數名()interrupt中斷號[usingn]{聲明部分;執(zhí)行部分;}知識鏈接中斷源名稱對應引腳中斷入口地址C語言中斷源服務程序入口外部中斷0INT0(P3.2)0003H0定時/計數器0T0(P3.4)000BH1外部中斷1INT1(P3.3)0013H2定時/計數器1T1(P3.5)001BH3串行口中斷串行接收RXD(P3.0)串行發(fā)送TXD(P3.1)0023H410.中斷函數的定義voidjishu()interrupt0//計數函數{

unsignedintjs;if(IRIN==0) //如果紅外輸入=0{delay(10); //延時10msif(IRIN==0){while(!IRIN);//松手檢測js++;if(js==3){ baojing();//調用報警函數 js=0;}}}}知識鏈接中斷函數與普通子函數有什么區(qū)別?中斷函數是在發(fā)生中斷時間后,主程序自動進入中斷函數運行,運行結束后在退出中斷函數,返回到進入中斷函數之前的運行狀態(tài)。普通的函數則需要主函數去調用。#include<reg51.h>sbitIRIN=P3^2;//紅外光電傳感器sbitbeep=P1^3;//蜂鳴器sbitled=P1^7; //信號燈voidbaojing(); //報警函數的聲明voiddelay(unsignedintz);//延時函數的聲明voidtimer0();//1秒定時函數voidled1();//指示燈閃爍函數的聲明voidjishu()interrupt0//計數函數{unsignedintjs;if(IRIN==0) //如果紅外輸入=0{delay(10); //延時10msif(IRIN==0){while(!IRIN);//松手檢測

js++;if(js==3){

baojing();//調用報警函數

js=0;}}}}如何用中斷方式編程實現計數?知識鏈接voidbaojing()//報警函數{beep=0; //蜂鳴器響

delay(100);beep=1; //蜂鳴器不響

delay(100);}voiddelay(unsignedintz)//延時函數{ unsignedintx,y; for(x=z;z>0;z--) for(y=110;y>0;y--); }知識鏈接voidtimer0()

//定時1s函數{unsignedinti;for(i=0;i<1000;i++){TH0=0xFC; TL0=0x18; while(!TF0); TF0=0;} }voidmain()//主函數{TMOD=0x01;TH0=0xFC; TL0=0x18;EA=1;TR0=1;EX0=1;while(1){led1();} }voidled1(){led=0;timer0();led=1;timer0();

}程序代碼編寫規(guī)范:1.字母大小寫一致2.標點符號必須在英文狀態(tài)下輸入3.遵循變量命名規(guī)則4.注意TH0、TL0、TF0、TR0TH1、TL1、TF1、TR15.注意循環(huán)語句的格式勤勉創(chuàng)新堅持知識鏈接【舉一反三】如何用中斷方式編程實現1秒定時?特定事件發(fā)生主程序主程序中斷服務子程序斷點中斷源CPU1毫秒時間到中斷響應循環(huán)1000次達到1秒知識鏈接#include<reg51.h>sbitIRIN=P3^6; //紅外光電傳感器sbitbeep=P1^3; //蜂鳴器sbitled=P1^7; //信號燈voidjishu(); //計數函數的聲明voidbaojing(); //報警函數的聲明voiddelay(unsignedintz);//延時函數的聲明voidjishu()//計數函數{unsignedintjs;if(IRIN==0) //如果紅外輸入=0{delay(10); //延時10msif(IRIN==0){while(!IRIN);//松手檢測

js++;if(js==3){ baojing();//調用報警函數

js=0;}}}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論