單片機課程設計帶提醒可調時鐘_第1頁
單片機課程設計帶提醒可調時鐘_第2頁
單片機課程設計帶提醒可調時鐘_第3頁
免費預覽已結束,剩余31頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、信息與電氣工程學院課程設計說明書(2013/2014學年第 二 學期)課程名稱:單片機應用課程設計題 目:帶提醒功能的可調時鐘專業(yè)班級:學生姓名:學 號:指導教師 :設計周數(shù):2周設計成績 :2014年6月26日、課程設計目的2、課程設計正文21. 任務要求說明 .21.1、 主要任務 .21.2、 技術要求 .21.3、 設計思路 .22. 硬件設計2.1 器件說明2.1 1、所需器件32.1.2、STC90C52R(說明.32.1.3、數(shù)碼管說明.42.2原理簡介52.2.1、原理介紹.52.2.2、電路原理圖52.3單元模塊設計.62.3.1時間顯示模塊62.3.2按鍵調時模塊72.3.

2、3晶振驅動模塊72.3.4蜂鳴器響時模塊72.4參數(shù)計算83. 軟件設計 .83.1開發(fā)軟件 Keil C51 uVision3 簡介.83.2單片機程序燒寫軟件.93.3參考程序104.軟硬件調試16三、課程設計總結.16四、參考文獻.17帶提醒功能的時鐘單片機設計1課程設計目的1.1用單片機課程及已學電子電路知識設計一簡易時鐘顯示裝置,包括電路圖的設計和制版等。1.2進一步熟悉和掌握單片機的結構及工作原理。1.3掌握單片機的接口技術及相關外圍芯片的外特性,控制方法。1.4通過課程設計,掌握以單片機核心的電路設計的基本方法和技術,了解有關電路參數(shù)的計算方法。1.5通過實際程序設計和調試,逐步

3、掌握模塊化程序設計方法和調試技術。1.6通過完成一個包括電路設計和程序開發(fā)的完整過程,使學生了解開發(fā)一單片機應用系統(tǒng)的全過程,為今后從事相應打下基礎。1.7初步學會一些設計思想和實踐技能,從設計過程中領悟到相互合作的重要性。2、課程設計正文2.1任務及要求說明主要任務設計并制作出一個以單片機為核心的計時控制系統(tǒng):1)確定總體設計方案2)設計鍵盤輸入電路3)設計顯示電路4)合理分配地址,編寫系統(tǒng)程序5)利用Protuse設計硬件電路原理圖6)軟硬件聯(lián)機調試技術要求設計一個可顯分鐘 2位,秒2位的可調時鐘,且在計時過程中允許設置響鈴時刻,不影響定時過程。根據(jù)調節(jié)鍵按下的次數(shù),可依次選中分十位,分個

4、位,秒十位,秒個位;根據(jù) 設置鍵按下的次數(shù),可依次設置響鈴時刻的分十位,分個位,秒十位,秒個位;根據(jù)按下調 節(jié)鍵還是設置鍵,加 1鍵用于調節(jié)顯示/響鈴時刻設置的分十位,分個位,秒十位,秒個位。要求按下設置鍵后,數(shù)碼管的顯示信息為設定的響鈴時刻,計時并不停止,一旦按下啟動/確認鍵,顯示信息為當前時刻。設計思路1、 時間的顯示:單片機 P0.0 P0.3控制位選,可分別選通四只共陽數(shù)碼管。P0.4P0.7控制段碼管,將數(shù)據(jù)送給數(shù)碼管顯示時間。2、 時間的調整:設置 6個按鈕,分別由P2.0 P2.5控制,其編號分別是k1到k6。3、蜂鳴器:單片機 P2.7 口接蜂鳴器電路。4、復位電路:單片機 R

5、ST接復位電路。5、晶振電路:XTAL1, XTAL2接振蕩電路。2.2硬件設計器件說明電阻:1K (12 個)、3.3K(1 個)、100( 1 個)、6.5K( 1 個)按鍵開關:7個電容:20pF ( 2個)電解電容:10uf(1個)晶振:6MHZ( 1個)三極管:NPN(5個)共陰極數(shù)碼管:4個萬能電路板:1個芯片:STC90C52A( 1 片)4511( 1 片)蜂鳴器:1個LED: 3 個2.3方案設計2.3.1 STC90C52AD的功能參數(shù)介紹2 2S34455St77用膽11 113212 cB J5 2434'15 汕«吋小V r 5旳pimEADcaP1

6、2ADC2PHADaPM AM4P15 ADC5PI 畑DADC Pl-TiDADC"PSfiRxD 閃1OD 如EiP3i'2m PCTO pjAtm p強點P3-TORESET xn二Al 1)7*12All 523Al 2.< 2 ?:_A14理百AH KTsA WLEM3代C:STC90C52A是由宏晶公司生產(chǎn)的高性能八位單片機。如圖一所示。該芯片采用FLASH存儲技術,內部具有 8KB字節(jié)快閃存存儲器,采用DIP封裝,是目前在中小系統(tǒng)中應用最為普及的單片機。STC90C52A可構成真正的單片機最小應用系統(tǒng),縮小系統(tǒng)體積,增加系統(tǒng)的可靠性,降低系統(tǒng)的成本。只要程

7、序長度小于8K,四個I/O 口全部提供給用戶。可用 5V電壓編程,而且擦寫時間僅需10毫秒,僅為8751/87C51的擦除時間的百分之一,與8751/87C51的12V電壓擦寫相比,不易損壞器件,沒有兩種電源的要求, 改寫時不拔下芯片,適合許多嵌入式控制領域。工作電壓范圍(2.7V6V),全靜態(tài)工作,工作頻率寬在OHz24MHz之間,比8751/87C51等51系列的6MH 12MHz更具有靈活性,系 統(tǒng)能快能慢。STC90C52AD芯片提供三級程序存儲器加密,提供了方便靈活而可靠的硬加密 手段,能完全保證程序或系統(tǒng)不被仿制。P0 口是三態(tài)雙向口,通稱數(shù)據(jù)總線口,因為只有該口能直接用于對外部存

8、儲器的讀/寫操作。STC90C52AD單片機為40引腳芯片如上圖所示,在本設計中,主要用到P0 口、P10 口。P0 口可作為通用I/O 口,但須外接上拉電阻,所以在設計顯示數(shù)碼管我們避免了使用P0 口這樣大大簡化了動態(tài)顯示電路。P1 口: 8位、雙向I/0 口,內部含有上拉電阻。P1 口可作普通I/O 口。輸出緩沖器可驅動四個TTL負載;用作輸入時,先將引腳置1 ,由片內上拉電阻將其抬到高電平。P1 口的引腳可由外部負載拉到低電平,通過上拉電阻提供電流。在FLASH并行編程和校驗時,P1 口可輸入低字節(jié)地址。在串行編程和效驗時,P1.5/MO-SI,P1.6/MISO 和P1.7/SCK分別

9、是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。P2 口:具有內部上拉電阻的 8位雙向I/O 口。P2 口用做輸出口時,可驅動4各TTL負載;用做輸入口時,先將引腳置1,由內部上拉電阻將其提高到高電平。若負載為低電平,則通過內部上拉電阻向外部輸出電流。在FLASH并行編程和校驗時,P2 口可輸入高字節(jié)地址和某些控制信號。P3 口:具有內部上拉電阻的8位雙向口。P3 口用做輸出口時,輸出緩沖器可吸收4各TTL的灌電流;用做輸入口時,首先將引腳置1,由內部上拉電阻抬位高電平。若外部的負載是低電平,則通過內部上拉電阻向輸出 電流。在本設計中,P3 口作為時間設置的 4按鍵輸入,因為有上拉電阻,所以可以通過按 鍵

10、直接接地,簡化了電路。在與FLASH并行編程和校驗時,P3 口可輸入某些控制信號。P3 口除了通用I/O 口功能外,還有替代功能如表 1所示。表1 P3 口的第二功能端口引腳各個功能P3.0RXD串行口輸入端)P3.1TXD(串行口輸出端)P3.2INT0(外部中斷0請求輸入端,低電平有效 )P3.3INT1(外部中斷1請求輸入端,低電平有效)P3.4T0(定時/計數(shù)器0計數(shù)脈沖輸入端)P3.5T1(定時/計數(shù)器1計數(shù)脈沖輸入端)P3.6WR外部數(shù)據(jù)存儲器寫選通信號輸出端,低電平有效)P3.7RD(外部數(shù)據(jù)存儲器讀選通信號輸出端,低電平有效)單片機使用宏晶公司支持串口下載程序(ISP)的單片機

11、,為STC90C52A課程設計配發(fā)的小電路板(ISP-MCU Basic circuit )電路原理圖見下圖。該板作為課程設計的核心電路 板使用,板上有單片機及附屬電路,RS-232通信驅動電路,高低電平測試電路等。課程設計電路中需要的其他電路在此基礎上擴展,通過插孔連接。課程設計配發(fā)的小電路板(ISP-MCU Basic circuit )電路原理圖見下圖。擴展電路在萬用板上制作用四位數(shù)碼管顯示分鐘與秒,每秒用一個LED閃爍一下;用了6個按鍵,一個是調節(jié)鍵,一個是加1鍵,一個是減1鍵,一個是設置鍵,一個是關玲鍵。時間要精確,整點報時,聲音間隔1秒,并且可以調整時間調整位閃爍提示。C1C21

12、uF1341110C1 +C1C2 +C2-T1inT2inR1outR2outVccVs+Vs-GNDT1outT2outR1 inR2 inDBDCD DSR RXDRTS TXD CTS DTRRIGND73 TXDU1RS232 -DB9495rGND5VCC I'LowTSRR2ps10 uF10 uFC4C315VCCU2 MAX2 322r 147 TXDGND|138 RX DVCC6.8K22pCRYC12 22334455667788101011111212013131414151516161717411991918"22p20rGNDP10/T2/ADC

13、0AD0/P00P11/T2 E/ADC1AD1/P01P12/ADC2AD2/P02P13/ADC3AD3/P03P14/ADC4AD4/P04P15/ADC5AD5/P05P16/Rx D/ADC6AD6/P06P1 7/Tx D/ADC7AD7/P07P30/Rx DA8/P20P31/Tx DA9/P21P32/INT0A1 0/P2 2P33/INT1A1 1/P2 3P34/CT0A1 2/P2 4P35/CT1A1 3/P2 5P36/WRA1 4/P2 6P37/RDA1 5/P2 7RESETEA/P46XT1ALE/P4 5XT2PSEN/P44GNDVCCSTC90C52

14、AD9393383837373636353534343332322121222223232424252526262727282831313030A 292940:PS一一 JL11H卜卜Hvcc24272426242524242423F7U4F7U47cF7U4F7U4!3.3 KLtst©低電平測試端HtstR3 3.3K高電平測試端-GNDHigh單片機基本配置板電路原理圖擴展電路用到得器件:6個按鍵,一個是調節(jié)鍵,一個是設置鍵,一個是加1鍵,一個是減1鍵,一個關鈴鍵;四個 DPY7-SEG DP共陰極動態(tài)數(shù)碼管;五個NPN三極管;12個1K歐姆的電阻;導線。每各引腳可吸收8各T

15、TL的灌電流。作為輸入時,首先應將引腳置1。P0也可用做訪問 外部程序存儲器和數(shù)據(jù)存儲器時的低 8位地址/數(shù)據(jù)總線的復用線。在該模式下, P0 口含有 內部上拉電阻。在 FLASH編程時,P0 口接收代碼字節(jié)數(shù)據(jù);在編程效驗時, P0 口輸出代碼 字節(jié)數(shù)據(jù)(需要外接上拉電阻)。232綜合電路設計動態(tài)顯示控制電路采用單片機的TO定時器,使其工作在方式1,產(chǎn)生一個50ms定時中斷,循環(huán)20次,到1s時,秒加1;秒到60時,分加1,秒清零;分到60時,秒清零,分清零。數(shù)碼管采用 動態(tài)顯示,一個掃描周期共循環(huán)四次,依次顯示秒的低位、秒的高位、分的低位、分的高位, 每次顯示延時5ms。這期間要將不同的數(shù)

16、送到 P1 口高四位,以及將 P2 口低四位的不同位置 1。調節(jié)時,調用相應的子程序,來完成功能。2.4單元電路設計241 STC90C52AD242 動態(tài)顯示驅動設計數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅動是將所有數(shù)碼管的 8個顯示筆劃"a, b, c, d , e, f, g , dp"的同名端連在一起,如圖所示。LED顯示器由8段發(fā)光二極管組成,排列成8字形狀,稱為8段LED顯示器。為了顯示數(shù)字或符號,要為LED顯示器提供代碼,即字形代碼。七段發(fā)光二極管,再加上一個小數(shù)點(dp )位,共計8段,因此提供的字形代碼的長度正好是一個字節(jié)。243

17、 時鐘產(chǎn)生單元52單片機的時鐘信號通常用兩種電路形式 得到:內部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器(簡 稱晶振)或陶瓷諧振器,就構成了內部振蕩方式。 由于單片機內部有一個高增益反相放大器,當外接晶振后,就構成了自激振蕩器并產(chǎn)生振蕩時鐘 脈沖。內部振蕩方式的外部電路如下圖所示。圖中,電容器 Col,C02起穩(wěn)定振蕩頻率、 快速起振的作用,其電容值一般在5-30pF。晶振頻率的典型值為 12MHz采用6MHz的情況也 比較多。內部振蕩方式所得的時鐘情號比較穩(wěn) 定,實用電路中使用較多。 外部振蕩方式是把外 部已有的時鐘信號弓I入單片機內。這種方式適宜用來使單片機的時鐘

18、與外部信號保持同步。244 蜂鳴器電路單元譯碼單元I«U2 16H -UfQ <w*u_i < p u q wM 二汕:4543Jfl'TOfiaTOfl1 1l L 丄 iIS M i3 1? Et tb 9CD45111 2 :1 BIFIII1 1Vcc f S o bed cAl A2 CT ffl LE 人3 M Gr(D其功能介紹如下:BI : 4腳是消隱輸入控制端,當BI=0時, 不管其它輸入端狀態(tài)如何,七段數(shù)碼管均處于熄滅(消 隱)狀態(tài),不顯示數(shù)字。LT: 3腳是測試輸入端,當 BI=1,LT=0時,譯碼輸出全為1,不管輸入DCBA狀態(tài)如 何,七段

19、均發(fā)亮,顯示“ 8”。它主要用來檢測數(shù)碼管是否損壞。LE:鎖定控制端,當 LE=0時,允許譯碼輸出。LE=1時譯碼器是鎖定保持狀態(tài),譯碼器輸出被保持在LE=0時的數(shù)值。A1、A2、A3、A4、為 8421BCD碼輸入端。a、b、c、d、e、f、g :為譯碼輸出端,輸出為高電平 1有效。按鍵電路單元247 動態(tài)顯示控制電路單元如圖所示另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出

20、字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為5ms。2.5參數(shù)計算定時器初值計算定時器0設為16位定時器。外部為6兆的晶體振蕩器,故而可知一個機器周期是1微秒。分析:已知fosc = 12MHz貝U:(機器周期)1Tm=12Tc=12/12MHz=1 uS5mS = 500016位定時器最大數(shù)值為:65536 (=0FFFFH+1)故選擇方式1工作可以滿足要求。計算初值:65536 5000=60536=3CB0H定時器0高八位和第八位分別裝入初值TH0=0eeH; TL0=00H。

21、每5ms定時器溢出一次,中斷 200次剛好1s,秒顯示加1.2.6系統(tǒng)調試硬件調試時可先檢查印制板及焊接的質量情況,在檢查無誤后可通電檢查 LED顯示器的點亮狀況。若亮度不理想,可以調整P1 口的電阻大小,一般情況下取200 Q電阻即可獲得滿意的亮度效果。實驗室制作時,可結合示波器測試晶振及P1,P2端口的波形情況進行綜合硬件測試分析。硬件調試:硬件調試是利用DVCC實驗與開發(fā)系統(tǒng)、基本測試儀器(萬用表、示波器等),檢查用戶系統(tǒng)硬件中存在的故障。硬件調試可分為靜態(tài)調試與動態(tài)調試兩步進行。靜態(tài)調試:是在用戶系統(tǒng)未工作時的一種硬件檢測。第一步:目測。檢查外部的各種元件或者是電路是否有斷點。第二步:

22、用萬用表測試。先用萬用表復核目測中有疑問的連接點,再檢測各種電源線與地線之間是否有短路現(xiàn)象。第三步:加電檢測。給板加電,檢測所有插座或是器件的電源端是否符合要求的值第四步:聯(lián)機檢查。因為只有用單片機開發(fā)系統(tǒng)才能完成對用戶系統(tǒng)的調試。動態(tài)調試:是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件內部故障、器件連接邏輯錯誤等的一種硬件檢查。動態(tài)調試的一般方法是由近及遠、由分到合。由分到合是指首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊,當調試電路時,與該元件無關的器件全部從用戶系統(tǒng)中去掉,這樣可以將故障范圍限定在某個局部的電路上。當各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,在對各塊電路功能及各

23、電路間可能存在的相互聯(lián)系進 行調試。由分到合的調試完成。由近及遠是將信號流經(jīng)的各器件按照距離單片機的邏輯距離 進行由近及遠的分層, 然后分層調試。調試時,仍采用去掉無關元件的方法,逐層調試下去,就會定位故障元件了。2.7原理簡介2.7.1 原理介紹(1) 初始時,4個數(shù)碼管顯示全為 0,并且秒顯示數(shù)碼管最后一位每秒鐘加1.此時, 單片機內部定時器 0計時,每5ms溢出一次,200次中斷秒顯加一。單片機P0 口不斷向4511 送數(shù)據(jù)驅動數(shù)碼管顯示。(2) 按下S2時,系統(tǒng)進入調節(jié)切換模式。按 S2 一下調分十位,按 S1兩下調分個位, 三次調節(jié)秒十位,四次調節(jié)秒個位。S4、S5分別為加數(shù)和減數(shù)。

24、 S1為確認開始鍵,按下后 系統(tǒng)計時開始。(3)進入調整時間模式時,數(shù)碼管閃爍顯示提示。2.8軟件設計2.8.1 開發(fā)軟件 Keil C51 uVision4簡介Keil UVISION2 是眾多單片機應用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS-51架構的芯片,它集編輯,編譯,仿真等于一體,同時還支持、PLM匯編和C語言的程序設計,界面友好,易學易用,在調試程序,軟件仿真方面也有很強大的功能。Keil C51集成開發(fā)環(huán)境主要由菜單欄、工具欄、源文件編輯窗口、工程窗口和輸出窗口五部分組成。工具欄為一組快捷工具圖標,主要包括基本文件工具欄、建造工具欄和調試工具欄,基本文件工具欄包括新

25、建、打開、拷貝、粘貼等基本操作。建造工具欄主要包括文件編譯、目標文件編譯連接、所有目標文件編譯連接、目標選項和一個目標選擇窗口。調試工具欄位于最后,主要包括一些仿真調試源程序的基本操作,如單步、復位、全速運行等。在工具欄下面,默認有三個窗口。左邊的工程窗口包含一個工程的目標(target )、組(group )和項目文件。右邊為源文件編輯窗口,編輯窗口實質上就是一個文件編輯器,我們可在這里對源文件進行編輯、修改、粘貼等。下邊的為輸出窗口,源文件編譯之后的結果顯示在輸出窗口中,會出現(xiàn)通過或錯誤(包括錯誤類型及行號)的提示。如果通過則會生成“ HEX格式的目標文件,用于仿真或燒錄芯片。MCS-51

26、單片機軟件Keil C51開發(fā)過程為: 建立一個工程項目,選擇芯片,確定選項。 建立匯編源文件或 C源文件。 用項目管理器生成各種應用文件。 檢查并修改源文件中的錯誤。 編譯連接通過后進行軟件模擬仿真或硬件在線仿真。單片機程序調試軟件STC90C52AD系列單片機大部分具有在系統(tǒng)可編程特性,單片機在用戶系統(tǒng)上即可在線調試用戶程序,而無需將單片機從已經(jīng)生產(chǎn)好的產(chǎn)品上拆下,在用通用編程器進行調試程Keil C51軟件的運行界面序。大部分STC90C50AD系列單片機在銷售給用戶之前已經(jīng)在單片機系統(tǒng)內部固化了ISP系統(tǒng)引導程序配合PC端得控制程序即可將用戶的程序代碼下載進單片機內部,故無需編程器 燒

27、寫程序。系統(tǒng)分析通過軟件編程,將相應的端口賦成變量的形式。分別通過調用中斷子程序,動態(tài)顯示子程序,時間調整子程序,整點報時子程序等來控制各端口的輸出,以達到理想的效果。系統(tǒng)設計主程序的程序流程圖:系統(tǒng)實施軟件調試是通過對程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并 加以排除糾正的過程。可以利用仿真器加以調試,對系統(tǒng)單個單元進行調試,當單元電路成功后,在對整個程 序調試,最后在用CPU芯片調試。最后本次課設實現(xiàn)了簡易時鐘顯示,可以實現(xiàn)整點報時,可以調整分鐘,秒的顯示位及調整位的閃爍。2.9參考程序、原理圖及顯示結果:2.9.1 參考程序#in elude <reg51.h&

28、gt;#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit qid ong = P2A0;sbit tiaojie =卩2人1;sbit shezhi =卩2人2;sbit jiayi =卩2人3;sbit jia nyi =卩2人4;sbit gua nli ng =卩2人5;sbit BEEP = P2A7;/蜂鳴器sbit xia n1 = P0A0;sbit xia n2 = P0A1;sbit xia n3 = P0A2;sbit xia n4 = P0A3;charKeyCo un t=1,fe nshi=0

29、,fen ge=0,miaoshi=0,miaoge=0 ,fen 1shi=0 ,fen 1ge=0,miao1shi=0,miao1ge=0,l in g=0; uchar flag=0,flag1=0,flag2=0,flag3=0,flag4=0,flag5=0,flag6=1;uchar flag7=1,flag8=1,flag9=1,flag10=1,flag11=1;uchar dua nxua n=0,sha n=0;uchar display = 0x00,0x00,0x00,0x00,0x00,0x00,0x00;uchar display2 = 0x00,0x00,0x0

30、0,0x00,0x00,0x00,0x00,0x00;/*延時函數(shù)*void Delay(ui nt num)/ 延時函數(shù)while( -num );/* 蜂鳴器響一聲*void beep()if(sha n%2=0)BEEP=1; else BEEP=0; /關閉蜂鳴器/* 延時函數(shù)1*/void delay1( uint ms)un sig ned char n,j;while(ms-)for(n = 0; n <10; n+)for(j=100;j>0;j-);/*顯示函數(shù)*void play()P0=fe nshi<<4;xia n1=1;Delay(70);P

31、0=fe nge<<4;xia n2=1;Delay(70);P0=miaoshi<<4;xia n3=1;Delay(70);P0=miaoge<<4;xia n4=1;Delay(70);/*主函數(shù)*劉main ()TMOD=0x01;定時TH0=0x4c; TLO=OxO4; /50ms EA=1; ET0=1;PO=OxOf;BEEP=O;while(1)if(qid on g=0&&flag6=1)delay1(2);if(qido ng=0&&flag6=1) flag6=0;KeyCou nt=1;flag1+;

32、if(flag 1=4)flag1=0;if(qido ng=1)flag6=1;if(tiaojie=0&& flag7=1)delay1(2);if(tiaojie=0&& flag7=1)flag7=0;KeyCou nt=2;flag2+;if(flag2=5)flag2=1; if(tiaojie=1)flag7=1;if(shezhi=O&&flag8=1)delay1(2);if(shezhi=0&&flag8=1)flag8=0;KeyCou nt=3;flag3+;if(flag3=5)flag3=1;if(sh

33、ezhi=1)flag8=1;if(fen shi=fe nlshi &&m iaoshi=miao1shi&&fen ge=fe nlge&&m iaoge=miao1ge&&li ng=10) flag4=1;if(flag4=1)beep();if(flag5=60)flag4=0;flag5=0;BEEP=0;if(gua nlin g=0&& flag9=1)delay1(2);if(gua nlin g=0&& flag9=1)flag9=0;flag4=0;flag5=0;BEEP=0

34、;if(gua nli ng=1)flag9=1;switch (KeyCou nt)case 1: if(flag1=O)play();TRO=O;停止中斷if(flag 仁=1)flag=1;TR0=1;啟動中斷if(flag 仁=2)play();TR0=0;if(flag 仁=3)flag=1;TR0=1;break;case 2:flag 1=2;if(flag2=1)flag=2;if(jiayi=0&&flag10=1)delay1(2);if(jiayi=0&&flag10=1)flag10=0;fe nshi+; if(fen shi=6)fe

35、 nshi=0; if(jiayi=1)flag10=1;if(jia nyi=0&&flag11=1)delay1(2);if(jia nyi=0&&flag11=1)flag11=0;fe nshi-; if(fen shi<0 )fen shi=5; if(jia nyi=1)flag11=1; if(flag2=2)flag=3;if(jiayi=0&& flag10=1)delay1(2);if(jiayi=0&&flag10=1)flag10=0;fe nge+;if(fen ge=10)fe nge=O;if(

36、jiayi=1)flag10=1;if(jia ny i=0&&flag11=1)delay1(2);if(jia nyi=0&&flag11=1)flag11=0;fe nge-;if(fen ge<0 )fen ge=9; if(jia nyi=1)flag11=1;if(flag2=3)flag=4;if(jiayi=0&&flag10=1)delay1(2);if(jiayi=0&&flag10=1)flag10=0;miaoshi+; if(miaoshi=6)miaoshi=0; if(jiayi=1)flag1

37、0=1;if(jia nyi=0&&flag11=1)delay1(2);if(jia nyi=0&&flag11=1)flag11=0;miaoshi-; if(miaoshi<0)miaoshi=5; if(jia nyi=1)flag11=1;if(flag2=4)flag=5;if(jiayi=0&& flag10=1)delay1(2);if(jiayi=O&&flag10=1)flag10=0;miaoge+; if(miaoge=10)miaoge=0; if(jiayi=1)flag10=1;if(jia n

38、y i=0&&flag11=1)delay1(2);if(jia ny i=0&&flag11=1)flag11=0;miaoge-;if(miaoge<0)miaoge=9; if(jia nyi=1)flag11=1;break;case 3: flag 1=2;if(flag3=1)flag=6;if(jiayi=0&&flag10=1)delay1(2);if(jiayi=0&&flag10=1)flag10=0;fe n1shi+; if(fen 1shi=6)fe n1shi=0;if(jiayi=1)flag1

39、0=1;if(jia nyi=0&&flag11=1)delay1(2);if(jia nyi=0&&flag11=1)flag11=0;fe n1shi-;if(fen 1shi<0)fe n1shi=5; if(jia nyi=1)flag11=1;if(flag3=2)flag=7;if(jiayi=0&&flag10=1)delay1(2);if(jiayi=0&&flag10=1)flag10=0;fe n1ge+;if(fen 1ge=10)fe n1ge=0;if(jiayi=1)flag10=1;if(jia

40、 nyi=0&&flag11=1)delay1(2);if(jia nyi=0&&flag11=1)flag11=0;fe nlge-;if(fen 1ge<0)fe n1ge=9; if(jia nyi=1)flag11=1;if(flag3=3)flag=8;if(jiayi=0&&flag10=1)delay1(2);if(jiayi=0&&flag10=1)flag10=0;miao1shi+;if(miao1shi=6)miao1shi=0;if(jiayi=1)flag10=1;if(jia nyi=0&

41、&flag11=1)delay1(2);if(jia nyi=0&&flag11=1)flag11=0;miao1shi-;if(miao1shi<0)miao1shi=5;if(jia nyi=1)flag11=1;if(flag3=4)flag=9;if(jiayi=0&&flag10=1)delay1(2);if(jiayi=0&&flag10=1)flag10=0;miao1ge+;if(miao1ge=10)miao1ge=0;if(jiayi=1)flag10=1;if(jia nyi=0&&flag11

42、=1)delay1(2);if(jia nyi=0&&flag11=1)flag11=0;miao1ge-;if(miao1ge<0)miao1ge=9; if(jia nyi=1)flag11=1;break;default:break;* TimeO中斷函數(shù)* *void TimeO(void) in terrupt 1 using 1TH0=0xee;/5ms定時TLO=OxOO;display0+;duanxuan+;if(dua nxua n=5)dua nxua n=1;if(display0=20) /0.01Sdisplay0=0;display1+;sh

43、a n=miaoge;if(display1=10) /0.1Slin g+;if(li ng>=10)li ng=10;if(flag4=1)flag5+;display1=0;miaoge+; /秒個位if(miaoge=10)miaoge=0;miaoshi+; /秒十位if(miaoshi=6)miaoshi=0;fen ge+;/分個位if(fen ge=10)fen ge=0;fen shi+;/fen十位if(fen shi=6)fen shi=O;if(flag=1)switch(dua nxua n) case 1: P0=fe nshi<<4;xia n1

44、=1;Delay(70);break; case 2: P0=fe nge<<4;xia n2=1;Delay(70);break; case 3: P0=miaoshi<<4;xia n3=1;Delay(70);break; case 4: P0=miaoge<<4;xia n4=1;Delay(70);break;default :break;if(flag=2)switch(dua nxua n) case 1: P0=fe nshi<<4;xia n仁 sha n%2;Delay(70);break;case 2: P0=fe nge&

45、lt;<4;xia n2=1;Delay(70);break; case 3: P0=miaoshi<<4;xia n3=1;Delay(70);break;case 4: P0=miaoge<<4;xia n4=1;Delay(70);break; default :break;if(flag=3)switch(dua nxua n) case 1: P0=fe nshi<<4;xia n1=1;Delay(70);break;case 2: P0=fe nge<<4;xia n2=sha n%2;Delay(70);break; cas

46、e 3: P0=miaoshi<<4;xia n3=1;Delay(70);break;case 4: P0=miaoge<<4;xia n4=1;Delay(70);break; default :break; if(flag=4)switch(dua nxua n) case 1: P0=fe nshi<<4;xia n1=1;Delay(70);break;case 2: P0=fe nge<<4;xia n2=1;Delay(70);break;case 3: P0=miaoshi<<4;xia n3=sha n%2;Dela

47、y(70);break;case 4: P0=miaoge<<4;xia n4=1;Delay(70);break; default :break;if(flag=5)switch(dua nxua n) case 1: P0=fe nshi<<4;xia n1=1;Delay(70);break; case 2: P0=fe nge<<4;xia n2=1;Delay(70);break; case 3: P0=miaoshi<<4;xia n3=1;Delay(70);break; case 4: P0=miaoge<<4;xia

48、 n4=sha n%2;Delay(70);break; default :break;if(flag=6)switch(dua nxua n) case 1: P0=fe n1shi<<4;xia n仁 sha n%2;Delay(70);break; case 2: P0=fe n1ge<<4;xia n2=1;Delay(70);break; case 3: P0=miao1shi<<4;xia n3=1;Delay(70);break; case 4: P0=miao1ge<<4;xia n4=1;Delay(70);break; def

49、ault :break;if(flag=7)switch(dua nxua n) case 1: P0=fe n1shi<<4;xia n1=1;Delay(70);break;case 2: P0=fe n1ge<<4;xia n2=sha n%2;Delay(70);break;case 3: P0=miao1shi<<4;xia n3=1;Delay(70);break;case 4: P0=miao1ge<<4;xia n4=1;Delay(70);break; default :break;if(flag=8)switch(dua nxua n) case 1: P0=fe n1shi<<4;xia n1=1;Delay(70);break;case 2: P0=fe n1ge<<4;xia n2=1;Delay(70);break;case 3: P0=miao1shi<<4;xia n3=sha n%2;Delay(70);break;case 4: P0=miao1ge<<4;xia n4=1;Delay(70);break; default :break;if(flag=9)switch(du

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論