版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 1 前言能夠?qū)崿F(xiàn)搶答器功能的方式有多種,可以采用前期的模擬電路、數(shù)字電路或模擬與數(shù)字電路相結(jié)合的方式。近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入 ,同時(shí)帶動傳統(tǒng)控制檢測日新月異更新。2 系統(tǒng)整體方案設(shè)計(jì)本電路中的 51 單片機(jī)是控制的主體, 起到識別按鍵,對數(shù)據(jù)做出相應(yīng)的處理 (復(fù)位,清零,鎖存,報(bào)警等) 。而數(shù)碼管主要顯示倒計(jì)時(shí)與選手按鍵號碼。報(bào)警時(shí)間的長短也可以調(diào)節(jié)。在整個(gè)實(shí)驗(yàn)中調(diào)節(jié)按鍵然后觀察顯示同步,完成實(shí)驗(yàn)。圖 2.1 單片機(jī)控制系統(tǒng)方框圖3 硬件電路設(shè)計(jì)3.1 單片機(jī)主控電路設(shè)計(jì)3.1.1單片機(jī)最小系統(tǒng)設(shè)計(jì)單片機(jī)倒計(jì)時(shí)系統(tǒng)思路: 主持人按 搶答開始 鍵,會有提示音
2、, 并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)10s搶答時(shí)間),如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),不進(jìn)行搶答查詢,所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會每秒響一下提示音。3.1.2 單片機(jī)引腳資源分配單 片機(jī) 主控 制倒 計(jì) 時(shí)模 塊顯示模塊主持人控制開關(guān)搶答按鈕報(bào)警電路2 圖 3.1.2 單片機(jī)引腳圖單片機(jī)p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口的輸出緩沖器可驅(qū)動4個(gè)ttl邏輯門電路。p1.0p1.3口接四個(gè)按鈕;xtal1,xtal2分別通過電容并聯(lián)晶振 ; p0口是一組 8 位漏極開路雙向i/o口,每位引腳可驅(qū)動8個(gè)邏輯門路。
3、對p0口的管腳寫“1”時(shí),被定義為高阻抗輸入。在訪問外部數(shù)據(jù)存儲器或程序存儲器時(shí),它可以被定義為數(shù)據(jù)總線和地址總線的低八位。p0.0p0.6口外部必須接上拉電阻,再接一個(gè)7seg-mpx4cc顯示器。p3口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p3口的輸出緩沖器可驅(qū)動4個(gè)ttl邏輯門電路。p3口除了一般i/o線的功能外,還具有更為重要的第二功能,p3.0p3.4口接五個(gè)按鈕,p3.6口(外部數(shù)據(jù)存儲器寫選通)接一個(gè)報(bào)警器。3.2 顯示模塊設(shè)計(jì)顯示模塊用的是7seg-mpx4cc,1、3、4口是用來控制數(shù)碼管顯示數(shù)的。3 本數(shù)碼管采用的是動態(tài)顯示。圖 3.2 7seg-mpx4cc圖4 軟件
4、流程設(shè)計(jì)4.1 系統(tǒng)流程圖圖 4.1 系統(tǒng)流程圖4 4.2 倒計(jì)時(shí)程序流程圖圖 4.2 倒計(jì)時(shí)流程圖開始載入倒計(jì)時(shí)初值開定時(shí)器中斷t=0 顯示子程序定時(shí)寄存器減1 結(jié)束5 4.3 顯示程序流程圖圖 4.3 顯示程序流程圖開始查表p2 賦值p2 值送 p0口延時(shí)p0 口做段選碼口輸出/p2 低三位做位選碼輸出結(jié)束p2 減 1 6 4.4 四路搶答器程序org 0 ok equ 20h requ 22h ljmp start org 0003h ljmp interrupted org 000bh ljmp t0int org 0013h ljmp int1sub org 001bh ljmp t
5、1int org 0040h start: mov r1,#10 mov r2,#30 mov tmod,#11h mov th0,#0f0h mov tl0,#0ffh mov th1,#3ch mov tl1,#0b0h setb ea setb et0 setb et1 setb ex0 setb ex1 clr ok clr r setb tr1 setb tr0 inquire: mov r5,#0bh;查詢7 mov r4,#0bh mov r3,#0bh acall display;未開始搶答時(shí)候顯示fff jb p3.0,key acall delay jb p3.0,key;
6、去抖動 ,如果開始鍵 按下就向下執(zhí)行 ,否者跳到非法搶答查詢acall bark mov a,r1 mov r6,a setb ok mov r7,#01h ;讀搶答鍵數(shù)據(jù)信號標(biāo)志,這里表示只讀一次有用信號mov r3,#0ah;搶答只顯示計(jì)時(shí) ,滅號數(shù)ljmp count key: jnb p1.0,f1 jnb p1.1,f2 jnb p1.2,f3 jnb p1.3,f4 ljmp inquire f1: mov r3,#01h;非法搶答ljmp error f2: mov r3,#02h ljmp error f3: mov r3,#03h ljmp error f4: mov r3,
7、#04h ljmp error interrupted:mov a,r1;搶答時(shí)間r1調(diào)整mov b,#0ah div a mov r5,a 8 mov r4,b mov r3,#0ah acall display jnb p3.4,inc0 jnb p3.5,dec0 jnb p3.1,back0 ljmp interrupted inc0: mov a,r1 cjne a,#63h,add0;如果不是 99,r2 加 1,如果加到 99,r1 就置 0,重新加起。mov r1,#00h acall delay1 ljmp interrupted add0: inc r1 acall del
8、ay1 ljmp interrupted dec0: mov a,r1 jz setr1;如果 r1 為 r, r1 就置 99,dec r1 acall delay1 ljmp interrupted setr1: mov r1,#63h acall delay1 ljmp interrupted back0: reti int1sub: mov a,r2;回答時(shí)間 r2 調(diào)整mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah 9 acall display jnb p3.4,inc1 jnb p3.5,dec1 jnb p3.1,back1 lj
9、mp int1sub inc1: mov a,r2 cjne a,#63h,add1 mov r2,#00h acall delay1 ljmp int1sub add1: inc r2 acall delay1 ljmp int1sub dec1: mov a,r2 jz setr2 dec r2 acall delay1 ljmp int1sub setr2: mov r2,#63h acall delay1 ljmp int1sub back1: reti repeat: mov a,r2;倒計(jì)時(shí)mov r6,a clr r count: mov r0,#00h mov th1,#3ch
10、 mov tl1,#0b0h recount: mov a,r6;r6保存了倒計(jì)時(shí)的時(shí)間 ,之前先將搶答時(shí)間或回答時(shí)間給r6 mov b,#0ah div ab 10 mov 30h,a mov 31h,b mov r5,30h mov r4,31h mov a,r6 subb a,#07h jnc larger;大于 5s 跳到 larger,小于等于 5s 會提醒mov a,r0 cjne a,#0ah,full;1s中 0.5s 向下運(yùn)行clr r ljmp check full: cjne a,#14h,check;下面是 1s 的情況 ,響并顯示號數(shù)并清r0,重新計(jì)setb r mo
11、v a,r6 jz quit;計(jì)時(shí)完畢mov r0,#00h dec r6;一秒標(biāo)志減1 ljmp check larger: mov a,r0 cjne a,#14h,check;如果 1s 向下運(yùn)行 ,否者跳到查 停/顯示 dec r6;計(jì)時(shí)一秒 r6 自動減 1 mov r0,#00h check: jnb p3.1,quit;如按下停止鍵退出jnb ok,checkk;只在回答倒計(jì)時(shí)才有效ljmp keyt checkk: jnb p3.0,repeat;判斷是否使用錦囊keyt: acall display jb ok,accout;如果是搶答倒計(jì)時(shí) ,如是則查詢搶答 ,否者跳過查詢
12、繼續(xù)倒數(shù)ljmp recount accout: mov a,36h 11 jnb acc.0,true1 jnb acc.1,true2 jnb acc.2,true3 jnb acc.3,true4 ljmp recount tz1: jmp true3 tz2: jmp true4 quit: clr ok;如果按下了 停止鍵執(zhí)行的程序clr r ljmp inquire true1: acall bark;開始搶答mov a,r2 mov r6,a mov r3,#01h clr ok;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答ljmp count true2: acall bark
13、mov a,r2 mov r6,a mov r3,#02h clr ok ljmp count true3: acall bark mov a,r2 mov r6,a mov r3,#03h clr ok ljmp count true4: acall bark mov a,r2 mov r6,a 12 mov r3,#04h clr ok ljmp count clr ok ljmp count error: mov r0,#00h;犯規(guī)搶答mov th1,#3ch mov tl1,#0b0h mov 34h,r3 here: mov a,r0 cjne a,#06h,flash;0.3s向
14、下運(yùn)行 -滅并停響clr r mov r3,#0ah mov r4,#0ah mov r5,#0ah;三燈全滅ljmp check1 flash: cjne a,#0ch,check1;下面是 0.8s 的情況 ,響并顯示號數(shù)并清r0,重新計(jì)setb r mov r0,#00h mov r3,34h;取回號數(shù)mov r5,#0bh mov r4,#0bh;顯示 ff 和號數(shù)ljmp check1 check1: jnb p3.1,quit1 acall display ljmp here quit1: clr r clr ok ljmp start display: mov dptr,#dat
15、1;顯示程序mov a,r3 13 movc a,a+dptr mov p2,#0feh mov p0,a acall delay2 mov dptr,#dat2 mov a,r5 movc a,a+dptr mov p2,#0fdh mov p0,a acall delay2 mov a,r4 movc a,a+dptr mov p2,#0fbh mov p0,a acall delay2 ret dat1: db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h dat2: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,
16、7fh,6fh,00h,71h delay1: mov 35h,#08h;起到不會按下就加n 個(gè)數(shù)loop0: acall display djnz 35h,loop0 ret delay: mov 32h,#12h;去抖動loop: mov 33h,#0afh loop1: djnz 33h,loop1 djnz 32h,loop ret delay2: mov 32h,#43h;延時(shí)loop3: mov 33h,#1eh mov a,r7 jnz lp1 14 loop2: djnz 33h,loop2 djnz 32h,loop3 ret lp1: mov a,p1 cjne a,#0f
17、fh,aa1;當(dāng)不全為 1 時(shí)的數(shù)據(jù)為有效數(shù)據(jù)aa0: mov 36h,a;將有效數(shù)據(jù)送到 36h 暫存ljmp loop2 aa1: dec r7 ajmp aa0 bark: setb r;發(fā)聲程序acall delay1 acall delay1 clr r;按鍵發(fā)聲r(shí)et t0int: mov th0,#0ech;響鈴程序mov tl0,#0ffh jnb r,out; cpl p3.6;ring標(biāo)志位為 1 時(shí)候 p3.6 口不短取反使喇叭發(fā)出一定頻率的聲音out: reti t1int: mov th1,#3ch;計(jì)時(shí)程序mov tl1,#0b0h inc r0 reti end
18、15 5 系統(tǒng)仿真圖 5.1 選手搶答圖圖 5.2. 7seg倒計(jì)時(shí)顯示圖16 圖 5.3 系統(tǒng)仿真圖17 6 課程設(shè)計(jì)的總結(jié)與體會實(shí)驗(yàn)的確需要時(shí)間與堅(jiān)持,然后細(xì)心的觀察,不斷的改進(jìn),最終完成實(shí)驗(yàn)。同學(xué)和老師的指導(dǎo)也幫了許多, 記得在剛開始時(shí)我們遇到很多困難,并困擾我們很長的時(shí)間,最終在同學(xué)的幫助下跳出了這個(gè)困境,并最終實(shí)現(xiàn)了實(shí)驗(yàn)所要求的功能,可以說完整地做完一個(gè)題目是一件有挑戰(zhàn)的事,同時(shí)鍛煉了大家的能力, 而在做完之后又有一種成就感,如果有時(shí)間我們還應(yīng)花更多經(jīng)歷去獨(dú)立地完成更多課題,不斷提高。參考文獻(xiàn)1 張俊謨 .單片機(jī)中級教程原理與應(yīng)用 m. 北京:北京航空航天大學(xué)出版社,2006. 2 張克農(nóng) .數(shù)字電子技術(shù)基礎(chǔ)m. 北京:高等教育出版社,2003. 3 何立民
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鈑金噴粉知識培訓(xùn)課件
- 專業(yè)、職業(yè)、敬業(yè)的營銷團(tuán)隊(duì)
- 蓄勢待發(fā)2025年工作報(bào)告
- Unit 3 What would you like Part B(說課稿)-2024-2025學(xué)年人教PEP版英語五年級上冊
- 河南省部分學(xué)校2024-2025學(xué)年高一上學(xué)期12月月考試題 物理(含答案)
- 北京市海淀區(qū)2024-2025學(xué)年高二上學(xué)期期末考試歷史試題(含答案)
- 甘肅省金昌市(2024年-2025年小學(xué)六年級語文)統(tǒng)編版能力評測((上下)學(xué)期)試卷及答案
- 貴州盛華職業(yè)學(xué)院《公司法與商法(ACCA)》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州農(nóng)業(yè)職業(yè)學(xué)院《軟裝設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- Unit 2 Morals and Virtues Reading for Writing 說課稿-2023-2024學(xué)年高中英語人教版(2019)必修第三冊
- 遼寧盤錦浩業(yè)化工“1.15”泄漏爆炸著火事故警示教育
- 供應(yīng)鏈案例亞馬遜歐洲公司分銷戰(zhàn)略課件
- 石化行業(yè)八大高風(fēng)險(xiǎn)作業(yè)安全規(guī)范培訓(xùn)課件
- 村老支書追悼詞
- DB3302T 1131-2022企業(yè)法律顧問服務(wù)基本規(guī)范
- 2022年自愿性認(rèn)證活動獲證組織現(xiàn)場監(jiān)督檢查表、確認(rèn)書
- 中南大學(xué)年《高等數(shù)學(xué)上》期末考試試題及答案
- 付款通知確認(rèn)單
- 小龍蝦高密度養(yǎng)殖試驗(yàn)基地建設(shè)項(xiàng)目可行性研究報(bào)告
- 《橋梁工程計(jì)算書》word版
- 中考《紅星照耀中國》各篇章練習(xí)題及答案(1-12)
評論
0/150
提交評論