久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13653|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

單片機c語言8位競賽搶答器課程設(shè)計報告

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:213168 發(fā)表于 2017-6-21 01:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
課程設(shè)計報告

課程名稱:單片機課程設(shè)計

報告題目:8位競賽搶答器的設(shè)計
學(xué)生姓名:
所在學(xué)院:信息科學(xué)與工程學(xué)院
專業(yè)班級:
學(xué)生學(xué)號:
指導(dǎo)教師:


2013 年12月25日
課程設(shè)計任務(wù)書
  
報告題目
  
8位競賽搶答器的設(shè)計
完成時間
12.15-12.29
學(xué)生姓名


專業(yè)班級


指導(dǎo)教師


職稱
講師
總體設(shè)計要求和技術(shù)要點
設(shè)計一個數(shù)字式電容測量儀電路,要求如下:
  
    以單片機為核心,設(shè)計一個8位競賽搶答器:同時供8名選手或8個代表隊比賽,分別用8個按鈕S0~S7表示。
  
    設(shè)置一個系統(tǒng)清除和搶答控制開關(guān)S,開關(guān)由主持人控制。
  
    搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應(yīng)的編號,并在優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。當主持人啟動“開始”鍵后,定時器進行減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間為0.5s左右。
  
    參賽選手在設(shè)定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。
  
如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00
工作內(nèi)容及時間進度安排
第17周:
  
周一、周二:選題,明確任務(wù),指導(dǎo)教師對課題進行講解,資料檢索
  
周三:硬件設(shè)計,硬件仿真
  
周四、周五:軟件設(shè)計
  
第18周:
  
周一:綜合調(diào)試
  
周二、周三、周四:書寫課程設(shè)計報告
  
周五:答辯評分
課程設(shè)計成果
1.與設(shè)計內(nèi)容對應(yīng)的軟件程序
  
2.課程設(shè)計總結(jié)報告








摘要
搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識競賽場合。但搶答器的使用頻率較低,且有的要么制作復(fù)雜,要么可靠性低。作為一個單位,如果專門購一臺搶答器雖然在經(jīng)濟上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展,因此設(shè)計了本搶答器。
本設(shè)計是以八路搶答為基本理念。考慮到依需設(shè)定限時回答的功能,利用AT89C52單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。用開關(guān)做鍵盤輸出,揚聲器發(fā)生提示。同時系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可在1-30s設(shè)定;可以顯示是哪位選手有效搶答,正確按鍵后有5s的音樂提示(即揚聲器發(fā)出響聲);搶答時間和回答問題時間倒記時顯示,滿時后系統(tǒng)計時自動復(fù)位及主控強制復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。

關(guān)鍵詞:89c52;電路;顯示;按鍵


目錄
一、概述…………………………………………………………………………1
二、方案設(shè)計………………………………………………………………1
三、硬件電路設(shè)計…………………………………………………………2
1、搶答器的電路框圖…………………………………………………………2
2、單元電路 ………………………………………………………………………………3
   2.1、搶答器電路………………………………………………………………………3
  2.2、時序控制電路……………………………………………………………………3
2.3、復(fù)位電路…………………………………………………………………………3                                 
    3、時鐘震蕩電路………………………………………………………………3
4、報警電路…………………………………………………………………3
四、軟件設(shè)計………………………………………………………………4
1、系統(tǒng)主程序…………………………………………………………4
2、系統(tǒng)程序…………………………………………………………5
五、結(jié)論與心得………………………………………………………………………10
六、參考文獻……………………………………………………………………10


一、概述
本實驗電路由搶答電路、譯碼顯示電路、主持人控制電路、定時電路、報警電路組成。通過復(fù)位按鍵FW,電路進入準備就緒狀態(tài)。將搶答時間設(shè)定在30S,然后按下開始鍵開始搶答。,在電路中“S0-S7”為8路搶答器的8個按鍵,當有鍵按下,程序鎖定信號,從P2口輸出搶答者號碼的七段碼值,送到數(shù)碼管顯示,并封鎖按鍵,保持剛才按鍵按下時刻的時間,禁止其他人按鍵的輸入,從而實現(xiàn)了搶答的功能。當設(shè)定的搶答時間結(jié)束,仍然沒有搶答鍵被按下,則產(chǎn)生已經(jīng)超時的報警信號,結(jié)束搶答。當要進行下一次的搶答時,首先按一下復(fù)位按鍵,電路復(fù)位。
該設(shè)計是以MCS51為基礎(chǔ),結(jié)合單片機匯編語言知識,設(shè)計而成的8位競賽搶答器。在偉福試驗箱上實現(xiàn)仿真。
主持人按下“開始搶答鍵”既單脈沖鍵后,喇叭響0.5秒給出提示信號,并立刻進入搶答倒計時(預(yù)設(shè)30秒搶答時間)此時,數(shù)碼顯示管上顯示倒計時時間:有選手搶答,停止計時,八段數(shù)碼顯示搶答時間和選手號;無選手搶答,倒計時30秒后,顯示00。然后選手等待主持人按下按鈕開始新一輪搶答。
注意:                             
(1)由于設(shè)計的局限性,如果在無人搶答期間,30秒還未到,主持人不能按下重新下一輪搶答按鈕。
(2)由于試驗箱上按鈕數(shù)量有限,故選用開關(guān)代替按鈕,供8位選手搶答使用。鑒于開關(guān)與按鈕動作過程的差異,所以每次當選手搶答,撥下開關(guān)時必須將開關(guān)復(fù)位。
(3)當系統(tǒng)出現(xiàn)錯誤的時候,停止操作,重新編譯開始。

二、方案設(shè)計
方案:該系統(tǒng)采用51系列單片機AT89C51作為控制核心,該系統(tǒng)可以完成運算控制、信號識別以及顯示功能的實現(xiàn)。由于用了單片機,使其技術(shù)比較成熟,應(yīng)用起來方便、簡單并且單片機周圍的輔助電路也比較少,便于控制和實現(xiàn)。整個系統(tǒng)具有極其靈活的可編程性,能方便地對系統(tǒng)進行功能的擴張和更改。MCS-51單片機特點如下:
    <1>可靠性好:單片機按照工業(yè)控制要求設(shè)計,抵抗工業(yè)噪聲干擾優(yōu)于一般的CPU,程序指令和數(shù)據(jù)都可以寫在ROM里,許多信號通道都在同一芯片,因此可靠性高,易擴充。
<2>單片機有一般電腦所必須的器件。
<3> 控制功能強:單片機指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。

三、硬件電路設(shè)計1、搶答器的電路框圖
    如圖3.1.1所示為電路框圖。其工作原理為:接通電源后,主持人按下開關(guān)即為“開始”狀態(tài),宣布“開始”搶答器工作。編號顯示器滅燈,定時器顯示設(shè)定時間。定時器倒計時,揚聲器給出5s聲響提示。選手在定時時間內(nèi)搶答時,搶答器完成:優(yōu)先判斷、編號鎖存、編號顯示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作"開始、停止"狀態(tài)按鍵。
                     


圖3.1.1電路框圖                 
2、單元電路
3.2.1、搶答器電路
該電路完成兩個功能:一是判斷出選手按鍵的先后,并鎖存優(yōu)先搶答者的編號,同時譯碼顯示電路顯示編號;二是禁止其他選手按鍵操作無效。如有再次搶答需由主持人將S開關(guān)重新置,“清除”然后再進行下一次搶答。
3.2.2、時序控制電路
時序控制電路是搶答器設(shè)計的關(guān)鍵,它要完成以下功能:
a.主持人將控制開關(guān)撥到"開始"位置時,揚聲器發(fā)聲,搶答電路和定時電路進人正常搶答工作狀態(tài)。                      
b.當參賽選手按動搶答鍵時,揚聲器發(fā)聲,搶答電路和定時電路停止工作。
3.2.3、復(fù)位電路設(shè)計
外部中斷和內(nèi)部中斷并存,單片機硬件復(fù)位端,只要持續(xù)4個機器周期的高電平即可實現(xiàn)復(fù)位,硬件復(fù)位后的各狀態(tài)可知寄存器以及存儲器的值都恢復(fù)到了初始值,因為本設(shè)計中功能中有倒計時時間的記憶功能,所以不能對單片機進行硬件復(fù)位,只能用軟件復(fù)位,軟件復(fù)位實際上就是當程序執(zhí)行完之后,將程序通過一條跳轉(zhuǎn)指令讓它完成復(fù)位。
3、時鐘震蕩電路
時鐘震蕩電路單片機必須在89C52驅(qū)動下才能工作,在單片機內(nèi)部有一個時鐘震蕩電路,只需要外接一個振蕩器就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元。
4、報警電路
報警電路用于報警,當遇到報警信號時,發(fā)出警報。8952動喇叭的信號為各種頻率的脈沖。因此,最簡單的喇叭驅(qū)動方式就是利用達林頓晶體管,或者以兩個常用的小晶體管連接成達林頓架勢。在右圖中電阻R為限流電阻,在此利用晶體管的高電流增益,以達到電路快速飽和的目的。不過,如果要由P0輸出到此電路,還需要連接一個10K的上拉電阻。
file:///C:/Users/83570/AppData/Local/Temp/OICE_78C48033-D549-423C-91D1-C72951558F6E.0/msohtmlclip1/01/clip_image003.jpg
圖3硬件電路圖

四、軟件設(shè)計1、系統(tǒng)主程序
為了能夠達到搶答的公平、公正、合理,應(yīng)該在主持人發(fā)布搶答命令之前必須先設(shè)定搶答的時間,因而在編開始搶答前的程序得先編寫設(shè)定時間的程序,當時間設(shè)好了之后,主持人發(fā)布搶答命令按下s1按鍵,程序開始打開定時中斷開始倒計時,然后調(diào)用鍵盤掃描子程序,編寫鍵盤掃描程序。當在掃描到有人按下了答題鍵,馬上關(guān)閉T0、調(diào)用顯示程序、封鎖鍵盤。
以單片機為核心,設(shè)計一個8位競賽搶答器:同時供8名選手或8個代表隊比賽,分別用8個按鈕S0~S7表示。
   設(shè)置一個系統(tǒng)清除和搶答控制開關(guān)S,開關(guān)由主持人控制。
   搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應(yīng)的編號,并在優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。當主持人啟動“開始”鍵后,定時器進行減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間為0.5s左右。
   參賽選手在設(shè)定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。
如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。

file:///C:/Users/83570/AppData/Local/Temp/OICE_78C48033-D549-423C-91D1-C72951558F6E.0/msohtmlclip1/01/clip_image004.gif
圖4.1主程序方框圖
2、系統(tǒng)程序
#include<reg52.h>
#defineuint unsigned int
#defineuchar  unsigned char
sbits1=P3^0;
sbitwe=P3^6;
ucharh[]={0xe0,0xd0,0xb0,0x70};         
uchar code table[]
={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
uchar num,count;
uchara=0,c=0,t,bb=0,t1;
voiddelay(uint z)
{  
     uint x,y;
     for(x=110;x>0;x--)
       for(y=z;y>0;y--);   
}
voidwrite_sx()
{  
   P2=0xdf;
   P0=0x08;
   P2=0x00;
   P0=0xff;
   P2=0xff;
   P0=table[t1];
   P2=0x00;
   P0=0x00;
   delay(5);                    
   P2=0xdf;
   P0=0x40;
   P2=0x00;
   P0=0xff;
   P2=0xff;
   P0=table[(t/10)%10];
   P2=0x00;
   P0=0x00;
   delay(5);      
   P2=0xdf;
   P0=0x80;
   P2=0x00;
   P0=0xff;
   P2=0xff;
   P0=table[t%10];
   P2=0x00;
   P0=0x00;
   delay(5);  
}

voidinit()
{
   P2=0xbf;P0=0xbf;
   TMOD=0x01;
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   EA=0;
   ET0=1;
   TR0=1;
}

voidkeyscan()
{   we=0;
    if(s1==0)
    {
        delay(5);
        if(s1==0)
        {  
            while(!s1);
            EA=1;
           P2=0xbf;P0=0xff;
           t=30;
           a=1;
          t1=10;
           c=0;
       }
     }
         if(c==0)
        {
            P3=0xfd;
            num=P3;
            num=num&0xf0;
            if(num!=0xf0)
             {
               delay(5);
               if(num!=0xf0)
               {
                   while(P3!=0xfd);
                    c=1;
                     EA=0;
                     if(num==h[3])
                      t1=1;
                     if(num==h[2])
                      t1=2;
                     if(num==h[1])
                      t1=3;
                     if(num==h[0])
                      t1=4;
               }
             }

                P3=0xfb;
               num=P3;
               num=num&0xf0;
               if(num!=0xf0)
               {
                   delay(5);
                   if(num!=0xf0)
                   {
                       while(P3!=0xfb);
                      c=1;
                      EA=0;
                      if(num==h[3])
                        t1=5;
                      if(num==h[2])
                        t1=6;
                      if(num==h[1])
                        t1=7;
                       if(num==h[0])
                        t1=8;
                   }
                }      
        }
   }
voidmain()
{   
    init();
    while(1)
    {
     keyscan();
     if((a==1)&&((t>0)&&(t<=30)))
      {
       write_sx();
      }     
      if(t==0)
      {
        EA=0;
        t=0;
        t1=10;
      }
    }
}
voidtimer0() interrupt 1
{
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
count++;
     if(count==10)
     {
       P2=0xbf;P0=0xbf;
     }
    if(count==20)
{  
count=0;
        t--;
    }
}
五、結(jié)論與心得
通過這次課程設(shè)計,我深刻的認識到自己在許多方面的不足。通過編程,我學(xué)會了如何獨立的寫出程序,提高了自己的分析解決問題的能力,并且使自己所學(xué)的知識與實踐相結(jié)合,應(yīng)用到實踐當中。
在剛開始的時候無從下手,感覺有些茫然,但同學(xué)和老師給予我很大的幫助,每當設(shè)計過程中遇到困難時,老師都會細心的教導(dǎo)我,耐心的為我講解,同學(xué)也熱心幫助我,為我排憂解難,讓我深深的體會到了團隊的力量和重要性。
通過設(shè)計,我也學(xué)到了很多書本上沒有的知識。在設(shè)計當中遇到了很多問題,但通過查找資料,克服了這些問題,提高了自己在實際當中解決問題的能力。
在此我感謝學(xué)校給了我們的這次實踐機會。在這里為奔波勞累在這次設(shè)計中老師便是感謝,老師們不辭勞苦,不在乎身體的不適認真為我們講解并為我們知道實際操作過程中的問題。讓我們一步一步有序完成此次課程設(shè)計。在這里對我們的廖老師、曹老師說聲謝謝,謝謝你們,你們辛苦了!也祝你們身體健康工作順利
六、參考文獻
[1] 張毅剛.《單片機原理及應(yīng)用》.高等教育出版社,2009
[2] 譚浩強.《C程序設(shè)計教程》.清華大學(xué)出版社
[3] 周興華.《單片機C程序設(shè)計》.北京航空航天大學(xué)出版社
  
教師評語及設(shè)計成績
  
教師評語:
  
  


  
  
課程設(shè)計成績:
  
  
  
  
  
指導(dǎo)教師:(簽名)
  
日期:年月日

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:555451 發(fā)表于 2019-6-9 09:09 | 只看該作者
你用的是AT89C52不是C51,寫錯了
回復(fù)

使用道具 舉報

板凳
ID:575686 發(fā)表于 2019-7-1 15:19 | 只看該作者
圖看不了啊,有沒有仿真圖能參考一下
回復(fù)

使用道具 舉報

地板
ID:854097 發(fā)表于 2020-12-9 20:49 | 只看該作者
本帖最后由 單片機110 于 2020-12-9 22:38 編輯

推薦一個大神寫的,很不錯東西很全
原理圖
程序均有

2樓:http://www.zg4o1577.cn/bbs/dpj-124950-1.html

回復(fù)

使用道具 舉報

5#
ID:854097 發(fā)表于 2020-12-9 20:51 | 只看該作者
可以參考一下

原理圖.7z

49.25 KB, 下載次數(shù): 3, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩免费在线 | 韩国精品一区 | 国产亚洲精品精品国产亚洲综合 | 国产亚洲欧美日韩精品一区二区三区 | 国产精品二区三区 | 夜夜夜夜夜夜曰天天天 | 久久免费精品视频 | 99精品视频一区二区三区 | 精品亚洲一区二区三区四区五区 | 国产精品久久久久无码av | 欧美午夜精品理论片a级按摩 | 天天操夜夜操免费视频 | 欧美自拍网站 | 午夜影院网站 | 香蕉国产在线视频 | 精品一二区 | 中文字幕精品一区二区三区精品 | 亚洲国产一区二区三区在线观看 | 欧美区日韩区 | 亚洲国产免费 | 久久久久久国产精品免费 | 精品久久99 | 国产精品免费视频一区 | 国产精品一区二区三区在线 | 91精品国产综合久久久久久漫画 | 一区二区三区国产 | 久久综合一区二区三区 | 久久四虎 | 精品成人免费一区二区在线播放 | 久久精品免费一区二区 | 在线播放一区 | 欧美日韩综合一区 | 成人网av| 九色网址 | 色爱综合网 | 国产精品免费在线 | 久久成人国产精品 | 国产视频久久久 | 国产精品波多野结衣 | 国产成人99久久亚洲综合精品 | 亚洲精品456 |