仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (27.07 KB, 下載次數: 40)
下載附件
2018-12-14 17:49 上傳
0.png (10.28 KB, 下載次數: 30)
下載附件
2018-12-14 17:50 上傳
目錄
第1章 緒 論
1.1 設計背景與意義
第2章 課程設計目的和要求
2.1 課程設計目的
2.2 課程設計要求
第3章 多功能秒表系統概述
3.1 系統的主要功能
3.2 AT89C51的功能及簡介
第4章 多功能秒表電路設計
4.1 元件清單
4.2 復位電路的設計
4.3 振蕩電路的設計
4.4 按鍵電路的設計
4.5 顯示電路的設計
4.6 報警電路的設計
4.7 總體電路設計圖
第5章 總 結
參考文獻
第1章 緒 論
1.1 設計背景與意義
單片機(Microcontrollers)是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。
當今時代是一個新技術層出不窮的時代,在電子領域尤其是自動化智能控制領域,傳統的分立元件或數字邏輯電路構成的控制系統,正以前所未見的速度被單片機智能控制系統所取代。單片機具有體積小、功能強、成本低、應用面廣等優點,可以說,智能控制與自動控制的核心就是單片機。課程設計是根據某一課題技術指標或邏輯功能的要求,進行電路的獨立設計,實驗安裝和調試。根據這次課程設計的內容和要求,我首先進行了整體方案的構思,通過在圖書館和上網查閱資料,并分析和比較,選取了一種簡單而且可行性高的方案。此方案主要由延時電路、定時計數電路、主控電路、程序譯碼驅動電路等組成。通過查閱有關書籍、上網和綜合已學機以及電子技術的知識,并考慮到電路的工作穩定性,設計成本低,電路簡單,功耗低等因素。
第4章 多功能秒表電路設計4.1 元件清單表4-1
4.2 復位電路的設計單片機的第9腳RST為硬件復位端,只要將該端持續4個機器周期也(就是4微秒)的高電平即可實現復位,復位后單片機的各狀態都恢復到初始化狀態,其電路圖如圖4-2所示,當要對晶片重置時,只要按開關就能完成LED和開關的重置。復位是單片機的初始化操作,其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執行程序。單片機的RST管腳為主機提供了一個外部復位信號輸入口。復位信號是高電平有效,高電平有效的持續時間為2個機器周期以上。單片機的復位方式可由手動復位完成。

圖4-1復位電路
充電充滿的時候流過的電流是0,所以接的是低電平,處于正常的狀態,當按鍵按下的時候,電容被短路,電阻被接入到電路當中,5V電壓直接接到電阻R1上面,所以電阻R1上的壓降就是5V,所以第九腳的電壓為電源電壓5V,實現按鍵復位,電容起的作用就是開機上電復位。
4.3 振蕩電路的設計8051內部有時鐘電路,只需外部接石英晶體和微調電容即可,通常選用的是6MHz、12MHZ、11.0592MHz。 為多功能秒表循環系統提供穩定頻率波在由多片單片機組成的系統中,為了各單片機之間時鐘信號的同步,引入唯一的外部脈沖信號作為各單片機的振蕩脈沖。這時外部的脈沖信號是經單片機89C51的XTAL2引腳注入的;在MCS-51單片機片內有一個高增益的反相放大器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,在芯片的外部通過這兩個引腳跨接晶體振蕩器和微調電容C1、C2形成反饋電路,可構成穩定的自激振蕩器,振蕩頻率范圍通常是1.2~12MHz。晶體振蕩頻率高,則系統的時鐘頻率也高,單片機的運行速度也就快。 然而一般選用石英晶體振蕩器。石英晶振的頻率非常穩定,非常適合用在這個地方,圖上4-1電路晶振在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調。C1,C2的值為30μF。 圖中選用的是12MHz的晶振,而它的機器周期是1微秒。

圖4-2 復位電路
4.4 按鍵電路的設計按鍵電路由六個相同按鍵組成,分別作為開始,暫停,清零,倒計時,十位加一,個位加一,電路如下圖:

圖4-3 按鍵電路 4.5顯示電路的設計顯示電路使用了一個兩位的共陽極LED數碼管和1k歐排阻構成。數碼管的位由p2.1和p2.0口決定。如下圖: 
圖4-4 顯示電路 4.6 報警電路的設計報警電路由小揚聲器組成,計時完成后,利用顯示子程序延時約2毫秒求反,產生250Hz的方波,從而揚聲器發聲,該電路如下:

圖4-5 報警電路 4.7總體電路設計圖

圖4-6 總體電路設計圖 4.7 仿真及調試

圖4-6 總體電路仿真圖
第5章 總 結
起初,剛拿到這個設計任務時,一頭霧水,但是通過翻閱相關書籍和參考資料以及對應的秒表設計程序,終于有了一些自己的思路。通過幾天的反反復復設計和程序編輯,幾十次的仿真和調試,終于在答辯之前的前一天完成。此次課程設計我懂得了看花容易繡花難,理論聯系實際的重要性,只有自己動手動腦,認真完成實踐環節,才能加深自己對理論知識的理解。同時,在課設的過程中,也加深了自己對軟件的熟練程度,查閱資料的能力。 同時,也要感謝同組同學的共同努力,通過互相發問,互相提出自己的設計方法,使得我們組同學的設計方案得到了優化,加深互相和合作的能力。也感謝老師在課設過程中給出的指導和建議。
附錄一: 程序框圖

- #include<reg51.h>
- #include "string.h"
- #include "stdio.h"
- #include "math.h"
- #include <INTRINS.H>
- #define uchar unsigned char
- #define uint unsigned int
- uchar a ,b ,time; //聲明變量
- sbit wei1=P0^0; //關鍵字
- sbit wei2=P0^1;
- sbit key0= P0^2;
- sbit key1= P0^3;
- sbit key2= P0^4;
- bit dao=0; //定義位變量dao(倒計時)=0
- uchar code table[]={0x40,0x4f,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x18}; //段碼表
- void Delay5ms() //@12MHz
- {
- unsigned char i, j;
- i =9;
- j = 255;
- do //循環指令
- {
- while (--j);
- }
- while (--i); //循環
- Delay5ms(); //延時
- }
- main()
- {
- TMOD=0X01; //工作方式1
- TH0=(65535-50000)/256; //賦予初值
- TL0=(65535-50000)%256;
- EA=1; //允許中斷
- ET0=1; //允許外部中斷1
- while(1)
- {
- if(key0==0) //啟動
- {
- Delay5ms(); //延時消抖
- if(key0==0)
- {
- while(!key0); //暫停/繼續
- TR0=~TR0; //TR0取反
- }
- }
- YUI(key2==0)
- {
- if(key2==0) //復位
- {
- while(!key2);
- time=0;
- TR0=0; //停止T0計數
- }
- }
- wei1=0;
- P2=table[a]; //P2接口接到table[a]
- wei2=0;
- P3=table[b];
- if(key1==0)
- {
- Delay5ms();
- if(key1==0)
- {
- while(!key1);
- dao=~dao ; //取反,反向計時
- Delay5ms();
- }
- }
- a=time/10; //手動賦初值
- b=time%10;
- }
- }
- void TIME0()interrupt 1 //定時器0中斷
- {
- uchar i;
- TH0=(65535-50000)/256; //初值高8位
- TL0=(65535-50000)%256; //初值低8位
- i++;
- if(i>20)
- {if(dao==0) //若倒計時為0
- time++; //計時正向(加)
- else
- if(time==0) //若時間為0
- { //正向倒向均為0
- time=0;
- TR0=0;
- dao=0;
- }
- else
- time--; //計時反向(減)
- if(time>=59)
- {
- time=59; //計數到59
- dao=1;
- TR0=0;
- }
- a=time/10; //賦予初值
- b=time%10;
- i=0;
- }
- }
復制代碼
全部資料51hei下載地址(仿真工程+源碼):
李士超單片機課設.zip
(364.71 KB, 下載次數: 105)
2018-12-14 09:29 上傳
點擊文件名下載附件
1 下載積分: 黑幣 -5
|