單片機應用技術-基于STC15系列單片機 課件 3.3 多路搶答器的實現_第1頁
單片機應用技術-基于STC15系列單片機 課件 3.3 多路搶答器的實現_第2頁
單片機應用技術-基于STC15系列單片機 課件 3.3 多路搶答器的實現_第3頁
單片機應用技術-基于STC15系列單片機 課件 3.3 多路搶答器的實現_第4頁
單片機應用技術-基于STC15系列單片機 課件 3.3 多路搶答器的實現_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目搶答器的實現搶答器的實現任務目錄任務一開關控制LED燈顯示任務二數碼管顯示按鍵按下次數任務三多路搶答器的實現搶答器的實現主持人有一個開始搶答命令按鍵任務功能3個選手各有一個搶答按鍵當主持人按下開始按鍵后,數碼管顯示“P”,允許選手開始搶答,否則搶答無效;某選手按下對應的按鍵后,數碼管顯示選手號,蜂鳴器鳴叫一段時間,此時其他選手不允許搶答;當主持人重新按下對應的按鍵后,上述動作繼續(xù)主裁判點評在搶答的任意環(huán)節(jié),主裁判可打斷進行點評;點評后,恢復打斷前的狀態(tài)選手裁判主持搶答器硬件電路設計序號名稱Proteus中元件名參數數量1單片機STC15W4K32S4127段共陽數碼管7seg-com-anode

13排阻RX847014按鍵button55蜂鳴器buzzer16三極管PNP17電阻RES22018發(fā)光二極管LED8蜂鳴器蜂鳴器是一種一體化結構的電子訊響器,根據使用方式分為:無源蜂鳴器:內驅動部無震蕩源,需要2KHZ-5KHZ的方波信號驅動有源蜂鳴器:內帶震蕩源,接入額定的電源電壓驅動無源蜂鳴器:內部不帶震蕩源,所以如果用直流信號無法令其鳴叫。必須用2K~5K的方波去驅動它。優(yōu)點是:1.便宜2.聲音頻率可控,可以做出“多來米發(fā)索拉西”的效果。(a)有源蜂鳴器(b)無源蜂鳴器蜂鳴器蜂鳴器的工作電流在30mA左右,單片機的I/O口輸出電流:拉電流:<1mA灌電流:10mA單片機的I/O口不足以驅動蜂鳴器,需要接驅動電路。蜂鳴器sbitBUZZER=P3^6; voidmain() {

while(1) {

BUZZER=0;delay_ms(500);

BUZZER=1;delay_ms(500);} }搶答器的實現主持人有一個開始搶答命令按鍵任務功能3個選手各有一個搶答按鍵當主持人按下開始按鍵后,數碼管顯示“P”,允許選手開始搶答,否則搶答無效;某選手按下對應的按鍵后,數碼管顯示選手號,蜂鳴器鳴叫一段時間,此時其他選手不允許搶答;當主持人重新按下對應的按鍵后,上述動作繼續(xù)主裁判點評在搶答的任意環(huán)節(jié),主裁判可打斷進行點評;點評后,恢復打斷前的狀態(tài)選手裁判主持搶答器軟件程序設計循環(huán)內有2個函數,一個是判主持人是否按下開始鍵的函數chairman_scan();一個是判選手是否按下搶答鍵的函數player_scan();chairman_scan()給出主持人是否按下的標識,根據該標識來確定是否執(zhí)行player_scan()Y初始化state=1?Nplayer_scan()chairman_scan()程序主函數bitstate=0;//初始狀態(tài)不允許搶答voidmain(void){IO_Init();P0=0xff;//關數碼管state=0;//初始狀態(tài)不允許搶答while(1){ chairman_scan(); //掃描主持人按鍵if(state==1){ player_scan(); //掃描選手按鍵

}}}主持人按鍵函數sbitCHAIRMAN=P3^1;voidchairman_scan()//主持人掃描函數定義{ if(CHAIRMAN==0) { delay_ms(10);//去抖動

if(CHAIRMAN==0) { state=1; P0=0x8c; //顯示"P",表示開始搶答

}while(CHAIRMAN==0); //等待按鍵釋放 }}P3&0x38=0x38?NNYY延時幾個msYY顯示”1”退出P3&0x38=0x38?P3&0x38=0x38?顯示”2”顯示”3”關閉顯示N0x300x280x18其他選手按鍵函數增加state=0;增加beep();選手按鍵函數

voidplayer_scan(){if((P3&0x38)!=0x38) {delay_ms(10);//去抖動 if((P3&0x38)!=0x38) {switch(P3&0x38){ case0x30:P0=segtab[1];P1=~0x01;break; case0x28:P0=segtab[2];P1=~0x02;break;case0x18:P0=segtab[3];P1=~0x04;break;default:P0=0xff;P1=0xff;} state=0;beep();//聲音提示

while((P3&0x38)!=0x38); //等待按鍵釋放}

}}蜂鳴器鳴叫函數sbitBUZZER=P3^6;voidbeep(){unsignedchari;for(i=0;i<200;i++)//產生200個周期為1ms左右的方波

{delay_ms(1);//延時1ms

BUZZER=~BUZZER;//產生方波

}}IO初始化voidIO_Init(){P0M0=0x00;P0M1=0x00;//設置P0工作于準雙向口模式P1M0=0x00;P1M1=0x00;//設置P1工作于準雙向口模式P3M0=0x00;P3M1=0x00;//設置P3工作于準雙向口模式}搶答器的實現主持人有一個開始搶答命令按鍵任務功能3個選手各有一個搶答按鍵當主持人按下開始按鍵后,數碼管顯示“P”,允許選手開始搶答,否則搶答無效;某選手按下對應的按鍵后,數碼管顯示選手號,蜂鳴器鳴叫一段時間,此時其他選手不允許搶答;當主持人重新按下對應的按鍵后,上述動作繼續(xù)主裁判點評在搶答的任意環(huán)節(jié),主裁判可打斷進行點評;點評后,恢復打斷前的狀態(tài)選手裁判主持什么是中斷單片機中斷系統(tǒng)結構中斷處理過程第5章中斷1、隨時發(fā)生2、自動響應3、執(zhí)行中斷后自動返回主函數什么是中斷?執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點中斷請求中斷響應執(zhí)行中斷處理程序中斷返回搶答器的實現

中斷的作用

中斷功能強弱是單片機性能優(yōu)劣的重要標志

實現并行工作

提高CPU效率

實時處理

異常處理中斷(1)主程序:原來正常運行的程序稱為主程序。(2)斷點:主程序被斷開的位置(或地址)稱為斷點。(3)中斷源:引起中斷的原因,或能發(fā)出中斷申請的來源,稱為中斷源。(4)中斷請求:中斷源要求服務的請求稱為中斷請求(或中斷申請)。(5)中斷服務程序:CPU響應中斷后,轉去執(zhí)行相應的處理程序,該處理程序通常稱之為中斷服務程序。中斷相關概念中斷中斷的主要來源

外部中斷

定時中斷串行中斷

中斷源外部中斷外部中斷的來源:來自于單片機外部的可以產生下降沿或低電平的器件??梢猿霭l(fā)外部中斷的器件:按鍵、開關、傳感器……

外部中斷用什么方式能夠使按鍵的讀取變簡單,且實現并行工作?解決辦法:外部中斷外部中斷編程實例1:

外部中斷控制LED狀態(tài)切換要求:P1端口連接8個LED,P3.2引腳連接一個按鍵K1。

(1)正常情況下LED全亮。

(2)按下K1一次,LED燈狀態(tài)切換一次;項目任務分析和編寫外部中斷程序:外部中斷程序結構:

1、外部中斷的初始化部分 2、外部中斷服務程序的編寫外部中斷程序1、外部中斷的初始化外部中斷1、外部中斷的初始化——使用外部中斷0的相關設置:

外部中斷有效方式的設置:

IT0=0:低電平觸發(fā);IT0=1:下降沿觸發(fā);

單片機如何能響應定時器中斷:

EX0=1,EA=1;

外部中斷TF1

TF0

IE1IT1IE0IT0TCON88H

外部中斷INT0觸發(fā)方式控制位(TCON.2):

IT0=0,電平觸發(fā)方式

IT0=1,下降沿觸發(fā)方式765432101、外部中斷的初始化——①TCON寄存器外部中斷EA=0:禁止所有中斷EA=1:CPU開放所有中斷EX0(EX1)=0:禁止外部中斷EX0(EX1)=1:允許外部中斷1、外部中斷的初始化——注意:兩個寄存器都可以位尋址。EA—ET2ESET1EX1ET0EX0②IE(中斷允許寄存器)外部中斷2.外部中斷服務程序的編寫函數名()interrupt

n

usingm{

函數內部實現….}

中斷源編號n外部00定時器01外部12定時器13串口4usingm:定義中斷函數使用的工作寄存器組,m的取值范圍為0-3,可以缺省。①不能進行參數傳遞;②無返回值;③在任何情況下,不能直接調用中斷函數;④不同的中斷函數使用不同的寄存器組,避免沖突。外部中斷編程實例1:

外部中斷控制LED狀態(tài)切換要求:P10引腳連接LED,P3.2引腳連接一個按鍵K1。(1)正常情況下LED亮。(2)按下K1一次,LED燈狀態(tài)切換一次;voidmain(){EA=1;//開總中斷開關EX0=1;//開外部中斷0中斷允許控制位IT0=1;//把IT0設為下降沿觸發(fā)P10=0;//設置初始狀態(tài)while(1);//原地等待不變}voidint0()interrupt0//中斷服務程序0{ P10=~P10;//把P10的值切換}外部中斷編程實例1:

外部中斷控制LED狀態(tài)切換要求:P1端口連接8個LED,P3.2引腳連接一個按鍵K1。(1)正常情況下LED全亮。(2)按下K1一次,8燈狀態(tài)切換一次;使用外部中斷1處理,軟硬件應該如何修改?外部中斷項目任務:

多路搶答器的實現項目實現voidINT_Init(){EX0=1;//允許外部中斷0IT0=1;//中斷觸發(fā)方式:上升沿/下降沿EA=1;//中斷總允許位置1}項目任務:

多路搶答器的實現項目

溫馨提示

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

評論

0/150

提交評論