

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 單片機課程設計報告</b></p><p><b> 秒表設計</b></p><p> 年 級:2 0 1 0級</p><p> 專 業(yè):通信工程</p><p> 姓 名:* * *</p><p> 指導
2、老師:* * *</p><p><b> 2013-1-7</b></p><p><b> 摘要</b></p><p> 本設計利用單片機的定時器/計數(shù)器定時和計數(shù)的原理,利用AT89S52單片機、LED數(shù)碼管以及軟件來控制秒表的計數(shù)以及計數(shù)的計時/倒計時/清零/復位。</p><p&
3、gt; 本設計主要完成具備基本功能的電子秒表的理論和實踐設計,其中一個按鍵來清零(00);一個計時開始按鍵,控制計時的開始(執(zhí)行加1操作);一個復位鍵(60秒,用來倒計時);一個倒計時按鍵,表示開始逐漸減1。</p><p> 關鍵字:電子秒表,單片機,定時中斷</p><p><b> 目錄</b></p><p> 一、前言 ………
4、……………………………………………………4</p><p> 1.1單片機技術的特點及應用…………………………………4</p><p> 二、設計任務要求及研究意義 ……………………………………6</p><p> 2.1設計任務……………………………………………………6</p><p> 2.2設計要求………………………………………
5、……………6</p><p> 2.3課題的研究意義……………………………………………6</p><p> 三、總體方案設計分析、討論……………………………………7</p><p> 3.1、硬件方案…………………………………………………7</p><p> 3.2、軟件方案…………………………………………………7</p>
6、<p> 四、硬件原理圖設計………………………………………………8</p><p> 4.1單片機簡介…………………………………………………8</p><p> 4.2時鐘電路……………………………………………………9</p><p> 4.3LED8段數(shù)碼顯示管結構與原理……………………………9</p><p> 五
7、、軟件框圖及程序設計…………………………………………11</p><p> 5.1系統(tǒng)框圖 …………………………………………………11</p><p> 5.2程序流程圖 ………………………………………………12</p><p> 5.3程序代碼 …………………………………………………13</p><p> 六、設計總結和心得體會……
8、……………………………………20</p><p> 6.1設計總結 …………………………………………………20</p><p> 6.2心得體會 …………………………………………………20</p><p> 七、參考文獻………………………………………………………20</p><p><b> 一、前言</b>&l
9、t;/p><p> 1.1 單片機技術的特點及應用</p><p> 隨著大規(guī)模和超大規(guī)模集成電路技術的發(fā)展和計算機微型化的需要,將微型計算機的基本部件:中央處理器(CPU)、存儲器、輸入/輸出(I/O)接口、定時器/計數(shù)器等多種資源集成在一個半導體芯片上,使得一塊集成電力芯片就能構成一個完整的微型計算機。這種集成電路芯片被稱為單片微型計算機,簡稱單片機。單片機在結構設計上,他的軟、硬件
10、系統(tǒng)及I/O接口控制能力等方面都有獨到之處,具有較強而有效的功能。從其組成、邏輯功能上來看,單片機具備了微型計算機系統(tǒng)的基本部件。</p><p> 目前,8位高檔機和16位機在單片機應用中占主導地位,產(chǎn)品眾多,已有幾十個系列、幾百個型號,除了通用單片機以外,集成更多資源,如A/D轉換器、D/A轉換器、“看門狗”(Watchdog)電路、LCD控制器、網(wǎng)路控制模塊等,將單片機嵌入式系統(tǒng)和Internet連接起來
11、已是一種趨勢。還有專用單片機產(chǎn)品,如專門用于數(shù)據(jù)處理(圖像和語言處理等)的單片機。總之,單片機正在向微型化、低功耗、高速、集成、高集成度、多資源、網(wǎng)絡化、專用型方向發(fā)展。</p><p> 1.1.1 單片機的特點</p><p> 單片機在一塊芯片上集成了一臺微型計算機所需要的基本部件。它在硬件結構、指令功能等方面均有獨到之處,其特點如下:</p><p>
12、 性價比高。單片機性能穩(wěn)定,功能強大,價格便宜。</p><p> 體積小,集成度高、可靠性高。單片機將一臺計算機所需要的基本部件集成在一塊芯片上,減少了各部件間的連線,能大大地提高運行速度和抗干擾能力。</p><p> 控制功能強。為了,滿足工業(yè)控制的需要,單片機有很強的位處理功能。在其他的邏輯控制功能等方面,也都優(yōu)于一般的8位微處理。</p><p>
13、單片機系統(tǒng)配置靈活、方便。由于單片機帶有一定數(shù)量的接口電路,容易構成各種規(guī)模的應用系統(tǒng)。</p><p> 單片機類型多。單從ROM類型來說,單片機的只讀存儲器有ROM、EPROM、EEPROM、Flash Memory等多種,可以根據(jù)實際需要進行選擇。</p><p> 1.1.2 單片機的應用</p><p> 由于單片機具有如上所述的特點,因此在工業(yè)生產(chǎn)
14、、日常生活等諸多領域,得到了日益廣泛的應用,單片機的主要應用領域有:工業(yè)控制,如在工業(yè)生產(chǎn)過程中參數(shù)(如溫度、壓力、流量、液位等)的控制,數(shù)據(jù)處理功能于一體,如轉速測試儀、噪聲測試儀、振動測試儀及電子秤等。計算機網(wǎng)絡與通信,單片機上有并行I/O接口角兒串聯(lián)I/0接口,可用于通信接口,如單片機控制的自動呼叫應答系統(tǒng)、列車無線通信系統(tǒng)、遙測遙控系統(tǒng)等。家用電器,由于單片機體積小,控制能力強,且片內與定時器/計數(shù)器,所以廣泛應用于家用設備中。
15、如空調、洗衣機、微波爐及防盜報警等。</p><p> 設計任務要求及研究意義</p><p><b> 2.1設計任務:</b></p><p> 用AT89S52設計一個單片機控制的秒表系統(tǒng)。2位的LED數(shù)碼作為“秒表”,利用單片機的定時器、計數(shù)器定時和記數(shù)的原理,結合顯示電路、LED數(shù)碼管以及按鍵來設計計時器。將軟、硬件有機的結合起
16、來,使得系統(tǒng)能夠正確的進行加計時和減計時,數(shù)碼管能夠正確的顯示時間。</p><p><b> 2.2設計要求:</b></p><p> 2位LED數(shù)碼顯示的秒表設計,顯示時間為,00--59,以秒為單位;并設置一個按鍵來清零(00);一個計時開始按鍵,控制計時的開始(加1操作);一個復位鍵(60秒,用來倒計時);一個倒計時按鍵,表示開始逐漸減1。</p&
17、gt;<p> 2.3課題的研究意義</p><p> 通過本次課程設計加深對單片機課程的全面認識復習和掌握,對單片機課程的應用進一步的了解。</p><p> 掌握定時器、中斷的設置和編程原理。</p><p> 通過此次課程設計能夠將單片機軟硬件結合起來,對程序進行編輯,校驗。</p><p> 該實驗通過單片機的
18、定時器/計數(shù)器定時和計數(shù)原理,設計簡單的計時器系統(tǒng),擁有正確的計時、倒計時、清零、置位功能,并同時可以用數(shù)碼管顯示,在現(xiàn)實生活中應用廣泛,具有現(xiàn)實意義</p><p> 三、總體方案設計分析、討論</p><p> 本設計分為時鐘電路、按鈕電路、顯示電路和單片機四大部分,這些模塊中單片機占主控地位。時鐘電路常用的有內部時鐘方式和外部時鐘方式,但因為本設計中只需要一片單片機,所以采用內部
19、時鐘方式比較簡單。顯示電路所用的數(shù)碼管有共陰和共陽之分,不管使用何種數(shù)碼管,P0口作為I/O使用時都是需要上拉電阻才能驅動數(shù)碼管。另外,因為單片機的4個并行I/O口的輸出電流一般是1mA,短路電流為4mA左右,而數(shù)碼管的最少驅動電流也需要10mA,因而不管在使用共陰數(shù)碼管時,單片機輸出口也必須使用上拉電阻提高輸出電流,才能驅動數(shù)碼管。</p><p> 根據(jù)顯示方式的不同選擇,我們可以有幾種方案:</p&
20、gt;<p> 方案一:使用靜態(tài)顯示方式。靜態(tài)顯示方式下的數(shù)碼管的顯示字符一經(jīng)確定,相應鎖存器鎖存的斷碼輸出將維持不變,直到送入另一個字符的斷碼為止。因而此設計中使用的顯示位數(shù)使用了三個8位并行I/0口。如果另外想擴展單片機功能,則能使用的輸出管腳很是有限。</p><p> 方案二:使用動態(tài)顯示方式。這個顯示方式是將所有顯示位的段碼線的相應段并聯(lián)在一起,由一個8位I/O口控制,而各位的共陰或共
21、陰極分別由相應的I/O線控制,形成各位的分時選通。這種顯示方式,簡化了硬件電路,特別在多位數(shù)碼管顯示時尤為突出。</p><p><b> 3.1、硬件方案</b></p><p> 單片機選擇AT89S52</p><p> 采用兩個LED八段數(shù)碼顯示管分別顯示秒表的個位和十位;</p><p> P0口輸出十
22、位段碼和個位段碼,通過兩個鎖存器74HC573控制段選和位選信號。</p><p><b> 3.2、軟件方案</b></p><p> 因為當晶振頻率為12MHz時,定時/計數(shù)器最大計時時間為65536ms,所以應根據(jù)計時時間設定定時/計數(shù)器定時時間,累計合適中斷次數(shù)后執(zhí)行刷新顯示子程序;按2鍵每隔1s秒計數(shù)加1,秒計數(shù)到60自動從0開始,循環(huán)不止。按4鍵每隔1
23、s秒計數(shù)減1,秒計數(shù)到0自動從60開始,循環(huán)不止。</p><p><b> 四、硬件原理圖設計</b></p><p><b> 4.1 單片機簡介</b></p><p> 本系統(tǒng)設計采用89C52系列單片機。</p><p> AT89S52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器的
24、低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非意識存儲器制造技術制造,與工業(yè)標準的MCS-52指令集和輸出管腳相兼容(由于在微機原理中學過C-52的具體知識,這里不再詳細說明)。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89S52是一種高效的微控制器。</p><p><b> 4.2時鐘電路</b></p><p>
25、時鐘電路用于產(chǎn)生單片機工作所需要的時鐘信號,單片機本身就是一個復雜的同步時序電路,為了保證同步工作方式的實現(xiàn),電路應在唯一的時鐘信號控制下嚴格地按時序進行工作。在AT89C52芯片內部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳TXAL2,在芯片的外部通過這兩個引角跨接晶體振蕩器和微調電容,形成反饋電路,就構成了一個穩(wěn)定的自激振蕩器。 此電路采用12MHz的石英晶體。時鐘電路如下圖:</p><
26、p> 4.3LED8段數(shù)碼顯示管結構與原理</p><p> 按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管 的陽極接到一起形成公共陽極(COM)的數(shù)碼管,共陽數(shù)碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮,當某一字段的陰極為高電平時,相應字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)
27、的數(shù)碼管,共陰數(shù)碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時。</p><p><b> 數(shù)碼管結構</b></p><p> 八段LED數(shù)碼管段碼表</p><p><b> 鎖存器</b></p><p>
28、 五、軟件框圖及程序設計</p><p> 本系統(tǒng)采用89S52系列單片機為中心器件,利用其定時器/計數(shù)器定時和記數(shù)的原理,結合硬件電路如電源電路,晶振電路,復位電路,顯示電路,以及一些按鍵電路等來設計計數(shù)器,將軟、硬件有機的結合起來。其中軟件系統(tǒng)采用C語言編寫程序,并在keil中調試運行,硬件系統(tǒng)利用開發(fā)板來實現(xiàn),簡單且易于觀察,。系統(tǒng)框圖如圖所示。</p><p><b>
29、 5.1系統(tǒng)框圖</b></p><p><b> 5.2程序流程圖:</b></p><p><b> 5.3程序代碼</b></p><p> #include<reg52.h> //頭文件包含特殊功能寄存器的定義</p><p> #define uc
30、har unsigned char</p><p> #define uint unsigned int</p><p> sbit key1=P3^4; //獨立鍵盤</p><p> sbit key2=P3^5;</p><p> sbit key3=P3^6;</p><p> sbit key
31、4=P3^7;</p><p> sbit dula=P2^6; //段鎖存位</p><p> sbit wela=P2^7; //位鎖存位</p><p> uchar code table[]={</p><p> 0x3f,0x06,0x5b,0x4f,</p><p> 0x66,0x6d
32、,0x7d,0x07,</p><p><b> 0x7f,0x6f</b></p><p> }; //共陰數(shù)碼管 0-9</p><p> uchar num,num0,num1,num2,num3,num4;</p><p> /*********************************
33、************************/ </p><p> /* 延時函數(shù) */</p><p> /*********************************************************/</p><p> void delayms
34、(uint xms)</p><p><b> {</b></p><p><b> uint i,j;</b></p><p> for(i=xms;i>0;i--)</p><p> for(j=110;j>0;j--);</p><p><
35、b> }</b></p><p> /********************************************************/ </p><p> /* 數(shù)碼管顯示函數(shù) */</p><p> /**********************
36、**********************************/</p><p> void display(uchar numdis)</p><p><b> {</b></p><p> uchar shi,ge;</p><p> shi=numdis/10;</p><p>
37、; ge=numdis%10;</p><p><b> dula=1;</b></p><p> P0=table[shi];//送段顯示碼 十位數(shù)字</p><p><b> dula=0;</b></p><p> P0=0xff;//消影</p>&
38、lt;p><b> wela=1;</b></p><p> P0=0xfe;//送位選碼 </p><p><b> wela=0;</b></p><p> delayms(5);</p><p><b> dula=1;</b></p>
39、;<p> P0=table[ge]; //送段顯示碼 個位數(shù)字</p><p><b> dula=0;</b></p><p><b> P0=0xff;</b></p><p><b> wela=1;</b></p><p> P0=0xfd
40、;//送位選碼</p><p><b> wela=0;</b></p><p> delayms(5);</p><p><b> }</b></p><p> /********************************************************/ &
41、lt;/p><p> /* 初始化子函數(shù) */</p><p> /********************************************************/</p><p> void init()</p><p><b>
42、; {</b></p><p> TMOD=0x01;//定時器0工作在模式1,16位定時</p><p> TH0=(65536-50000)/256;//裝初值,50ms中斷一次</p><p> TL0=(65536-50000)%256;</p><p> EA=1;//開總中斷</p&g
43、t;<p> ET0=1;//開定時器0中斷</p><p> TR0=1;//啟動定時器0</p><p><b> }</b></p><p> /********************************************************/ </p><p>
44、; /* 鍵盤掃描函數(shù) */</p><p> /********************************************************/</p><p> void keyscan()</p><p><b> {</b></p
45、><p> if(key1==0)//第一個鍵按下</p><p><b> {</b></p><p> delayms(10);//消抖</p><p> if(key1==0)</p><p><b> {</b></p><
46、;p><b> num1=0;</b></p><p> while(!key1);//第一個鍵釋放</p><p> while(key2&&key4&&key3)</p><p><b> {</b></p><p> display(n
47、um1);//數(shù)碼管顯示00</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(key2==0)//第二個鍵按下</p><p><b&
48、gt; {</b></p><p> delayms(10);//消抖</p><p> if(key2==0)</p><p><b> {</b></p><p><b> num2=0;</b></p><p> while(!key2)
49、; //第二個鍵釋放</p><p> while(key1&&key4&&key3)</p><p><b> {</b></p><p> display(num2);//數(shù)碼管顯示00-59每秒增1</p><p><b> }</b><
50、/p><p><b> }</b></p><p><b> }</b></p><p> if(key3==0) //第三個鍵按下</p><p><b> {</b></p><p> delayms(10); //消抖<
51、;/p><p> if(key3==0)</p><p><b> {</b></p><p><b> num3=60;</b></p><p> while(!key3); //第三個鍵釋放</p><p> while(key1&&key2&
52、amp;&key4)</p><p><b> { </b></p><p> display(num3);//數(shù)碼管顯示60</p><p><b> }</b></p><p><b> }</b></p><p><b&g
53、t; }</b></p><p> if(key4==0) //第四個鍵按下</p><p><b> {</b></p><p> delayms(10);//消抖</p><p> if(key4==0)</p><p><b> {<
54、/b></p><p><b> num4=59;</b></p><p> while(!key4);//第四個鍵釋放</p><p> while(key1&&key2&&key3)</p><p><b> {</b></p>
55、<p> display(num4);//數(shù)碼管顯示59-00每秒減1</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></
56、p><p> /********************************************************/ </p><p> /* 主函數(shù) */</p><p> /*************************************************
57、*******/</p><p> void main()</p><p><b> {</b></p><p> init();//初始化</p><p><b> while(1)</b></p><p><b> {</b>&l
58、t;/p><p> keyscan();</p><p><b> }</b></p><p><b> }</b></p><p> /********************************************************/ </p><p>
59、 /* 定時器0中斷函數(shù) */</p><p> /********************************************************/</p><p> void T0_time() interrupt 1</p><p><b> {<
60、/b></p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p><b> num++;</b></p><p> if(num==20)//計時1s</p><p><b> {
61、</b></p><p><b> num=0;</b></p><p><b> num2++;</b></p><p> if(num2==60)num2=0;</p><p> if(num4==0)num4=60;</p><p><b>
62、; num4--;</b></p><p><b> }</b></p><p><b> }</b></p><p> 六、設計總結和心得體會</p><p><b> 6.1設計總結</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論