仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語言:C語言
設(shè)計(jì)編號(hào):S0046
1.主要功能:
本設(shè)計(jì)旨在設(shè)計(jì)一個(gè)基于51單片機(jī)的多功能數(shù)字時(shí)鐘鬧鐘proteus仿真設(shè)計(jì),可以顯示時(shí)、分、秒,并且可以設(shè)置時(shí)間和鬧鐘。
1、采用單片機(jī)內(nèi)部定時(shí)器實(shí)現(xiàn)計(jì)時(shí);
2、采用八位數(shù)碼管顯示時(shí)分秒;
3、可對(duì)時(shí)分秒分別進(jìn)行加減設(shè)置,設(shè)置時(shí)對(duì)應(yīng)數(shù)碼管閃爍;
4、可設(shè)置鬧鐘,并且到時(shí)間后蜂鳴器每隔1s響一次,持續(xù)6s;
5、鬧鐘鳴響時(shí),可手動(dòng)消除鬧鐘。
需注意仿真中51單片機(jī)芯片是通用的,AT89C51,AT89C52都是51單片機(jī)的具體型號(hào),內(nèi)核是兼容的。無論stc還是at都一樣,引腳功能都是一樣的,程序也是一樣的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
以下為本設(shè)計(jì)資料展示圖:
2.仿真
開始仿真
打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。開始仿真后數(shù)碼管顯示時(shí)間00:00:00。時(shí)間逐秒遞增。
顯示時(shí)間的情況下,按下設(shè)置鍵進(jìn)入設(shè)置模式,時(shí)鐘閃爍表示當(dāng)前正在設(shè)置時(shí)鐘,再按下設(shè)置鍵進(jìn)入分鐘設(shè)置模式,分鐘閃爍,再按下設(shè)置鍵進(jìn)入秒鐘設(shè)置模式,秒鐘閃爍。設(shè)置完秒鐘再按設(shè)置退出設(shè)置模式,數(shù)碼管正常顯示。
按下功能切換按鍵顯示鬧鐘時(shí)間。鬧鐘時(shí)間顯示下按下設(shè)置鍵進(jìn)入鬧鐘設(shè)置模式,時(shí)鐘閃爍表示當(dāng)前正在設(shè)置鬧鐘時(shí)鐘,再按下設(shè)置鍵進(jìn)入鬧鐘分鐘設(shè)置模式,鬧鐘分鐘閃爍,再按下設(shè)置鍵進(jìn)入鬧鐘秒鐘設(shè)置模式,鬧鐘秒鐘閃爍。設(shè)置完秒鐘再按設(shè)置退出設(shè)置模式,數(shù)碼管正常顯示鬧鐘時(shí)間。
鬧鐘時(shí)間到,蜂鳴器鬧鈴,蜂鳴器每隔1s響一次,持續(xù)6s,可以通過按鍵關(guān)停鬧鐘。
3. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合報(bào)告理解代碼含義。
/*******************************************************************************
* 函 數(shù) 名 : main
* 函數(shù)功能 : 主函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
Timer0Init(); //定時(shí)器0初始化
xian1[0]=shi/10;//計(jì)算到顯存 時(shí)鐘的十位
xian1[1]=shi%10;// 時(shí)鐘的個(gè)位
xian1[3]=fen/10;// 分鐘的十位
xian1[4]=fen%10;// 分鐘的個(gè)位
xian1[6]=miao/10; // 秒鐘的十位
xian1[7]=miao%10; // 秒鐘的個(gè)位
xian2[0]=shi0/10;
xian2[1]=shi0%10;
xian2[3]=fen0/10;
xian2[4]=fen0%10;
xian2[6]=miao0/10;
xian2[7]=miao0%10;
while(1)
{
if(mode)
display2();//顯示鬧鐘
else
display1();//顯示時(shí)間
if(!key1 &&(cixu==0)) //功能切換
{
mode=!mode;
while(!key1);
}
if(!key2)//選擇
{
if(cixu<3)
cixu++;
else
cixu=0;
while(!key2);
}
if(!key3) //加
{
if(mode==0)
{
switch(cixu)
{
case 1:
if(shi<23)
shi++; //時(shí)鐘+
break;
case 2:
if(fen<59)
fen++; //分鐘+
break;
case 3:
if(miao<59)
miao++; //秒鐘+
}
}
else
{
switch(cixu)
{
case 1:
if(shi0<23)
shi0++; //鬧鐘時(shí)鐘+
break;
case 2:
if(fen<59)
fen0++; //鬧鐘分鐘+
break;
case 3:
if(miao0<59)
miao0++; //秒鐘分鐘+
}
}
xian1[0]=shi/10;//計(jì)算到顯存
xian1[1]=shi%10;
xian1[3]=fen/10;
xian1[4]=fen%10;
xian1[6]=miao/10;
xian1[7]=miao%10;
xian2[0]=shi0/10;
xian2[1]=shi0%10;
xian2[3]=fen0/10;
xian2[4]=fen0%10;
xian2[6]=miao0/10;
xian2[7]=miao0%10;
while(!key3);
}
if(!key4) //減
{
if(mode==0)
{
switch(cixu)
{
case 1:
if(shi>0)
shi--;
break;
case 2:
if(fen>0)
fen--;
break;
case 3:
if(miao>0)
miao--;
}
}
else
{
switch(cixu)
{
case 1:
if(shi0>0)
shi0--;
break;
case 2:
if(fen0>0)
fen0--;
break;
case 3:
if(miao0>0)
miao0--;
}
}
xian1[0]=shi/10;//計(jì)算到顯存
xian1[1]=shi%10;
xian1[3]=fen/10;
xian1[4]=fen%10;
xian1[6]=miao/10;
xian1[7]=miao%10;
xian2[0]=shi0/10;
xian2[1]=shi0%10;
xian2[3]=fen0/10;
xian2[4]=fen0%10;
xian2[6]=miao0/10;
xian2[7]=miao0%10;
while(!key4);
}
if(!key5) //停止響鈴
{
beep_flag=0;
beep=1;
while(!key5);
}
if((shi==shi0)&&(fen==fen0)&&(miao==miao0))//判斷響鈴
{
beep_flag=1;
beep=0;
}
}
}
4. 原理圖
原理圖使用AD繪制,可供實(shí)物參考,仿真不同于實(shí)物,經(jīng)驗(yàn)不足不要輕易搞實(shí)物。
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)。
元器件清單
元件 型號(hào) 數(shù)量
單片機(jī) AT89C51 1
電容 10uf 1
電容 30pf 2
晶振 12MHZ 1
電阻 10k 1
按鈕 6
數(shù)碼管 8位共陰 1
電阻 1k 1
三極管 PNP 1
蜂鳴器 有源 1
排阻 10k 1
電源部分
排針 2P 1
電容 0.1uf 2
電容 100uf 2
穩(wěn)壓器 7805 1
5. 設(shè)計(jì)報(bào)告
6600+字設(shè)計(jì)報(bào)告,內(nèi)容包含設(shè)計(jì)框圖,引言,硬件設(shè)計(jì)介紹,軟件設(shè)計(jì)介紹,仿真調(diào)試,總結(jié)和參考文獻(xiàn)。
6. 設(shè)計(jì)資料內(nèi)容清單&&下載鏈接
資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。
0、常見使用問題及解決方法–必讀?。。?!
1、仿真圖
2、程序源碼
3、開題報(bào)告
4、原理圖
5、功能要求
6、元器件清單
7、設(shè)計(jì)報(bào)告
8、軟硬件流程框圖
9、講解視頻
Altium Designer 軟件資料
KEIL軟件資料
Proteus軟件資料
單片機(jī)學(xué)習(xí)資料
答辯技巧
設(shè)計(jì)報(bào)告常用描述
鼠標(biāo)雙擊打開查找更多51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url