久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于51單片機倒計時秒表程序設計

時間:2019-05-15 02:58:00下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《基于51單片機倒計時秒表程序設計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《基于51單片機倒計時秒表程序設計》。

第一篇:基于51單片機倒計時秒表程序設計

基于51單片機倒計時秒表程序設計

typedef unsigned char UINT8;typedef unsigned int UINT16;code UINT8 SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};code UINT8 SELECT[8] ={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};#define S1 0x0e #define S2 0x0d #define S3 0x0b #define S4 0x07 sbit SPEAK=P3^5;sbit P3_3=P3^3;UINT8 Second;

void timer_10ms(void)//定時器T0定時10ms {

TMOD=0x01;TH0=0xdc;TL0=0x32;TR0=1;//啟動T0 } void Delay(UINT16 t){

UINT16 i,j;

for(i=0;i

for(j=0;j<114;j++);}

void Display(void){ static UINT8 num=0;P2=0xff;switch(num){

case 0:

P0=0xff;

break;

case 1:

P0=0xff;

break;

case 2:

P0=0xff;

break;

case 3:

P0=0xff;

break;

case 4:

P0=0xff;

break;

case 5:

P0=0xff;

break;

case 6:

P0=SEGMENT[Second%100/10];

break;

case 7:

P0=SEGMENT[Second%10];

break;} P2=SELECT[num];num++;num%=8;//if(num==8)num=0;} UINT8 Scankey(void){ UINT8 key;if((P3&0x0f)==0x0f)

return(0xff);Delay(10);

if((P3&0x0f)==0x0f)

return(0xff);key=P3&0x0f;while((P3&0x0f)!=0x0f);return(key);}

void main(){

UINT8 i;

EA=1;

//打開總中斷

EX1=0;//打開外部中斷1 IT1=1;TH0=0xdc;TL0=0x32;TR0=1;//啟動T0

ET0=1;

Second=60;while(1)

{

Display();

Delay(2);

i = Scankey();

if(i==S1)//啟動

{

EA=1;

}

else if(i == S2)//暫停

{

EA=0;

}

}

} } void int_0()interrupt 1 {

unsigned char z,aa;

for(aa=59;aa>0;aa--){

for(z=0;z<50;z++)

{

P0=SEGMENT[aa/10];

P2=SELECT[3];

delay(5);

//10ms

P0=SEGMENT[aa%10];

P2=SELECT[4];

delay(5);

//10ms

} } } }

第二篇:單片機課程設計報告多功能秒表

青島理工大學琴島學院

課程設計報告

課題名稱:單片機原理課程設計 學院:機電工程系

專業班級:電氣工程及其自動化103班 學號:201002

學生:

指導老師:

青島理工大學琴島學院教務處2012年 12月21 日

第三篇:實習報告-單片機秒表設計

目 錄

第1章 單片機系統硬件電路.................................................................................1

1.1 實習目的..............................................................................................1 1.2 單片機型號及特性..............................................................................1 1.3 單片機開發板......................................................................................2

第2章 單片機應用系統軟件.................................................................................5

2.1 STC下載軟件......................................................................................5 2.2 Keil軟件...............................................................................................5 2.3 外部電路驅動......................................................................................6

第3章 00-59秒計時器設計..................................................................................7

3.1 電路原理圖..........................................................................................7 3.2 設計原理..............................................................................................7 3.3 實現方法..............................................................................................8

第4章 實習總結.....................................................................................................9

4.1 實習體會..............................................................................................9 4.2 設計硬件體會......................................................................................9

參考文獻.................................................................................................................10 附錄1 實物圖........................................................................................................11 附錄2 系統主要程序............................................................................................12

I

東北石油大學生產實習總結報告

第1章 單片機系統硬件電路

1.1 實習目的

了解單片機最小系統;

了解keilc軟件操作,程序下載及調試方法; 掌握單片機外部電路使用; 掌握鍵盤和數碼管顯示編程方法; 應用單片機開發板進行實驗開發;

1.2 單片機型號及特性

1、AT89S51單片機功能及特點

5l系列單片機中典型芯片(AT89S51)采用40引腳雙列直插封裝(DIP)形式,內部由CPU,4kB的ROM,256 B的RAM,2個16b的定時/計數器TO和T1,4個8 b的I/O端I:IP0,P1,P2,P3,一個全雙功串行通信口等組成。特別是該系列單片機片內的Flash可編程、可擦除只讀存儲器(E~PROM),使其在實際中有著十分廣泛的用途,在便攜式、省電及特殊信息保存的儀器和系統中更為有用。5l系列單片機提供以下功能:4 kB存儲器;256 BRAM;32條I/O線;2個16b定時/計數器;5個2級中斷源;1個全雙向的串行口以及時鐘電路??臻e方式:CPU停止工作,而讓RAM、定時/計數器、串行口和中斷系統繼續工作。掉電方式:保存RAM的內容,振蕩器停振,禁止芯片所有的其他功能直到下一次硬件復位。5l系列單片機為許多控制提供了高度靈活和低成本的解決辦法。充分利用他的片內資源,即可在較少外圍電路的情況下構成功能完善的超聲波測距系統。ATMEL的AT89S51是一種高效微控制器,AT89S2051是它的一種精簡版本。AT89S單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。

2、STC89C52單片機功能及特點

STC89C52是一種帶8K字節閃爍可編程可檫除只讀存儲器(FPEROM-Flash Programable and Erasable Read Only Memory)的低電壓,高性能COMOS8的微處理器,俗稱單片機。該器件采用ATMEL搞密度非易失存儲器制造技術制造,與工業

東北石油大學生產實習總結報告

標準的MCS-51指令集和輸出管腳相兼容。

STC89C52完全兼容AT89C51 AT89C52 AT89S51 AT89S52 而且加入了更多新功能, 它內部有1280字節的SRAM、8-64K字節的內部程序存儲器、2-8K字節的ISP引導碼、除P0-P3口外還多P4口(PLCC封裝)、片內自帶8路8位AD(AD系列),片內自帶EEPROM、片機自帶看門狗、雙數據指針等。

1.3 單片機開發板

1、復位電路

圖1-1復位電路圖

復位是單片機的初始化操作。其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執行程序。除了進入系統的正常初始化之外,當由于程序運行出錯或操作錯誤使系統處于死鎖狀態時,為擺脫困境,也需按復位鍵重新啟動。

RST引腳是復位信號的輸入端。復位信號是高電平有效,其有效時間應持續24個振蕩周期(即二個機器周期)以上。若使用頻率為6MHz的晶振,則復位信號持續時間應超過4us才能完成復位操作。

東北石油大學生產實習總結報告

2、晶振電路

圖1-2晶振電路圖

簡單地說,沒有晶振,就沒有時鐘周期,沒有時鐘周期,就無法執行程序代碼,單片機就無法工作。

對于一個高可靠性的系統設計,晶體的選擇非常重要,尤其設計帶有睡眠喚醒,往往用低電壓以求低功耗的系統,這是因為低供電電壓使提供給晶體的激勵功率減少,造成晶體起振很慢或根本就不能起振,這一現象在上電復位時并不特別明顯,原因是上電時電路有足夠的擾動,很容易建立振蕩,在睡眠喚醒時,電路的擾動要比上電時小得多,起振變得很不容易,在振蕩回路中,晶體既不能過激勵,容易振到高次諧波上,也不能欠激勵不容易起振,晶體的選擇至少必須考慮、諧振頻點、負載電容、激勵功率、溫度特性長期穩定性。

8051的時鐘周期即CPU的晶振的振蕩頻率的振蕩周期(頻率的倒數)當振蕩頻率為10MHZ時,振蕩周期=1/10MHZ=0.1us機器周期是完成一個基本操作的時間單元,一個機器周期=12個時鐘周期,當振蕩頻率為10MHZ時,機器周期=12x0.1=1.2us 8051的指令周期,指取出并執行一條指令的時間。一般為1-4個機器周期

3、鍵盤和中斷

矩陣式鍵盤中,行、列線分別連接到按鍵開關的兩端,行線通過上拉電阻接到+5V上。當無鍵按下時,行線處于高電平狀態;當有鍵按下時,行、列線將導通,此時,行線電平將由與此行線相連的列線電平決定。這一點是識別矩陣按鍵是否被按下的關鍵。然而,矩陣鍵盤中的行線、列線和多個鍵相連,各按鍵按下與否均影響該鍵所在行線和列線的電平,各按鍵間將相互影響,因此,必須將行線、列線信號配合起來作適當處理,才能確定閉合鍵的位置。

按鍵按下時,與此鍵相連的行線與列線導通,行線在無鍵按下時處在高電平,顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會引起行線電平的變化,因此,必須使所有列線處在低電平,只有這樣,當有鍵按下時,該鍵所在的東北石油大學生產實習總結報告

行電平才會由高電平變為低電平。CPU根據行平電的變化,便能判定相應的行有鍵按下。8號鍵按下時,第2行一定為低電平,然而,第2行為低電平時,能否肯定是8號鍵按下呢?回答是否定的,因為9、10、11號鍵按下同樣使第2行為低電平。為進一步確定具體鍵,不能使所有列線在同一時刻都處在低電平,可在某一時刻只讓一條列線處于低電平,其余列線均處于高電平,另一時刻,讓下一列處在低電平,依次循環,這種依次輪流每次選通一列的工作方式稱為鍵盤掃描。

外部中斷請求源:即外中斷0和1,經由外部管腳引入的,在單片機上有兩個管腳,名稱為INT0、INT1,也就是P3.2、P3.3這兩個管腳。在內部的TCON中有四位是與外中斷有關的。IT0:INT0觸發方式控制位,可由軟件進行置位和復位,IT0=0,INT0為低電平觸發方式,IT0=1,INT0為負跳變觸發方式。IE0:INT0中斷請求標志位。當有外部的中斷請求時,這位就會置1(這由硬件來完成),在CPU響應中斷后,由硬件將IE0清0。IT1、IE1的用途和IT0、IE0相同。內部中斷請求源TF0:定時器T0的溢出中斷標記,當T0計數產生溢出時,由硬件置位TF0。當CPU響應中斷后,再由硬件將TF0清0。TF1:與TF0類似。TI、RI:串行口發送、接收中斷,中斷允許寄存器IE在MCS-51中斷系統中,中斷的允許或禁止是由片內可進行位尋址的8位中斷允許寄存器IE來控制的。

圖1-3矩陣式鍵盤的結構

東北石油大學生產實習總結報告

第2章 單片機應用系統軟件

2.1 STC下載軟件

圖2-1 總體方案原理框圖

2.2 Keil軟件

目前流行的51系列單片機開發軟件是德國Keil公司推出的Keil C51軟件,它是一個基于32位Windows環境的應用程序,支持C語言和匯編語言編程,其6.0以上的版本將編譯和仿真軟件統一為μVision(通常稱為μV2)。Keil提供包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,由以下幾部分組成:μVision IDE集成開發環境(包括工程管理器①、源程序編輯器②、程序調試器③,C51編譯器、A51匯編器、LIB51庫管理器、BL51連接/定位器、OH51目標文件生成器以及 Monitor-

51、RTX51實時操作系統。

東北石油大學生產實習總結報告

應用Keil進行軟件仿真開發的主要步驟為:編寫源程序并保存—建立工程并添加源文件—設置工程—編譯/匯編、連接,產生目標文件—程序調試。Keil使用“工程”(Project)的概念,對工程(而不能對單一的源程序)進行編譯/匯編、連接等操作。工程的建立、設置、編譯/匯編及連接產生目標文件的方法非常易于掌握。首先選擇菜單File-New…,在源程序編輯器中輸入匯編語言或C語言源程序(或選擇File-Open…,直接打開已用其它編輯器編輯好的源程序文檔)并保存,注意保存時必須在文件名后加上擴展名.asm(.a51)或.c;然后選擇菜Project-New Project…,建立新工程并保存(保存時無需加擴展名,也可加上擴展名.uv2);工程保存后會立即彈出一個設備選擇對話框,選擇CPU后點確定返回主界面。這時工程管理窗口的文件頁(Files)會出現“Target1”,將其前面+號展開,接著選擇Source Group1,右擊鼠標彈出快捷菜單,選擇“Add File to Group ?Source Group1?”,出現一個對話框,要求尋找并加入源文件(在加入一個源文件后,該對話框不會消失,而是等待繼續加入其它文件)。加入文件后點close返回主界面,展開“Source Group1”前面+號,就會看到所加入的文件,雙擊文件名,即可打開該源程序文件。緊接著對工程進行設置,選擇工程管理窗口的Target1,再選擇Project-Option forTarget ?Target1?(或點右鍵彈出快捷菜單再選擇該選項),打開工程屬性設置對話框,共有8個選項卡,主要設置工作包括在Target選項卡中設置晶振頻率、在Debug選項卡中設置實驗仿真板等,如要寫片,還必須在Output選項卡中選中“Creat Hex Fi”;其它選項卡內容一般可取默認值。工程設置后按F7鍵(或點擊編譯工具欄上相應圖標)進行編譯/匯編、連接以及產生目標文件。

2.3 外部電路驅動

1、串口

2、定時器

3、中斷

東北石油大學生產實習總結報告

第3章 00-59秒計時器設計

3.1 電路原理圖

圖3-1電路原理圖

3.2 設計原理

在設計過程中我們用一個存儲單元作為秒計數單元,當一秒鐘到來時,就讓秒計數單元加 1,當秒計數達到 60 時,就自動返回到 0,從新秒計數。

對于秒計數單元中的數據要把它十位數和個數分開,方法仍采用對 10 整除和對 10 求余。

東北石油大學生產實習總結報告

在數碼上顯示,仍通過查表的方式完成。

一秒時間的產生在這里我們采用軟件精確延時的方法來完成,經過精確計算得到 1 秒時間為 1.002 秒。

圖3-1 程序流程圖

3.3 實現方法

系統的軟件設計也是工具系統功能的設計。單片機軟件的設計主要包括執行軟件(完成各種實質性功能)的設計和監控軟件的設計。單片機的軟件設計通常要考慮以下幾個方面的問題:

(1)根據軟件功能要求,將系統軟件劃分為若干個相對獨立的部分,設計出合理的總體結構,使軟件開發清晰、簡潔和流程合理;

(2)培養良好的編程風格,如考慮結構化程序設計、實行模塊化、子程序化。既便于調試、鏈接,又便于移植和修改;

(3)繪制程序流程圖;(4)合理分配系統資源;

(5)為程序加入注釋,提高可讀性,實施軟件工程;

東北石油大學生產實習總結報告

第4章 實習總結

4.1 實習體會

大約20天的的實習已經結束了,通過這次的實習鍛煉了我們的實踐能力,也是對我們以后的實際工作能力的具體訓練和考察過程。現在是一個高科技的時代,單片機已經成為當今計算機應用中空前活躍的領域。因此對于我們這一專業的同學來說,學好單片機,并正確應用單片機是非常重要的。

此次單片機課程設計,從選題到定稿,從理論到實踐,學到了很多的東西。同時不僅鞏固了以前所學過的知識,而且還學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,要把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。這次的課程設計還讓我學會了如何去培養我們的創新精神,從而不斷地戰勝自己,超越自己。更重要的是,我在這一設計過程中,學會了堅持不懈,不輕言放棄。

4.2 設計硬件體會

設計過程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。在整個設計中也培養了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創造過程中探索的艱難和成功時的喜悅。

單片機實習雖然結束了,但通過實習所學到的東西將長久存在。相信這次單片機設計帶給我們的嚴謹的學習態度和一絲不茍的科學作風將會給我們未來的工作和學習打下一個更堅實的基礎。

東北石油大學生產實習總結報告

參考文獻

[1] 張占松,孫時生,伍言真.電路和系統的仿真實踐.北京:科學出版社電路.2000年1月

[2] Akagi H.Kanazawa Y ,Nabe A.Instantaneous reactive power compensators comprising switching devices without energy storage components.IEEE Trans.Ind.Applicat.,1984,20(3).625-630 [3] Peng F Z, Akagi H,A H;Nabae A.A novel harmonic power filter.PESC Record,1988,1151-1159 [4] 朱東起,姜新建,馬大銘.無源和有源濾波器構成的并聯型綜合電力濾波系統.北京:清華大學學報(自然科學版),1999,39(3):49-52 [5] 鄧肖粵、胡曉云《EDA在電子技術教學中的應用》 《實驗與探索》 2000年12月

[6] 張占松,孫時生,伍言真.電路和系統的仿真實踐.北京:科學出版社電路.2000年1月

[7] 鄭春龍.Pspice在數?;旌想娐贩治鲋械膽茫?電子技術.1999(12)[8] 紀良文,蔣靜坪.機器人超聲測距數據的采集與處理.電子技術應用.2001(4)

東北石油大學生產實習總結報告

附錄1 實物圖

東北石油大學生產實習總結報告

附錄2 系統主要程序

#include

code unsigned char tab[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};// 0-9

unsigned char Shiwei;//定義十位 unsigned char Gewei;//定義個位 void delay(unsigned int cnt){ while(--cnt);} main(){ TMOD |=0x01;//工作在模式1,16位定時 TH0=(65535-45872)/256;TL0=(65535-45872)%256;IE= 0x82;//打開中斷 TR0=1;

//打開定時開關

while(1)

{

P0=Shiwei;//顯示十位

P1=0xdf;

delay(300);

//短暫延時

P0=Gewei;//顯示個位

P1=0xef;

delay(300);

} }

/*

定時器中斷函數

*/

東北石油大學生產實習總結報告

void tim(void)interrupt 1 using 1 { static unsigned char second,count;TH0=(65535-45872)/256;TL0=(65535-45872)%256;

count++;

if(count==20)

{

count=0;

second++;

//秒加1

if(second==60)

second=0;Shiwei=tab[second/10];//十位顯示值處理

Gewei=tab[second%10];//個位顯示處理

}

}

東北石油大學生產實習總結報告

第四篇:電氣07課程設計任務書(倒計時、秒表)

本文由lj436436貢獻

doc文檔可能在WAP端瀏覽體驗不佳。建議您優先選擇TXT,或下載源文件到本機查看。湖南工程學院

課程設計任務書

課程名稱: 數字電子技術 題 目:通用倒計時系統 ——A 題

專業班級: 學生姓名: 指導老師: 郭照南 審 批:

班 學號:

任務書下達日期 2009 年 10 月 26 日星期一 設計完成日期 2009 年 11 月 6 日星期五

設計內容與設計要求 一. 設計內容 設計一個適于各類場合的通用倒計時系統,功能 要求如下: 1)計時器的計時間隔為 1S,其遞減計數器的模 在 59 分 59 秒至 00 分 01 秒范圍內可預置。2)設置 4 個預置按鈕,分別用于分個位、分十位 和秒個位、秒十位的預置,預置時通過按鈕對相應的 時間位進行遞增計數來完成預置。3)倒計時器通過外部功能鍵使其具有直接復位、啟動、暫停/繼續等功能; 4)具有顯示功能,用 LED 數碼管實現;

5)計時數器遞減到零時,數碼顯示器的 LED “00∶ 00”字樣發生閃爍(或停止),同時發出警報聲。二. 設計要求: 1. 設計思路清晰,給出整體設計框圖; 2. 設計各單元電路,給出具體設計思路、電 路圖、器件清單; 3. 總電路設計; 4. 安裝調試電路; 5. 寫出設計報告;

主要設計條件 1. 提供面包板、直流穩壓電源、示波器; 2. 提供各種 TTL 集成電路芯片、NE555 定時 器、電阻及電容等;

說明書格式 1. 課程設計報告書封面; 2. 任務書; 3. 說明書目錄; 4. 設計總體思路; 5. 單元電路設計; 6. 總電路設計; 7. 設計調試體會與總結; 8. 附錄; 9. 參考文獻。

進 度 安 排

第一周星期一 上午 安排任務、講課。星期一 下午 星期四 下午 查資

料、設計(四樓機房)、EWB 設計仿真〈四樓機房〉

星期五開始到第二周星期四 安裝調試電路 第二周星期五 調試驗收 答辯 地 點:實驗樓 403 室

參 考 文 獻 《電子技術課程設計》 歷雅萍、易映萍編 《電子技術課程設計指導》 彭介華、主編 高等教育出版社 《電子線路設計、實驗、測試》 謝自美主編 華中理工出版社。湖南工程學院

課程設計任務書

課程名稱: 數字電子技術 題 目:數字秒表 ——B 題

專業班級: 學生姓名: 指導老師: 郭照南 審 批:

班 學號:

任務書下達日期 2009 年 10 月 26 日星期一 設計完成日期 2009 年 11 月 6 日星期五

設計內容與設計要求

一、設計內容: 設計并制作符合以下要求的數字秒表: 1.6 位數碼管顯示,其中兩位顯示 min,四位顯示 sec。顯示分辨率為 0。01s; 2.秒表的最大計時值為 59min59.99sec; 3.設置秒表的復位/啟動鍵,按一下該鍵啟動計時,再按即清 0。依此循環。4.設置秒表的暫行/繼續鍵。啟動后按一下暫行,再 按繼續。依此循環。

二、設計要求: 1.設計思路清晰,給出整體設計框圖; 2.設計各單元電路,給出具體設計思路、電路 圖、器件清單; 3.總電路設計; 4.安裝調試電路; 5.寫出設計報告;

主要設計條件 3. 提供面包板、直流穩壓電源、示波器; 4. 提供各種 TTL 集成電路芯片、NE555 定時 器、電阻及電容等;

說明書格式 1.課程設計報告書封面; 2 任務書; 3 說明書目錄; 4 設計總體思路; 5 單元電路設計; 6 總電路設計; 7 設計調試體會與總結; 8 附錄; 9 參考文獻。進 度 安 排

第一周星期一 上午 安排任務、講課。星期一 下午 星期四 下午 查資

料、設計(四樓機房)、EWB 設計仿真〈四樓機房〉

星期五開始到第二周星期四 安裝調試電路 第二周星期五 調試驗收 答辯 地 點:實驗樓 403 室

參 考 文 獻 《電子技術課程設計》 歷雅萍、易映萍編 《電子技術課程設計指導》 彭介華、主編 高等教育出版社 《電子線路設計、實驗、測試》 謝自美主編 華中理工出版社。

第五篇:基于89C51單片機的秒表課程設計

摘要

隨著電子技術的發展,電子技術在各個領域的運用也越來越廣泛,人對它的認識也逐步加深。秒表計時器秒表計時器常常用于體育競賽及各種其他要求有較精確時間的各領域中。其中啟/停開關的使用方法與傳統的機械計時器相同,即按一下啟/停開關,啟動計時器開始計時,再按一下啟/停開關計時終止。而復位開關可以在任何情況下使用,即使在計時過程中,只要按一下復位開關,計時應立即終止,并對計時器清零。本設計就是利用所學到的電子元器件將脈沖源用數碼管顯示出來,以制承諾簡易的秒表。

以單片機為核心,設計一個秒表,具有計時功能,按鍵有啟動計時、數據清零、停止、時間顯示。

采用3個LED數碼管顯示時間,計時范圍設置為0~99.9秒,即精確到0.1秒,用按鍵控制秒表的“開始”、“暫?!?、“復位”,按“開始”按鍵,開始計時;按“暫?!卑存I,系統暫停計時;再按“開始”鍵,系統繼續計時;數碼管顯示當前計時值;按“復位”按鍵,系統清零。

目錄

一、設計任務.................................................................................................................3

二、設計題目.................................................................................................................3

三、功能分析.................................................................................................................3

四、總體設計.................................................................................................................3

4.1硬件設計...............................................................................................................4

4.1.1 89C51單片機...........................................................................................4

4.1.2晶體振蕩電路...........................................................................................5

4.1.3復位電路...................................................................................................6

4.1.4按鍵電路...................................................................................................7

4.1.5顯示電路.................................................................................................8

4.2引腳控制...............................................................................................................9

五、電路原理圖...........................................................................................................10

六、程序流程圖及程序設計......................................................................................11

6.1程序流程圖.........................................................................................................11

6.2程序設計.............................................................................................................12

七、程序仿真...............................................................................................................21

八、心得體會...............................................................................................................22

九、致謝.......................................................................................................................23

十、參考文獻...............................................................................................................24

一、設計任務

以單片機為核心,設計一個秒表,具有計時功能,按鍵有啟動計時、數據清零、停止、時間顯示。

二、設計題目

秒表的設計

三、功能分析

采用3個LED數碼管顯示時間,計時范圍設置為0~99.9秒,即精確到0.1秒,用按鍵控制秒表的“開始”、“暫?!?、“復位”,按“開始”按鍵,開始計時;按“暫?!卑存I,系統暫停計時;再按“開始”鍵,系統繼續計時;數碼管顯示當前計時值;按“復位”按鍵,系統清零。

四、總體設計

本實驗利用單片機的定時器/計數器定時和計數的原理,通過采用Proteus仿真軟件來模擬實現。模擬AT89C51單片機、LED數碼管以及控件來控制秒表的計數以及計時的開啟、暫停、繼續、與復位。其中有三個數碼管來顯示數據,兩個數碼管顯示秒(兩位),另一個數碼管顯示十分之一秒,十分之一秒的數碼管計數從0~9,滿十進一后顯示秒得數碼管的個位加一,并且十分之一秒顯示清零

重新從零計數。同理當個位滿十進一后個位也清零重新計數,當計時超過范圍(即超過99.9秒)后,所有數碼管全部清零從新計數

4.1硬件設計

4.1.1 89C51單片機

MCS-51系列單片機是8位單片機產品,89C51是其中的典型代表,基本模塊包括以下幾個部分:

(1)CPU:89C51的CPU是8位的,另外89C51內部有1個位處理器

(2)R0M:4KB的片內程序存儲器,存放開發調試完成的應用程序

(3)RAM:256B的片內數據存儲器,容量小,但作用大

(4)I/O口:P0-P3,共4個口32條雙向且可位尋址的I/O口線

(5)中斷系統:共5個中斷源,3個內部中斷,2個外部中斷

(6)定時器/計數器:2個16位的可編程定時器/計數器

(7)通用串行口:全雙工通用異步接收器/發送器

(8)振蕩器:89C51的外接晶振與內部時鐘振蕩器為CPU提供時鐘信號

(9)總線控制:89C51對外提供若干控制總線,便于系統擴展

89C51單片機引腳如下圖:

4.1.2晶體振蕩電路

89C51單片機內部的振蕩電路是一個高增益反相放大器,引線XTAL1和XTAL2分別為反相振蕩放大器的輸入及內部時鐘工作電路的輸入和來自反相

振蕩器的輸出,該反相放大器可以配置為片內振蕩器。

這里選用51單片機12MHZ的內部振蕩方式,電路如下:C2、C3起穩定振蕩頻率、快速起振的作用。

晶振電路

4.1.3復位電路

采用上電復位,上電后,由于電容充電,使RST持續一段時間的高電平,從而實現上電復位操作。這不僅能使單片機復位,還能是單片機的外圍設備同時復位,當程序出現錯誤時,可以隨時使電路復位。

電路圖如下:

復位電路

4.1.4按鍵電路

當按鍵被按下時,相應的引腳被拉低,經掃描后,獲得鍵值,并執行鍵功能程序,因此按下不同的按鍵,將執行不同的功能程序。

電路圖如下:

按鍵電路

4.1.5顯示電路

采用3個LED數碼管,LED是七段顯示器,內部有7個條形發光二極管和1個小圓點發光二極管,根據各管的亮暗組成字符。

在用數碼管顯示時,有靜態和動態兩種選擇,這里采用LED動態顯示,用P0、P1、P2口驅動顯示,由于P0口沒有上拉電阻,因此P0口需要外接上拉

電阻才能輸出高電平,這里使用8個4.7k的電阻作為上拉電阻。

電路圖如下:

顯示電路

4.2引腳控制

P0.0—P0.7、P2.0—P2.7、P1.0—P1.7對應三個數碼管的a、b、c、d、e、f、g段和小數點位;P0控制數碼管十位的顯示,P2控制數碼管個位的現實,P1控制小數點后一問的顯示,P3.2、P3.3、P3.4分別接。

五、電路原理圖

用Proteus軟件畫出主電路圖如下:

六、程序流程圖及程序設計

6.1程序流程圖

6.2程序設計

程序的各個組成模塊及工作流程描述:

(1)秒表的初始化

根據程序流程圖,先進行秒表的初始化,即:①將I/O口P3全寫一,為秒表的控制輸入做好準備;②將數碼管全部置零,使其處于秒表計時的初始狀態;③將工作寄存器R0~R2以及30H初始化,留待后面的計時程序備用;④將定時器0置于工作方式1,并為其裝入計時預置數D8FE(因為程序運行過程中占用的時間會導致一定誤差,此為經實物測試之后的修正值),即將定時器定為每10ms溢出;⑤開總中斷允許和定時器0中斷允許。初始化完成后,即進入之后的按鍵掃描程序。

(2)按鍵檢測程序

輪流檢測開始計時(P3.2)、暫停計時(P3.3)、秒表清零(P3.4)三個按鍵。若發現有一個按鍵出現低電平(可能被按下),則延時10ms(調用延時子程序DELAY),延時完成后,若發現低電平消失,則說明該按鍵實際上未被按下,此時轉回按鍵檢測處繼續檢測;若發現仍然是低電平,則說明此鍵確實被按下了,此時就跳轉至相應的程序標號處,執行相應的功能。

(3)開始計時

若確認“開始計時”鍵被按下,則跳轉至程序標號“RUN”處,將定時器0計時允許控制位TR0置位,則定時器開始運行。此動作完成后,返回按鍵檢測程序,等待操作者的下一次指令。

(4)計時程序

定時器0計時至10ms,溢出,引發中斷,程序跳轉至定時器0中斷服務程序入口000BH處執行。程序跳轉至中斷服務程序TIME0。由于秒表的最小計時單位是0.1s,即100ms,因此需加入軟件計時,使定時器0溢出10次之后才改變數碼管的顯示狀態。因此每來一次中斷就將30H中的數加1,若30H中的數沒有到10,則給定時器0重新裝入預置數,之后中斷返回并繼續等待中斷;到10了,才進入顯示程序,改變數碼管的顯示狀態,執行完畢之后中斷返回并繼續等待中斷。

(5)顯示程序

將數碼管的段選碼放在數表TAB中。每次100ms計時完成后,將R0中的值(初值為0)送入A,然后自加1。.若R0中的值沒到10,則使用累加器A查表,并將查得的數碼管段選碼送入毫秒位數碼管。之后將30H中的數置零,中斷返回。若發現R0中的數到10了,則將R0置零,并轉入秒位進位子程序SECOND,向秒位進位,之后,繼續照常向毫秒位送數。

在秒位進位子程序SECOND中,由于要用到累加器A,因此先將其推入堆棧保護。將R1中的值(初值為10)送入A,然后自加1。.若R1中的值沒到20,則使用累加器A查表,并將查得的數碼管段選碼送入秒位數碼管。若發現R1中的數到20了,則將R1重置為10,并轉入十秒位進位子程序SECOND1,向十秒位進位,之后,繼續照常向秒位送數。完成后,彈出ACC和PSW,子程序返回。

十秒位進位子程序與秒位進位子程序相似,只是沒有向下一位進位的功能。

(6)暫停計時

若確認“暫停計時”鍵被按下,則跳轉至程序標號“PAUSE”處,將定時器0計時允許控制位TR0置零,則定時器暫停運行。此動作完成后,返回按鍵檢測程序,等待操作者的下一次指令。

(7)秒表清零

若確認“秒表清零”鍵被按下,則跳轉至程序標號“STOP”處,將TR0置零,關閉定時器0運行。并且將數碼管、工作寄存器、定時器0預置數全部重置,使其處于秒表計時的初始狀態。此動作完成后,返回按鍵檢測程序,等待操作者的下一次指令。

(8)延時程序

用于按鍵延時防抖,延時10ms。

程序清單如下:

ORG 0000H;程序開始

AJMP START;跳轉到主程序START ORG 000BH;定時器0中斷的地址入口

AJMP TIME0;定時器0溢出,跳轉到中斷程序TIME0 START:;主程序

MOV P3,#0FFH;輸入端口P3全寫1 MOV P0,#3FH;MOV P1,#3FH;

MOV P2,#0BFH;數碼管初始化

MOV 30H,#00H;MOV R0,#00H;MOV R1,#0AH;MOV R2,#00H;MOV TMOD,#01H;MOV TH0,#0D8H;MOV TL0,#0FEH;SETB EA;SETB ET0;READ:;L1:JB P3.2,L2;LCALL DELAY;JB P3.2,L1;AJMP RUN;L2:JB P3.3,L3;

工作寄存器初始化

定時器0工作于方式1

定時器0預置數(D8FEH=55550D)

開總中斷允許

開定時器0中斷允許

讀鍵程序

按鍵延時防抖

確認計時鍵被按下,開始/繼續計時15

LCALL DELAY;按鍵延時防抖

JB P3.3,L2;AJMP PAUSE;確認暫停鍵被按下,暫停計時

L3:JB P3.4,L1;LCALL DELAY;JB P3.4,L3;AJMP STOP;RUN:;SETB TR0;AJMP READ;PAUSE:;CLR TR0;AJMP READ;TIME0:;INC 30H;MOV A,30H;

按鍵延時防抖

確認清零鍵被按下,秒表重置

計時鍵按下,跳轉至此

定時器0開始/繼續運行

暫停鍵按下,跳轉至此

定時器0溢出,中斷,跳轉至此16

CJNE A,#0AH,TIME1;30H單元中的值到10了嗎?(計時到10毫秒了嗎,也就是說,該向毫秒位送數了嗎?)MOV DPTR,#TAB;30H中的值到10了,順序執行

MOV A,R0;INC R0;CJNE R0,#0AH,GET;R0MOV R0,#00H;LCALL SECOND;進位

GET:;MOVC A,@A+DPTR;MOV P1,A;MOV 30H,#00H;TIME1:;MOV TH0,#0D8H;MOV TL0,#0FEH;RETI;中的值到10了嗎?(該向秒位進位了嗎?)

到了,R0清零,調用進位子程序SECOND,向秒位沒到,跳過進位子程序

查表并向數碼管毫秒位送數

重置30H單元

給定時器0重新預置數

中斷返回

SECOND:;秒位進位子程序

PUSH ACC;PUSH PSW;將ACC和PSW推入堆棧保護

MOV A,R1;INC R1;CJNE R1,#14H,GET1;R1了嗎?

MOV R1,#0AH;LCALL SECOND1;位進位

GET1:;MOVC A,@A+DPTR;MOV P2,A;POP PSW;POP ACC;PSW,ACCRET;SECOND1:;中的值到20了嗎,也就是說,該向十秒位進位到了。R1重置,調用進位子程序SECOND1,向十秒沒到,跳過進位子程序

查表并向數碼管秒位送數

出棧

子程序返回

十秒位進位子程序

PUSH ACC;PUSH PSW;將ACC和PSW推入堆棧保護

MOV A,R2;INC R2;CJNE R2,#0AH,GET2;R2

MOV R2,#00H;GET2:;MOVC A,@A+DPTR;MOV P0,A;POP PSW;POP ACC;PSWRET;STOP:;MOV P3,#0FFH;MOV P0,#3FH;MOV P1,#3FH;

中的值到10了嗎,也就是說,該將此位歸零了到了,R2清零

沒到,跳過清零程序

查表并向數碼管十秒位送數,ACC出棧

子程序返回

清零鍵按下,跳轉至此 嗎?

MOV P2,#0BFH;數碼管清零

MOV 30H,#00H;MOV R0,#00H;MOV R1,#0AH;MOV R2,#00H;CLR TR0;MOV TH0,#0D8H;MOV TL0,#0FEH;AJMP READ;DELAY:;MOV R3,#50D;D1:MOV R4,#100D;D2:DJNZ R4,D2;DJNZ R3,D1;RET;工作寄存器初始化計時器0停止計時定時器0預置數

延時10ms子程序

子程序返回

TAB: DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,3FH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,0BFH;數碼管段選碼數表

END;程序結束

七、程序仿真

將以上程序清單導入先前做好的Proteus仿真電路,匯編之后,按 鍵開始進行仿真。

仿真結果如下:

仿真結果描述:

按“開始”鍵,秒表開始計時;按“暫停”鍵,秒表暫停計時;再按“開始”鍵,秒表繼續計時;按“清零”鍵,秒表清零。

八、心得體會

雖然秒表是一個非常簡單的功能,但要在單片機中使用匯編語言來實現這個功能,仍然花了我不少心思。

首先是計時的問題,由于單片機計時器最大只能計時65.5ms,因此要實現毫秒位的變化,我采用了軟件計時的方法,單片機只需計時10ms,然后用軟件重復10次,即可達到計時100ms的目的。

顯示方面,為了使編程簡單,我使用了靜態顯示。不過這使得占用I/O口線過多,而且連線復雜繁瑣,為實物的制作帶來了不便。在以后的學習和應用中我會努力加深動態掃描顯示的理解,爭取熟練運用。

根據書本知識,我們一開始只給P0口加上了上拉電阻,但是實物做成后我們發現P1和P2口得輸出顯示非常暗,初步確定是驅動能力不足的問題后,我們給二者也加上了上拉電阻,結果使得顯示正常了。由此我們了解到,實踐才是檢驗真理的唯一標準,有時候書本上的知識需要經過實踐的改進,才能運用到實際中。

此次課程設計鞏固了我的基礎知識,提高了我的應用水平,鍛煉了我的動手能力,使我受益匪淺。然而,在吸取經驗的同時,我也吃了不少教訓。在編程、仿真、焊接方面都走了不少彎路。但是,學則要有所收獲,經過此次的鍛煉,我在很多方面都已經有所提高,知識也掌握得更加扎實了。

在今后的學習和實踐中,我將繼續努力鉆研,提高自己,爭取在學術和記憶上獲得更大的進步。

九、致謝

本設計是在李芳老師的悉心指導下完成的,李老師淵博的知識,嚴謹的治學態度,一絲不茍的工作作風,平易近人的性格都是我學習的楷模。在論文的研究及整理期間,李老師給了我很大的支持和鼓勵,才使得論文得以順利的完成,在此謹向導師表示忠心的感謝和崇高的敬意。

同時還要感謝同學們,他們也給了我很大的支持和幫助。

十、參考文獻

1)《微控制器與接口技術》.虞滄.電子工業出版社.2012.10 2)李朝青.單片機原理及接口技術[M].北京:北京航空航天大學出版社.2005.10 3)夏繼強.單片機實驗北京:北京航空航天大學出版社.2001.4)孫德輝,鄭士富.微型計算機控制系統.北京:冶金工業出版社.2002

5)肖洪兵.跟我學用單片機.北京:北京航空航天大學出版社.2002.8 6)陳汝全.實用微機與單片機控制技術.電子科技大學出版社.1995.7 7)王涌.單片機與嵌入式系統應用[J],2002(3):58-61 8)羅亞非.凌陽16位單片機應用基礎[M].北京:北京航空航天大學出版社.2003.5 9)李慶.Keil C51 使用詳解 V3.0[M].北京:北京理工大學出版

10)李華.MCS-51系列單片機實用接口技術.北京航空航天大學出版社.1993,162-229 11)溫鋼云,黃道平.計算機控制技術.廣州:華南理工大學出版社.2002 12)肖洪兵.單片機應用技術.自編教材

13)孫德輝,鄭士富.微型計算機控制系統.北京:冶金工業出版社.2002 14)韓來吉.用 89C51實現急救車優先的交通燈控制系統[J] 15)陳志強,芮延年,城市路口交通燈多級智能控制方法的研究J.2007 16)李廣弟.單片機基礎.北京:北京航空航天大學出版社.2001,56 17)馬忠梅等.單片機的C語言應用程序設計.北京航空航天出版社.1999

18)劉瑞新,單片機原理及應用教程,北京機械工業出版社,2003 19)李傳軍,單片機原理及應用,河南科技出版社,2006 20)饒慶,89C51單片機課程設計實訓教材,北京人民郵電出版社,2003

下載基于51單片機倒計時秒表程序設計word格式文檔
下載基于51單片機倒計時秒表程序設計.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    單片機課程設計之秒表五篇范文

    單片機課程設計報告題目:基于stc89c52rc的秒表設計學生:唐偉軒 11071339指導老師:日期:2013年12月8日基于stc89c52rc的秒表設計此設計中硬件部分由王華杲完成,軟件由唐偉軒完成一......

    單片機課程設計-99秒倒計時

    單片機應用技術 課程設計指導書 合肥通用職業技術學院 電氣與計算機系 二OO九年11月 單片機應用是一門很重要的專業課,它涉及到的理論及技術在工業過程控制、智能儀器儀表及......

    單片機-分支程序設計教案

    一、復習上次課內容 1、什么是標識符? 答:標識符是程序員選擇的名字,用來標識常量、變量、過程、段名等。2、什么是偽指令? 答:注釋性的,沒有對應的機器碼,不令計算機做任何操作,不......

    單片機課程設計秒表系統設計(含5篇)

    單片機課程設計 學院:信息工程專業:——秒表系統設計 一,設計目的: 1,熟悉51單片機的內部結構,計數器,中斷控制器等的用法,來實現簡單的控制應用系統。 2,通過簡單系統的設計了解單片......

    51單片機脈沖產生程序設計

    獨立鍵盤控制輸出脈沖信號 用51單片機用獨立鍵盤控制輸出4種頻率:1Hz、2Hz、10Hz、50Hz,占空比為50%的脈沖信號。 #include #define uint unsigned int #define uchar unsign......

    51單片機程序設計實訓100例

    《單片機C語言程序設計實訓100例---基于8051和PROTEUS仿真》案例 《單片機C語言程序設計實訓100例—基于8051+Proteus仿真》案例 第 01 篇 基礎程序設計 01 閃爍的LED /*......

    單片機實驗9 多分支程序設計

    實驗9 多分支程序設計 1、實驗內容 用P1.0、P1.1控制流水燈的變化 P1.0、P1.1=00燈全滅 P1.0、P1.1=01單燈亮左循環 P1.0、P1.1=10單燈亮右循環 P1.0、P1.1=11雙燈亮左循環......

    FPGA秒表實驗報告

    課程設計報告 專業班級 課 程 題 目 秒表的設計 學 號 姓 名 同 組 人 成 績 2013年5月 一、設計目的 1.進一步熟悉七段碼譯碼器的硬件接口。 2.掌握用掃描方法驅動多個數碼......

主站蜘蛛池模板: 中文字幕日韩欧美一区二区三区| 97午夜理论片影院在线播放| 婷婷综合缴情亚洲| 少妇直播| 国产无遮挡又黄又爽又色| 国产一区二区在线视频| 成人午夜又粗又硬又长| 亚洲大尺度无码无码专区| 99蜜桃臀久久久欧美精品| 亚洲欧洲日产国码无码动漫| 97se亚洲国产综合自在线| 国产麻豆精品精东影业av网站| 国自产拍偷拍精品啪啪一区二区| 久久精品国产精品亚洲38| 日韩a∨精品日韩在线观看| 国产熟妇搡bbbb搡bbbb搡| 国产专区一线二线三线码| 曰韩精品无码一区二区三区| √天堂资源地址在线官网| 免费观看黄网站在线播放| 中国凸偷窥xxxx自由视频| 久欠精品国国产99国产精2021| 亚洲国产精品特色大片观看完整版| 亚洲精品综合欧美一区二区三区| 无码丰满熟妇浪潮一区二区av| 日本欧美大码aⅴ在线播放| 人人爽久久久噜噜噜婷婷| 同性男男黄g片免费网站| 好爽别插了无码视频| 春色校园亚洲愉拍自拍| 亚洲精品成人网站在线播放| 国产精品福利自产拍在线观看| 大地资源在线观看免费下载| 日韩精品无码免费专区午夜不卡| 可以直接看的无码av| 在线观看国产网址你懂的| 无码av无码一区二区| 亚洲欧洲日产韩国在线看片| 无码国产精品一区二区免费模式| 厨房玩丰满人妻hd完整版视频| 鲁大师在线视频播放免费观看|