【普中開發(fā)板】基于51單片機(jī)的四位搶答器設(shè)計(jì)( proteus仿真+程序+設(shè)計(jì)報(bào)告+講解視頻)
Proteus 仿真:Proteus 8.15(有低版本)
程序編譯器:keil 4/keil 5
編程語言:C語言
設(shè)計(jì)編號(hào):P19
1. 主要功能:
普中開發(fā)板實(shí)驗(yàn)設(shè)計(jì)
本設(shè)計(jì)旨在設(shè)計(jì)一個(gè)基于51單片機(jī)的四位競(jìng)賽搶答器設(shè)計(jì)。
以單片機(jī)為核心,設(shè)計(jì)一個(gè)4位競(jìng)賽搶答器:同時(shí)供4名選手或4個(gè)代表隊(duì)比賽,分別用4個(gè)按鈕1-4號(hào)表示。
1.設(shè)置一個(gè)系統(tǒng)清除和搶答控制開關(guān)S,開關(guān)由主持人控制。
2.搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應(yīng)的編號(hào),并在優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。
3.搶答器具有定時(shí)搶答功能,且一次搶答的時(shí)間由主持人設(shè)定(如20秒)。
4.當(dāng)主持人啟動(dòng)“開始”鍵后,定時(shí)器進(jìn)行減計(jì)時(shí)。
參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答的時(shí)間,選手對(duì)應(yīng)的LED燈點(diǎn)亮,并保持到主持人將系統(tǒng)清除為止。
5.如果在主持人啟動(dòng)"開始"鍵前搶答 ,搶答無效。且顯示器上會(huì)顯示搶答選手編號(hào),選手對(duì)應(yīng)的LED燈點(diǎn)亮。
6.如果定時(shí)時(shí)間已到,無人搶答,本次搶答無效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00。 (目前僅完全適配普中開發(fā)板A234,其他普中開發(fā)板型號(hào)可能需要做代碼修改或接線)
需注意本設(shè)計(jì)仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號(hào),內(nèi)核是一樣的。相同的原理圖里,無論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
2. 講解視頻:
講解視頻包含仿真運(yùn)行講解、實(shí)物運(yùn)行講解和代碼講解
3. 設(shè)計(jì)說明書(報(bào)告)
隨著科學(xué)技術(shù)的發(fā)展和普及,各種各樣的競(jìng)賽越來越多,其中搶答器的作用也越來越重要。本文設(shè)計(jì)出以AT89C51單片機(jī)為核心的8位搶答器,采用了數(shù)字顯示器直接指示,自動(dòng)鎖存顯示結(jié)果,并自動(dòng)復(fù)位的設(shè)計(jì)思想,它能根據(jù)不同的搶答輸入信號(hào),經(jīng)過單片機(jī)的控制處理并產(chǎn)生不同的與輸入信號(hào)相對(duì)應(yīng)的輸出信號(hào),最后通過LED數(shù)碼管顯示相應(yīng)的路數(shù),充分利用了單片機(jī)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、功能強(qiáng)大、可靠性好、實(shí)用性強(qiáng)的特點(diǎn)。
4. 仿真
打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。
違規(guī)搶答
成功搶答
5. 實(shí)物燒錄和現(xiàn)象
軟件準(zhǔn)備:
第一次使用務(wù)必先安裝CH340驅(qū)動(dòng)。
雙擊打開 STC-ISP.exe。
下載步驟:
0.板子先上電,接電源線到電腦USB口,先不上電,板子無燈光。
1.選擇選擇單片機(jī)型號(hào)
2.選擇下載器的串口
3.打開編譯生成的 HEX 文件
4.點(diǎn)擊下載,單片機(jī)板子電源鍵按下接通電源,等待下載完成提示
6. 程序代碼
使用keil4或者keil5編譯,代碼有注釋。
核心代碼:
void main()
{
TMOD = 0X12; //初始化定時(shí)器
TH0 = 6;
TL0 = 6;
TH1 = (65536-50000)/256; //50ms計(jì)時(shí)初值
TL1 =(65536-50000)%256;
EA = 1; //開總中斷
ET0 = 1; //開T0中斷
ET1 = 1; //開T1中斷
temp_fen=fen=10; //設(shè)置搶答倒計(jì)時(shí)
while(1)
{
ChangeFor();
KeyScanf();
if((start== 1)&&(flag == 0)) //如果開始鍵動(dòng)作,且處于空閑狀態(tài)
{
flag = 1; //設(shè)置運(yùn)行標(biāo)志
fen=temp_fen;
TR1 = 1; //啟動(dòng)定時(shí)器
}
if((add==1)&&(flag==0))//如果時(shí)間+鍵動(dòng)作,且處于空閑狀態(tài)
{
add=0;
key_flick++;
if((key_flick%25)==0){//消抖
key_flick=0;
temp_fen++; //時(shí)間+1
fen=temp_fen;
}
}
if((dec==1)&&(flag==0))//如果時(shí)間-鍵動(dòng)作,且處于空閑狀態(tài)
{
dec=0;
key_flick++;
if((key_flick%25)==0){//消抖
key_flick=0;
temp_fen--; //時(shí)間-1
fen=temp_fen;
}
}
if((start==0)&&(flag==0))
{
if((key != 0)) //如果鍵值有效
{
xianshou = key; //顯示搶答鍵
flag = 2;
TR1 = 0; //關(guān)閉T0
flaga = 8000; //報(bào)警值,蜂鳴器響2秒
TR0 = 1; //啟動(dòng)T0
}
}
while(flag == 1) //如果運(yùn)行標(biāo)志有效,進(jìn)入運(yùn)行狀態(tài)
{
ChangeFor(); //顯示
KeyScanf(); //掃描搶答鍵
if((key != 0)) //如果鍵值有效
{
xianshou = key; //顯示搶答鍵
flag = 2;
TR1 = 0; //關(guān)閉T0
flaga = 8000; //報(bào)警值,蜂鳴器響2秒
TR0 = 0; //啟動(dòng)T0
}
}
if((end == 1)&&(flag==2)) //運(yùn)行結(jié)束后復(fù)位鍵按下
{
flag = 0; //回到初始狀態(tài)
xianshou = 0; //變量歸零
fen = 0;
TR0 = 0;
TR1 = 0;
start=0;
key=0;
end=0;
}
}
}
7. 設(shè)計(jì)資料內(nèi)容清單&&下載鏈接
資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。
0、常見使用問題及解決方法–必讀!?。。?/p>
1.程序代碼
2.仿真
3.開題報(bào)告
4.功能要求
5.設(shè)計(jì)報(bào)告
6.講解視頻
7.燒錄工具
Altium Designer 安裝破解
KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡(jiǎn)易使用教程
單片機(jī)學(xué)習(xí)資料
普中-2&普中-3&普中-4開發(fā)板原理圖.pdf
相關(guān)數(shù)據(jù)手冊(cè)
答辯技巧
設(shè)計(jì)報(bào)告常用描述
鼠標(biāo)雙擊打開查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url
資料下載鏈接(可點(diǎn)擊):
https://docs.qq.com/doc/DS2pPenNRaHB6SlR1