freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于單片機的十六路搶答器-預覽頁

2025-06-30 22:12 上一頁面

下一頁面
 

【正文】 搶答器的工作原理是采用單片機最小系統(tǒng),用查詢式鍵盤進行搶答。根據設計功能的要求,電路應該包括控制電路,按鍵電路,以及用來顯示裁決結果的顯示電路。圖3單片機的最小系統(tǒng)(2)系統(tǒng)特點有大量可使用的I/O口;沒有并行擴展,應用系統(tǒng)結構簡單;外圍器件只能通過UART口的串行移位方式或虛擬串行擴展總線進行擴展。P0P3四個I/O端口都可以用作普通I/O口,因此,要求有輸出鎖存功能。在使用并行擴展總線時,P0口可做數(shù)據總線口和低8位地址總線口,P0口為三態(tài)雙向口。P3口的第二功能輸入引腳功能表如表1所示:表1 P3口的第二功能輸入引腳端口引腳第二功能說 明RXD串行數(shù)據接受TXD串行數(shù)據發(fā)送外部中斷0申請外部中斷1申請T0定時/計數(shù)器0輸入T1定時/計數(shù)器1輸入外部數(shù)據存儲器寫選通外部數(shù)據存儲器讀選通準雙向口結構P0、PPP3口作為普通I/O口使用時,都是準雙向口結構,準雙向口的典型結構如圖(5)b所示,準雙向口的輸入操作和輸出操作本質不同,輸入操作是讀引腳狀態(tài);輸出操作是對口鎖存器的寫入操作。無論是P0、P2口的總線復用,還是P3口的功能復用,內部資源會自動選擇,不需要通過指令的狀態(tài)選擇。P0口作為普通I/O口使用。P0口每一個I/O口可輸出驅動8個TTL負載。振蕩器的頻率主要取決于晶體的振蕩頻率。復位操作不影響片內RAM的內容,但是對SFR(特殊功能寄存器)中的一些寄存器有影響。圖7為復位電路的接法。軟件消抖是用延時來躲過暫態(tài)抖動過程,執(zhí)行一段大于10ms的延時程序后,再讀取穩(wěn)定的鍵狀態(tài)。44矩陣式鍵盤的示意圖如圖8所示:圖8 44矩陣式鍵盤的示意圖檢測鍵盤上有無鍵按下可采用查詢工作方式。這樣的多位顯示,將所有位的選線并聯(lián)在一起,由一個8位I/O口控制,實現(xiàn)各部分的分時選通。如此輪流,使每一位分時顯示該位應顯示字符。4 系統(tǒng)軟件的設計眾多軟件的聯(lián)合使用對應用系統(tǒng)的設計起到了很重要的作用,在實物制作之前對設計進行仿真,可以檢驗程序的執(zhí)行結果是否與設計的功能相同,這樣可以對程序進行改進。NY開始并響聲提示設定定時器初值并啟動定時器10秒搶答倒計時開始顯示調用讀鍵子程序作為延時程序是否有按鍵按下調用顯示搶答者的子程序10秒到時中斷 圖11 系統(tǒng)程序流程圖響聲提示設定定時器初值并啟動顯示搶答者且響聲提示RET開始 圖12 搶答成功流程圖5 系統(tǒng)仿真 Proteus軟件介紹在該設計中,利用Proteus軟件進行仿真。仿真圖為3號選手成功搶答搶答成功仿真如圖14。當仿真開始運行時,各個模塊處于初始狀態(tài)。若倒計時至5秒沒有人搶答,蜂鳴器響聲提示搶答時間將要結束。特別是Proteus仿真軟件的使用,不知是由于電腦的問題還是怎么,這個軟件的安裝就花了我很長的時間,好不容易安裝好了,又對軟件的使用一點都不熟悉,要從頭開始學起,對芯片原理進行仿真畫圖,剛剛開始時候真的很難下手,因為是英文版的軟件,很多東西都看不太明白,都是通過自己一個個來慢慢琢磨,才把仿真圖畫了出來,然后把寫好的程序導入芯片,進行仿真,當看到程序正常運行的那一刻,心中真是有幾分的喜悅。這次課程設計讓我充分理解了AT89S52單片機的工作原理,知道了搶答器的硬件和軟件的實現(xiàn)過程,并且通過自己動手編寫程序來控制搶答器的工作,我感到非常有成就感,也鍛煉了我的編程能力。實物的制作僅僅是在實驗室完成的,在實際應用中還有許多問題需要考慮,比如選手是分散在主席臺下的,那么選手的按鍵就要通過總線進行連接,而不是實驗板上簡單的矩陣鍵盤式的連接。同時也要感謝XXX,XXX等同學,他們在設計的各個階段給了我很多幫助和建議。 //蜂鳴器控制端口ssbit key1=P1^1。/******************************************/ /* 延時子程序 */ /******************************************/ void delay(uchar x){ uchar a,b。b0。 ge=disnum%10。 P0=table[ge]。 //P1口清1 temp=P3。 TMOD=0x10。 }void keyscan1() //增大鍵 減小鍵設定鍵{ if(s2==0) { delay(5)。 } } if(s3==0) { delay(5)。 } } }void keyscan(){ P3=0xfe。 if(temp!=0xf0) { delay(5)。 if(temp!=0xf0) { temp=P3。 break。 break。 } } } P3=0xfd。 if(temp!=0xf0) { delay(5)。 if(temp!=0xf0) { temp=P3。 break。 break。 } } } P3=0xfb。 if(temp!=0xf0) { delay(5)。 if(temp!=0xf0) { temp=P3。 break。 break。 } } } P3=0xf7。 if(temp!=0xf0) { delay(5)。 if(temp!=0xf0) { temp=P3。 break。 break。 } } }}/******************************************/ /* 主程序 */ /******************************************/ void main(){ init()。 if(key1==0) { TR1=1。 } else { TR1=0。 while(1)//進入死循環(huán),將所按下的鍵顯示并定格,防止有鍵再按下時將其覆蓋。 count++。amp。 //關閉蜂鳴器 } if(disnum==0) { TR1=0。i++)//循環(huán)調用顯示0延時, display(disnu
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1