版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《單片機(jī)原理及應(yīng)用》</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 題目:倒數(shù)計(jì)數(shù)器</b></p><p> 專 業(yè): 電氣工程及其自動(dòng)化 </p><p> 班 級(jí): 10電氣 </p&
2、gt;<p> 學(xué)生姓名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p> 時(shí) 間: 2013 年 6月 19日----20 13 年 6月 28 日</p><p><b&
3、gt; 目錄</b></p><p> 第一章 設(shè)計(jì)題目分析、方案及元器件選擇3</p><p> 1.1設(shè)計(jì)任務(wù)及要求3</p><p> 1.2 方案選擇4</p><p> 1.3 元器件選擇4</p><p> 第二章 系統(tǒng)電路設(shè)計(jì)5</p><p>
4、; 2.1 設(shè)計(jì)說明5</p><p> 2.2 部分硬件方案論述5</p><p> 2.3 硬件連接圖6</p><p> 2.4 元件清單7</p><p> 2.4.1 AT89C51芯片7</p><p> 2.4.2 字符型LCD16028</p><p>
5、; 2.4.3 晶振電路10</p><p> 2.4.4 按鍵控制模塊11</p><p> 2.4.5 其他元件12</p><p> 2.5 繪制過程中遇到的問題及解決辦法13</p><p> 第三章 系統(tǒng)軟件設(shè)計(jì)14</p><p> 3.1 軟件設(shè)計(jì)14</p>
6、<p> 3.2 編程過程中遇到的問題及解決辦法15</p><p> 第四章 連接調(diào)試16</p><p> 4.1 系統(tǒng)的仿真與調(diào)試16</p><p> 第五章 心得體會(huì)17</p><p><b> 參考文獻(xiàn)19</b></p><p><b>
7、; 附錄19</b></p><p> 設(shè)計(jì)題目分析、方案及元器件選擇</p><p> 1.1 設(shè)計(jì)任務(wù)及要求</p><p> 設(shè)計(jì)任務(wù):利用AT89C51單片機(jī)結(jié)合LED顯示器設(shè)計(jì)一個(gè)簡(jiǎn)易的倒數(shù)計(jì)數(shù)器,可用來煮方便面、煮開水或小睡片刻等。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),紅色LED燈閃爍,通知倒計(jì)數(shù)終了,該做應(yīng)該做的事。</p&
8、gt;<p> 設(shè)計(jì)要求:定時(shí)鬧鐘的基本功能如下。</p><p> ● 顯示格式為“分分:秒秒”。</p><p> 用4個(gè)按鍵操作來設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。一旦按下鍵則開始倒計(jì)數(shù),當(dāng)計(jì)數(shù)為0時(shí),發(fā)出一陣音樂聲。</p><p> 程序執(zhí)行后工作指示燈LED閃爍,表示程序開始執(zhí)行,按下操作鍵K1~K4動(dòng)作如下。</p><
9、;p> ● K1--可調(diào)整倒計(jì)數(shù)的時(shí)間1~60分鐘。</p><p> ● K2--設(shè)置倒計(jì)數(shù)的時(shí)間為5分鐘,顯示“0500”。</p><p> ● K3--設(shè)置倒計(jì)數(shù)的時(shí)間為10分鐘,顯示“1000”。</p><p> ● K4--設(shè)置倒計(jì)數(shù)的時(shí)間為20分鐘,顯示“2000”。</p><p> 按下K1鍵則在LED上顯
10、示出設(shè)置畫面。此時(shí),若:</p><p> 按操作鍵K2--增加倒計(jì)數(shù)的時(shí)間1分鐘。</p><p> 按操作鍵K3--減少倒計(jì)數(shù)的時(shí)間1分鐘。</p><p> 按操作鍵K4--設(shè)置完成</p><p> 本題可以考慮用LCD來實(shí)現(xiàn),則顯示更加清楚。</p><p><b> 可擴(kuò)充功能:<
11、/b></p><p> ● 增加時(shí)鐘及鬧鈴功能</p><p> ● 增加秒表計(jì)數(shù)功能。</p><p> ● 增加萬年歷顯示“年月日”。</p><p> ● 增加多組倒計(jì)數(shù)功能。</p><p> 1.2 方案總體思路</p><p> 用單片機(jī)8051控制程序執(zhí)行,通
12、過LCD動(dòng)態(tài)掃描來顯示倒計(jì)時(shí),每次執(zhí)行中斷時(shí)判斷計(jì)時(shí)是否繼續(xù)倒計(jì)時(shí)。同時(shí)通過按鍵掃描的方式來判斷是否有輸入更改倒計(jì)時(shí)的控制信息,通過8051的處理來達(dá)到對(duì)倒計(jì)時(shí)的更新,當(dāng)?shù)褂?jì)時(shí)結(jié)束時(shí),驅(qū)動(dòng)蜂鳴器發(fā)出一首音樂。</p><p><b> 1.3 元器件選</b></p><p> 音樂倒數(shù)計(jì)數(shù)器倒數(shù)所用到的元件有:?jiǎn)纹瑱C(jī)芯片AT89C51、LCD1602液晶顯示、
13、蜂鳴器、LED燈、按鍵、電阻、電容、晶振等。</p><p><b> 系統(tǒng)電路設(shè)計(jì)</b></p><p><b> 2.1 設(shè)計(jì)說明</b></p><p> 音樂倒數(shù)計(jì)數(shù)器倒數(shù)的時(shí)間通過數(shù)字顯示,控制器使用單片機(jī)AT89C51。該計(jì)數(shù)器系統(tǒng)主要由計(jì)數(shù)器模塊、LCD顯示器模塊、蜂鳴器模塊、鍵盤模塊、復(fù)位模塊等部
14、分組成。總體設(shè)計(jì)方框圖如圖1所示。</p><p> 圖1 總體設(shè)計(jì)方框圖</p><p> 2.2部分硬件方案論述</p><p> ◆LCD1602顯示方式的方案比較。</p><p> 方案一:采用花樣顯示,花樣顯示是指LCD顯示某一屏字符時(shí),采取從左到右或者是從右到左的整屏移動(dòng)的顯示方式。在這種顯示方式下,給人的感覺就是程序是
15、在執(zhí)行的,同時(shí)如果控制好了移動(dòng)一屏的時(shí)間間隔的話,在整體視覺上可以達(dá)到很好的效果。</p><p> 方案二:采用靜態(tài)顯示,靜態(tài)顯示是指LCD顯示某一屏字符時(shí),時(shí)鐘保持當(dāng)前字符的顯示,不使用移屏顯示。便于控制,同時(shí)能夠滿足正常的顯示效果。</p><p> 由于在顯示中存在播放時(shí)間的動(dòng)態(tài)變化,這樣的話,即使是不產(chǎn)生整屏移動(dòng),也能給人動(dòng)態(tài)感,也易于控制。基于以上各種特點(diǎn),我選擇了方案二。
16、</p><p> 2.3 硬件連接圖</p><p> 電路硬件連接圖主要以單片機(jī)芯片AT89C51作為核心控制器,由字符型LCD1602顯示器、LED-RED燈、按鍵控制模塊以及其他元件(電容電阻元件、電解電容元件)等組成。且按鍵控制模塊設(shè)計(jì)中使用單個(gè)按鍵實(shí)現(xiàn)單個(gè)功能,控制方式實(shí)現(xiàn)較簡(jiǎn)單。硬件連接圖如圖2所示。</p><p> 圖2 電路硬件連接圖&l
17、t;/p><p><b> 元件清單</b></p><p> 2.4.1 AT89C51芯片</p><p> AT89C51芯片圖如下圖3所示。</p><p> 圖3 AT89C51芯片圖</p><p><b> 主要性能:</b></p><
18、;p> 與MCS-51單片機(jī)產(chǎn)品兼容 、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、 1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz 、三級(jí)加密程序存儲(chǔ)器 、 32個(gè)可編程I/O口線、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工UART串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時(shí)器 、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符 。</p><p><b> 功能特性描述:</b><
19、;/p><p> AT89C51是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在線系統(tǒng)可編程Flash,使得AT89C51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89C51具有以下標(biāo)準(zhǔn)
20、功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89C51可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8
21、 位微控制器 8K字節(jié)在系統(tǒng)可編程 Flash。</p><p> 2.4.2 字符型LCD1602</p><p> 字符型lcd1602如下圖4所示。</p><p> 圖4 LCD1602圖</p><p> 1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。VCC(15腳)和地線GND(
22、16腳),其控制原理與14腳的LCD完全一樣,各引腳符號(hào)及其功能表如下表1所示。</p><p> 表1 LCD各引腳及其功能表</p><p> 2.4.3 晶振電路</p><p> 時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn),有條不紊地一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)穩(wěn)定性。常用的
23、時(shí)鐘電路有兩種方式,一種是內(nèi)部時(shí)鐘方式,另一種是外部時(shí)鐘方式。</p><p> 單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作。在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只要外界一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。本系統(tǒng)使用的是內(nèi)部時(shí)鐘方式。晶振電路如下圖5所示。</p><p><b> 圖5 晶振電路圖</b></p>&l
24、t;p> 一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容C1、C2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。本系統(tǒng)的C1、C2的值為30pf。</p><p> 單片機(jī)在工作時(shí),有內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大
25、小是時(shí)鐘信號(hào)頻率的倒數(shù),f表示。圖5-2中的時(shí)鐘頻率為12MHz,即f=12MHz,則時(shí)鐘周期為1/12us。</p><p> 2.4.4 按鍵控制模塊</p><p> 按鍵用于控制數(shù)碼顯示、LCD顯示、揚(yáng)聲器等模塊的工作。通過掃描按鍵是否按下,來設(shè)定各模塊的工作情況,使各模塊可以在按鍵的控制下,有序地進(jìn)行工作。設(shè)計(jì)中使用單個(gè)按鍵實(shí)現(xiàn)單個(gè)功能,屬于較為簡(jiǎn)單的控制方式,在多功能系統(tǒng)設(shè)
26、計(jì)的試驗(yàn)中我們使用四個(gè)按鍵分別與單片機(jī)的p1.0、p1.1、p1.2、p1.3相連。通過按下相應(yīng)的按鍵來處理相應(yīng)的程序。如下圖6所示。</p><p> 圖6 按鍵控制模塊圖</p><p> 2.4.5 其它元件</p><p> 其它元件圖如下圖7所示。</p><p><b> 圖7 其他元件圖</b>&l
27、t;/p><p> 繪制中遇到的問題及解決辦法</p><p> 在繪圖的過程中主要出現(xiàn)的問題是有些元器件在protues中找不到,出現(xiàn)這樣的問題是對(duì)protues軟件的應(yīng)用不是很熟悉,當(dāng)遇到找不的元器件時(shí),就只有通過網(wǎng)絡(luò)來查找。</p><p><b> 系統(tǒng)軟件設(shè)計(jì)</b></p><p><b> 3
28、.1軟件設(shè)計(jì)</b></p><p> 音樂倒數(shù)計(jì)數(shù)器軟件設(shè)計(jì)部分包括程序流程圖以及源程序。主程序開始初始化,然后掃描鍵盤、復(fù)位電路和計(jì)數(shù)器。當(dāng)鍵盤按鍵有按下時(shí),調(diào)整計(jì)數(shù)器值,LCD顯示新值。當(dāng)復(fù)位鍵有按下時(shí),計(jì)數(shù)器復(fù)位為初值,重新倒計(jì)數(shù)。當(dāng)計(jì)數(shù)器值倒計(jì)為0時(shí),蜂鳴器發(fā)出聲音,計(jì)數(shù)器停止倒計(jì),程序結(jié)束。流程圖如圖8,圖9及圖10所示,源程序見附錄。</p><p><b
29、> 圖8 主程序流程圖</b></p><p> 圖9 LCD顯示流程圖 圖10 按鍵流程圖 </p><p> 3.2 編程過程中遇到的問題及解決辦法</p><p> 編寫的源程序見附錄所示。在編程的過程中,遇到了如下問題:</p><p> 按鍵的設(shè)置,怎樣設(shè)置按鍵滿足題目要求。&
30、lt;/p><p> 蜂鳴器的鈴聲設(shè)置,在倒數(shù)的時(shí)間到了后鈴聲響,怎么在程序中編寫等問題。</p><p> 解決辦法是同過網(wǎng)絡(luò)和向老師請(qǐng)教幫助解決問題,如音樂鈴聲是通過載入不同的計(jì)數(shù)初值,產(chǎn)生頻率不同的方波,輸入到蜂鳴器(SOUNER)中,使其發(fā)出頻率不同的聲音。本設(shè)計(jì)中單片機(jī)晶振為1.0592MHz,通過計(jì)算各音階頻率,可得1、2、3、4、5、6、7共7個(gè)音應(yīng)賦給定時(shí)器的初值為6458
31、0、64684、64777、64820、64898、64968、65030。在此基礎(chǔ)上,可將樂曲的簡(jiǎn)譜轉(zhuǎn)化為單片機(jī)可以“識(shí)別”的“數(shù)組譜”,進(jìn)一步加入對(duì)音長(zhǎng)、休止符等的控制量后,可以實(shí)現(xiàn)音樂的播放。</p><p><b> 連接調(diào)試</b></p><p> 4.1系統(tǒng)的仿真與調(diào)試</p><p> 本設(shè)計(jì)主要進(jìn)行軟硬件聯(lián)調(diào),軟硬件聯(lián)調(diào)
32、是指把調(diào)試無誤的軟件程序加載進(jìn)單片機(jī)芯片內(nèi)部,通上電源后,檢查是否有預(yù)期的顯示器倒數(shù)計(jì)數(shù)以及蜂鳴器報(bào)警的效果,如果沒有則需要檢測(cè)軟件是否在實(shí)現(xiàn)功能上有欠缺即程序加載是否有問題,調(diào)試前必須保證源程序準(zhǔn)確無誤,調(diào)試結(jié)果如圖11。</p><p> 圖11 系統(tǒng)的仿真與調(diào)試圖</p><p><b> 第五章 心得體會(huì)</b></p><p>
33、<b> 參考文獻(xiàn)</b></p><p> 單片機(jī)原理及應(yīng)用技術(shù) 清華大學(xué)出版社 (萬隆 巴奉麗 主編)</p><p> 單片機(jī)原理及接口技術(shù) 第三版(李朝青編)</p><p> 單片機(jī)C語言程序設(shè)計(jì)完全自學(xué)手冊(cè)(郭惠 吳迅編)</p><p> 基于Proteus的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真實(shí)例(蔣輝平 周
34、國雄 編)</p><p> http://wenku.baidu.com/view/19799cbb1a37f111f1855b12.html</p><p><b> 附錄</b></p><p><b> 源程序如下:</b></p><p> #include<reg52.h&
35、gt;</p><p> #include<intrins.h></p><p> #define time 100</p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> uint t,fl
36、ag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;</p><p> uchar num,j,i,k=0;</p><p> uchar code dis[]=" 00:00";</p><p> uint code table1[]={64580,64684,647
37、77,64820,64898,64968,65030};</p><p> sbit key1=P1^0;</p><p> sbit key2=P1^1;</p><p> sbit key3=P1^2;</p><p> sbit key4=P1^3;</p><p> sbit P1_4=P1^4;&l
38、t;/p><p> sbit RS=P2^0;</p><p> sbit RW=P2^1;</p><p> sbit E=P2^2;</p><p> sbit led_red=P2^3;</p><p> void write_time(uint addr,uint date);</p>&l
39、t;p><b> //延時(shí)函數(shù)</b></p><p> void delay(uint z)</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p>
40、;<p> for(y=110;y>0;y--);</p><p><b> }</b></p><p><b> //延時(shí)1S</b></p><p> void delay1(void)</p><p><b> {</b></p>
41、<p> uchar a,b,c;</p><p> for(c=13;c>0;c--)</p><p> for(b=247;b>0;b--)</p><p> for(a=142;a>0;a--);</p><p><b> _nop_();</b></p>&
42、lt;p><b> }</b></p><p> //1602寫命令函數(shù)</p><p> void write_com(uchar com)</p><p><b> {</b></p><p><b> RS=0;</b></p><p&
43、gt;<b> P3=com;</b></p><p><b> delay(5);</b></p><p><b> E=1;</b></p><p> delay(10);</p><p><b> E=0;</b></p>&
44、lt;p><b> }</b></p><p> //1602寫數(shù)據(jù)函數(shù)</p><p> void write_date(uchar date)</p><p><b> {</b></p><p><b> RS=1;</b></p><
45、p><b> P3=date;</b></p><p><b> delay(5);</b></p><p><b> E=1;</b></p><p> delay(10);</p><p><b> E=0;</b></p>
46、<p><b> }</b></p><p><b> //按鍵1處理函數(shù)</b></p><p> void KEY1()</p><p><b> {</b></p><p> while(flag1)</p><p><
47、;b> {</b></p><p> if(key2==0)</p><p><b> {</b></p><p> delay(time);</p><p> if(key2==0)</p><p><b> { </b></p>
48、<p> if(minute<=59)</p><p> minute=minute+1;</p><p> write_time(7,minute);</p><p><b> }</b></p><p><b> }</b></p><p>
49、 if(key3==0)</p><p><b> {</b></p><p> delay(time);</p><p> if(key3==0)</p><p><b> {</b></p><p> if(minute>0)</p>&l
50、t;p> minute=minute-1;</p><p> write_time(7,minute);</p><p><b> }</b></p><p><b> }</b></p><p> if(key4==0)</p><p><b>
51、 {</b></p><p> delay(150);</p><p> if(key4==0)</p><p><b> {</b></p><p><b> flag1=0;</b></p><p><b> flag =1;</b&
52、gt;</p><p><b> TR0=1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b&
53、gt;</p><p><b> //按鍵2處理函數(shù)</b></p><p> void KEY2()</p><p><b> {</b></p><p><b> minute=5;</b></p><p> write_time(7,mi
54、nute);</p><p> while(flag2)</p><p><b> {</b></p><p> if(key4==0)</p><p><b> {</b></p><p> delay(time);</p><p> i
55、f(key4==0)</p><p><b> {</b></p><p><b> flag2=0;</b></p><p><b> flag =1;</b></p><p><b> TR0=1;</b></p><p&g
56、t;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> //按鍵3處理函數(shù)</b></p><
57、p> void KEY3()</p><p><b> {</b></p><p> minute=10;</p><p> write_time(7,minute);</p><p> while(flag3)</p><p><b> {</b><
58、/p><p> if(key4==0)</p><p><b> {</b></p><p> delay(time);</p><p> if(key4==0)</p><p><b> {</b></p><p><b> fla
59、g3=0;</b></p><p><b> flag =1;</b></p><p><b> TR0=1;</b></p><p><b> }</b></p><p><b> }</b></p><p>
60、<b> }</b></p><p><b> }</b></p><p><b> //按鍵4處理函數(shù)</b></p><p> void KEY4()</p><p><b> {</b></p><p> minu
61、te=20;</p><p> write_time(7,minute);</p><p> while(flag4)</p><p><b> {</b></p><p> if(key4==0)</p><p><b> {</b></p><
62、;p> delay(150);</p><p> if(key4==0)</p><p><b> {</b></p><p><b> flag4=0;</b></p><p><b> flag =1;</b></p><p><
63、;b> TR0=1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> v
64、oid write_time(uint addr,uint date)</p><p><b> {</b></p><p> uint ge,shi;</p><p> ge=date%10;</p><p> shi=date/10;</p><p> write_com(0x80+
65、addr);</p><p> write_date(0x30+shi);</p><p> write_date(0x30+ge);</p><p> if(addr==7&&date==0)</p><p><b> j=1;</b></p><p> if(j==1
66、&&addr==10&&date==0)</p><p><b> {</b></p><p><b> flag0=1;</b></p><p><b> TR0=0;</b></p><p><b> TR1=1;</
67、b></p><p><b> flag5=1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> //初始化函數(shù)</b></p><p> void in
68、it()</p><p><b> { </b></p><p><b> P1=0xff;</b></p><p><b> RW=0;</b></p><p> write_com(0x38);</p><p> write_com(0x0
69、c);</p><p> write_com(0x06);</p><p> write_com(0x80);</p><p> TMOD=0x11;</p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><
70、p><b> TH1=0xfc;</b></p><p><b> TL1=0x44;</b></p><p><b> ET1=1;</b></p><p><b> ET0=1;</b></p><p><b> EA=1;&
71、lt;/b></p><p><b> flag0=1;</b></p><p> for(num=0;num<12;num++)</p><p><b> {</b></p><p> write_date(dis[num]);</p><p> de
72、lay(20);</p><p><b> }</b></p><p><b> }</b></p><p> void start()</p><p><b> {</b></p><p> if(key1==0)</p>&l
73、t;p><b> {</b></p><p> delay(time);</p><p> if(key1==0)</p><p><b> {</b></p><p><b> flag0=0;</b></p><p><b&
74、gt; flag1=1;</b></p><p><b> KEY1();</b></p><p><b> }</b></p><p><b> }</b></p><p> if(key2==0)</p><p><b&g
75、t; {</b></p><p> delay(time);</p><p> if(key2==0)</p><p><b> {</b></p><p><b> flag0=0;</b></p><p><b> flag2=1;<
76、;/b></p><p><b> KEY2();</b></p><p><b> }</b></p><p><b> }</b></p><p> if(key3==0)</p><p><b> {</b>&
77、lt;/p><p> delay(time);</p><p> if(key3==0)</p><p><b> {</b></p><p><b> flag0=0;</b></p><p><b> flag3=1;</b></p>
78、;<p><b> KEY3();</b></p><p><b> }</b></p><p><b> }</b></p><p> if(key4==0)</p><p><b> {</b></p><p
79、> delay(150);</p><p> if(key4==0)</p><p><b> {</b></p><p><b> flag0=0;</b></p><p><b> flag4=1;</b></p><p><b
80、> KEY4();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void write_time0()</p><p><b&
81、gt; {</b></p><p> minute=minute-1;</p><p> write_time(7,minute);</p><p> write_time(10,59);</p><p> flag=0; </p><p><b> }</b><
82、;/p><p> void counter()</p><p><b> {</b></p><p><b> if(t==20)</b></p><p><b> {</b></p><p> led_red=led_red^1;</p&g
83、t;<p> if(flag==1)</p><p> write_time0();</p><p><b> t=0;</b></p><p> second=second-1;</p><p> write_time(10,second); </p><p> if(
84、k==1&&second==59)</p><p><b> {</b></p><p> if(minute>0) </p><p> minute=minute-1;</p><p> write_time(7,minute);</p><p><b&
85、gt; }</b></p><p> if(second==0)</p><p><b> {</b></p><p><b> k=1;</b></p><p> second=60;</p><p><b> }</b>&l
86、t;/p><p><b> }</b></p><p><b> }</b></p><p> int main()</p><p><b> {</b></p><p><b> init();</b></p>
87、<p><b> while(1)</b></p><p><b> {</b></p><p> while(flag0)</p><p><b> start();</b></p><p> counter();</p><p>
88、; while(flag5)</p><p><b> {</b></p><p><b> delay1();</b></p><p><b> i++;</b></p><p><b> if(i>7)</b></p>&
89、lt;p><b> i=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p&
90、gt;<p> void inter0() interrupt 1</p><p><b> {</b></p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p><b> t++;</b>
91、;</p><p><b> }</b></p><p> void initer1() interrupt 3</p><p><b> {</b></p><p> TH1=table1[i]/256;</p><p> TL1=table1[i]%256;&l
92、t;/p><p> P1_4=~P1_4;</p><p> if(key4==0)</p><p><b> {</b></p><p> delay(100);</p><p> if(key4==0)</p><p><b> {</b>
93、</p><p><b> TR1=0;</b></p><p><b> flag5=0;</b></p><p><b> k=0;</b></p><p><b> j=0;</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 倒數(shù)計(jì)數(shù)器單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)----手動(dòng)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器
- 單片機(jī)計(jì)數(shù)器課程設(shè)計(jì)報(bào)告
- 基于單片機(jī)lcd顯示的音樂倒數(shù)計(jì)數(shù)器課程設(shè)計(jì)論文
- 單片機(jī)課程設(shè)計(jì)----語言報(bào)數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)(語言報(bào)數(shù)計(jì)數(shù)器)
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)易頻率計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)外部脈沖計(jì)數(shù)器
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂倒數(shù)計(jì)數(shù)器
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂倒數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)報(bào)告(零件計(jì)數(shù)器)
- 基于單片機(jī)的頻率計(jì)數(shù)器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)00-99加計(jì)數(shù)器
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂倒數(shù)計(jì)數(shù)器.doc
- 課程設(shè)計(jì)--簡(jiǎn)易的倒數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)---基于51單計(jì)時(shí)計(jì)數(shù)器系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于51單計(jì)時(shí)計(jì)數(shù)器系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--00-99加計(jì)數(shù)器程序設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-00-99手動(dòng)計(jì)數(shù)器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論