基于51單片機(jī)籃球24秒倒計(jì)時(shí)設(shè)計(jì)( proteus仿真+程序+設(shè)計(jì)報(bào)告+原理圖+講解視頻)
仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語言:C語言
設(shè)計(jì)編號(hào):S0076
1. 主要功能:
基于51單片機(jī)的籃球24秒進(jìn)攻倒計(jì)時(shí)器設(shè)計(jì)
(1)用三位數(shù)碼管設(shè)計(jì)24秒計(jì)時(shí)器,顯示精度0.1秒。
(2)計(jì)時(shí)器為遞減計(jì)時(shí)模式,時(shí)間間隔為0.1秒。
(3)計(jì)時(shí)器可由按鍵控制,功能分別為:啟動(dòng)、暫停/連續(xù)、清零。
(4)當(dāng)按下清零鍵時(shí),計(jì)時(shí)器顯示00.0。當(dāng)按下啟動(dòng)鍵時(shí),計(jì)時(shí)器從24秒開始遞減計(jì)時(shí)工作。在計(jì)時(shí)器工作時(shí),按下暫停/連續(xù)鍵,計(jì)時(shí)器停止計(jì)時(shí),當(dāng)再按下暫停/連續(xù)鍵時(shí),計(jì)數(shù)器將繼續(xù)倒計(jì)時(shí)工作。
(5)當(dāng)計(jì)時(shí)器遞減計(jì)時(shí)到零,計(jì)時(shí)器顯示00.0,同時(shí)紅色警告燈閃爍,當(dāng)按下清零鍵時(shí),警告燈閃爍解除。
需注意仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號(hào),內(nèi)核是一樣的。相同的原理圖里,無論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
2. 講解視頻:
講解視頻包含仿真運(yùn)行講解和代碼講解
3. 仿真設(shè)計(jì)
打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。
開始仿真后數(shù)碼管顯示00.0
當(dāng)按下啟動(dòng)鍵時(shí),計(jì)時(shí)器從24秒開始遞減計(jì)時(shí)工作。在計(jì)時(shí)器工作時(shí),按下暫停/連續(xù)鍵,計(jì)時(shí)器停止計(jì)時(shí),當(dāng)再按下暫停/連續(xù)鍵時(shí),計(jì)數(shù)器將繼續(xù)倒計(jì)時(shí)工作。
當(dāng)計(jì)時(shí)器遞減計(jì)時(shí)到零,計(jì)時(shí)器顯示00.0,同時(shí)紅色警告燈閃爍,當(dāng)按下清零鍵時(shí),警告燈閃爍解除。
4. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合視頻理解代碼含義。
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^0;//按鈕
sbit k2=P3^1;
sbit k3=P3^2;
sbit led=P2^7;
sbit smg1=P2^0;//數(shù)碼管
sbit smg2=P2^1;
sbit smg3=P2^2;
uchar code smgduan0[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//顯示0~9,無小數(shù)點(diǎn)
uchar code smgduan1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//顯示0~9,有小數(shù)點(diǎn)
uchar time=0,mode=0;//定時(shí)+模式
uint miao=0;
uchar sec=0;
//延時(shí)
void delay(uint i)
{
while(i--);
}
// 主函數(shù)定義
void main()
{
// 定義一個(gè)變量k用于記錄按鍵狀態(tài)
uchar k = 0;
// 設(shè)置定時(shí)器0工作在模式1(16位定時(shí)器)
TMOD |= 0X01;
// 設(shè)置定時(shí)器0的高8位初始值,計(jì)算得出0.1s的計(jì)時(shí)周期
TH0 = 0X3C;
// 設(shè)置定時(shí)器0的低8位初始值
TL0 = 0XB0;
// 打開定時(shí)器0中斷允許位
ET0 = 1;
// 打開總中斷開關(guān)
EA = 1;
// 主循環(huán),不斷檢測(cè)按鍵和更新顯示
while(1)
{
// 顯示部分:三位數(shù)碼管分別顯示當(dāng)前秒數(shù)的百位、十位和個(gè)位及十分位
P0 = smgduan0[miao / 100]; // 顯示百位
smg1 = 0;
delay(50); // 延遲以實(shí)現(xiàn)分段顯示效果
smg1 = 1;
P0 = smgduan1[miao % 100 / 10]; // 顯示十位
smg2 = 0;
delay(50);
smg2 = 1;
P0 = smgduan0[miao % 10]; // 顯示個(gè)位
smg3 = 0;
delay(50);
smg3 = 1;
完整代碼見文章末壓縮包
// 按鍵處理部分
// 檢測(cè)啟動(dòng)鍵k1,當(dāng)按下且之前未按下時(shí),啟動(dòng)計(jì)時(shí)并設(shè)置miao為240表示24.0秒
if (!k1 && (k != 1))
{
k = 1;
TR0 = 1; // 啟動(dòng)定時(shí)器0
miao = 240;
}
// 檢測(cè)暫停/連續(xù)鍵k2,當(dāng)按下且之前未按下時(shí),切換定時(shí)器0的工作狀態(tài)
if (!k2 && (k != 2))
{
k = 2;
TR0 = !TR0; // 切換定時(shí)器工作狀態(tài)(啟動(dòng)或停止)
}
// 檢測(cè)清零鍵k3,當(dāng)按下且之前未按下時(shí),停止計(jì)時(shí)并將miao置零,同時(shí)點(diǎn)亮紅色警告燈led
if (!k3 && (k != 3))
{
k = 3;
TR0 = 0; // 關(guān)閉定時(shí)器
miao = 0;
led = 1; // 點(diǎn)亮警告燈
}
// 當(dāng)三個(gè)鍵都被釋放時(shí),重置按鍵狀態(tài)變量k
if (k1 && k2 && k3)
k = 0;
}
}
5. 設(shè)計(jì)報(bào)告
6417字設(shè)計(jì)報(bào)告,內(nèi)容包括硬件設(shè)計(jì)、軟件設(shè)計(jì)、軟硬件框圖、調(diào)試、結(jié)論等
本課程設(shè)計(jì)項(xiàng)目正是圍繞這一關(guān)鍵設(shè)備展開,目標(biāo)是通過運(yùn)用51系列單片機(jī)的強(qiáng)大功能,并結(jié)合Proteus仿真軟件進(jìn)行綜合實(shí)踐訓(xùn)練,旨在設(shè)計(jì)并實(shí)現(xiàn)一款高精度、功能完備的籃球24秒進(jìn)攻倒計(jì)時(shí)控制系統(tǒng)。此系統(tǒng)不僅要求能夠以0.1秒為單位準(zhǔn)確遞減計(jì)時(shí),還須具備靈活多樣的控制功能,如啟動(dòng)、暫停/連續(xù)運(yùn)行以及一鍵清零等操作,滿足實(shí)際比賽中對(duì)計(jì)時(shí)器靈活性和可靠性的嚴(yán)格需求。
學(xué)生在完成該項(xiàng)目的過程中,將全面接觸和掌握單片機(jī)系統(tǒng)的硬件設(shè)計(jì)原理,包括數(shù)碼管顯示模塊、按鍵輸入模塊和LED狀態(tài)指示模塊的設(shè)計(jì)及連接;同時(shí),在軟件層面,需要學(xué)習(xí)和編寫基于定時(shí)中斷機(jī)制的嵌入式程序代碼,確保計(jì)時(shí)過程的實(shí)時(shí)性和穩(wěn)定性。此外,通過Proteus仿真平臺(tái)進(jìn)行虛擬調(diào)試與驗(yàn)證,可以直觀地觀察到系統(tǒng)工作全過程,幫助學(xué)生更好地理解硬件與軟件之間的交互關(guān)系,加深對(duì)實(shí)時(shí)控制技術(shù)的理解與應(yīng)用能力。
6. 原理圖
原理圖使用AD繪制,可供實(shí)物參考,仿真不同于實(shí)物,需要調(diào)試經(jīng)驗(yàn)才能做出來。
Proteus仿真和實(shí)物作品的區(qū)別:
1.運(yùn)行環(huán)境:Proteus仿真是在計(jì)算機(jī)上運(yùn)行的,而實(shí)物則是在硬件電路板上運(yùn)行。
2.調(diào)試方式:在Proteus仿真中,可以方便地進(jìn)行單步調(diào)試和觀察變量值的變化,而在實(shí)物中則需要通過調(diào)試器或者串口輸出等方式進(jìn)行調(diào)試。
電路連接方式:在Proteus仿真中,可以通過軟件設(shè)置進(jìn)行電路連接的修改,而在實(shí)物中則需要通過硬件電路板和連接線進(jìn)行修改。
3.運(yùn)行速度:Proteus仿真通常比實(shí)物運(yùn)行速度快,因?yàn)榉抡媸腔谟?jì)算機(jī)運(yùn)行的,而實(shí)物則需要考慮電路板上的物理限制和器件的響應(yīng)時(shí)間等因素。
4.功能實(shí)現(xiàn):在Proteus仿真中,可以通過軟件設(shè)置實(shí)現(xiàn)不同的功能,而在實(shí)物中則需要根據(jù)電路設(shè)計(jì)和器件的性能進(jìn)行實(shí)現(xiàn)。
7. 設(shè)計(jì)資料內(nèi)容清單&&下載鏈接
資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。
0、常見使用問題及解決方法–必讀?。。?!
1、程序代碼注釋
2、proteus仿真
3、功能要求
4、軟硬件流程圖
5、開題報(bào)告
6、設(shè)計(jì)報(bào)告
7、原理圖
8、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡(jiǎn)易使用教程
單片機(jī)學(xué)習(xí)資料
相關(guān)數(shù)據(jù)手冊(cè)
答辯技巧
設(shè)計(jì)報(bào)告常用描述
鼠標(biāo)雙擊打開查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url
下載鏈接
https://docs.qq.com/doc/DS3VObWtKbHNBUlFm