仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語言:C語言
設(shè)計(jì)編號(hào):S0047
1.主要功能:
本設(shè)計(jì)旨在設(shè)計(jì)一個(gè)基于51單片機(jī)的電子鐘proteus仿真設(shè)計(jì)
1.設(shè)置一個(gè)開機(jī)控制顯示按鍵、一個(gè)時(shí)/分切換按鍵、一個(gè)加1按鍵;
2.每到整點(diǎn)蜂鳴器鳴響
3.用6位一體數(shù)碼管顯示時(shí)、分、秒,開機(jī)顯示12:00:00。
給定單片機(jī)頻率為12MHz。設(shè)計(jì)硬件電路圖并用圖紙繪制電路圖,在keil中編寫代碼并在Proteus上做出仿真并撰寫課程設(shè)計(jì)說明書。
需注意仿真中51單片機(jī)芯片是通用的,AT89C51,AT89C52都是51單片機(jī)的具體型號(hào),內(nèi)核是兼容的。原理圖一樣的情況下,本設(shè)計(jì)無論stc還是at都兼容,引腳功能都是一樣的,程序也是一樣的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
以下為本設(shè)計(jì)資料展示圖:
2.仿真
開始仿真
打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。開始仿真后,數(shù)碼管沒有顯示,需要按下開機(jī)顯示按鍵。
按下開機(jī)顯示按鍵后,數(shù)碼管顯示時(shí)間12.00.00,剛好整點(diǎn),蜂鳴器提示2秒后待機(jī),時(shí)間逐秒遞增。
顯示時(shí)間的情況下,按下時(shí)分調(diào)整鍵進(jìn)入設(shè)置模式,時(shí)鐘閃爍表示當(dāng)前正在設(shè)置時(shí)鐘,按下加按鍵,時(shí)鐘+1,加到23后到0重新遞加。再按下時(shí)分調(diào)整鍵進(jìn)入分鐘設(shè)置模式,分鐘閃爍,再按下時(shí)分調(diào)整鍵進(jìn)出設(shè)置模式,數(shù)碼管正常顯示。
3. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合報(bào)告理解代碼含義。
主函數(shù)代碼
//主函數(shù)
void main()
{
uchar k=0;
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打開定時(shí)器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時(shí)器
while(1)
{
//按鍵檢測(cè)
if(!k1 &&(k!=1))//時(shí)分
{
k=1;
if(mode<2)
mode++; //設(shè)置模式變化
else
mode=0;
}
if(!k2 &&(k!=2))//加按鍵
{
k=2;
if(mode==1)//設(shè)置時(shí)間
{
if(shi<23)//時(shí)間+1
shi++;
else
shi=0;//時(shí)間從0開始加
}
if(mode==2)//設(shè)置分鐘
{
if(fen<59)//分鐘+1
fen++;
else
fen=0;//分鐘從0開始加
}
}
if(k1 && k2)
k=0;
if(!k3)//軟件復(fù)位,時(shí)間回復(fù)到默認(rèn)時(shí)間
{
shi=SETSHI;
fen=SETFEN;
miao=SETMIAO;
mode=0;
}
//顯示
if(mode==0)
{
P0=smgduan0[shi/10];smg1=0;delay(100);smg1=1;
//P0先給數(shù)據(jù),位選給0,選中數(shù)據(jù)位,數(shù)據(jù)穩(wěn)定后,位選給1取消位選
P0=smgduan1[shi%10];smg2=0;delay(100);smg2=1;
P0=smgduan0[fen/10];smg3=0;delay(100);smg3=1;
P0=smgduan1[fen%10];smg4=0;delay(100);smg4=1;
P0=smgduan0[miao/10];smg5=0;delay(100);smg5=1;
P0=smgduan0[miao%10];smg6=0;delay(100);smg6=1;
}
if(mode==1)
{
if(time<11)//做閃爍效果,如果time小于11,顯示時(shí)鐘,否則時(shí)鐘不顯示
{
P0=smgduan0[shi/10];smg1=0;delay(100);smg1=1;
P0=smgduan1[shi%10];smg2=0;delay(100);smg2=1;
}
P0=smgduan0[fen/10];smg3=0;delay(100);smg3=1;
P0=smgduan1[fen%10];smg4=0;delay(100);smg4=1;
P0=smgduan0[miao/10];smg5=0;delay(100);smg5=1;
P0=smgduan0[miao%10];smg6=0;delay(100);smg6=1;
}
if(mode==2)
{
P0=smgduan0[shi/10];smg1=0;delay(100);smg1=1;
P0=smgduan1[shi%10];smg2=0;delay(100);smg2=1;
if(time<11)//做閃爍效果,如果time小于11,顯示分鐘,否則分鐘不顯示
{
P0=smgduan0[fen/10];smg3=0;delay(100);smg3=1;
P0=smgduan1[fen%10];smg4=0;delay(100);smg4=1;
}
P0=smgduan0[miao/10];smg5=0;delay(100);smg5=1;
P0=smgduan0[miao%10];smg6=0;delay(100);smg6=1;
}
//整點(diǎn)
if(mode<3)
{
if((fen==0)&&(miao<1))//整點(diǎn)判斷
beep=0;
else
beep=1;
}
}
}
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
按鈕 3
電阻 1k 1
三極管 PNP 1
蜂鳴器 有源 1
數(shù)碼管 6位共陰 1
排阻 10k 1
電源部分
排針 2P 1
電容 0.1uf 2
電容 100uf 2
穩(wěn)壓器 7805 1
5. 設(shè)計(jì)報(bào)告
7000+字設(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
資料下載鏈接(可點(diǎn)擊):