版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 單片機課程設(shè)計</b></p><p> 姓 名: *** 學(xué) 號: ***** </p><p> 專 業(yè): 自動化 </p><p> 題 目: 單片機電秒計時器
2、 </p><p> 專 題: 單片機系統(tǒng)設(shè)計 </p><p> 指導(dǎo)教師: ** </p><p> 設(shè)計地點: *** 時 間: *** </p>
3、<p><b> 2011 年 6月</b></p><p> 單片機課程設(shè)計任務(wù)書</p><p> 專業(yè)年級 **** 學(xué)號 *** 學(xué)生姓名 ***** </p><p> 任務(wù)下達日期: 2011 年 6 月 18日</p><p> 設(shè)計日期: 2011年6月18
4、日 至 2011年 6月28日</p><p> 設(shè)計題目:單片機電秒計時器</p><p> 設(shè)計專題題目:單片機系統(tǒng)設(shè)計</p><p><b> 設(shè)計主要內(nèi)容:</b></p><p> 通過單片機系統(tǒng)實現(xiàn)秒表計時功能,可以進行暫停計時、恢復(fù)計時、設(shè)定時間和清零等操作。</p><p&g
5、t;<b> 設(shè)計要求:</b></p><p> 系統(tǒng)上電,數(shù)碼管顯示“99”.</p><p> 每隔1秒,數(shù)碼管顯示減1,減小到“00”后,數(shù)碼管顯示“00”,同時繼電器開啟。</p><p> 設(shè)置按鍵S13,當(dāng)S13按下時,秒表計時停止,數(shù)碼管顯示當(dāng)前數(shù)值,再次按下時恢計時。</p><p> 當(dāng)停止
6、計時時,按下S14鍵,可以設(shè)置秒數(shù),按鍵S1-S10分別對應(yīng)數(shù)字0-9;先輸入數(shù)字為十位數(shù),后輸入數(shù)字為個位數(shù),若輸入數(shù)字大于99,數(shù)碼管顯示“99”。按下S13鍵啟動計時。</p><p> 設(shè)置按鍵S15,當(dāng)S15按下時,數(shù)碼管顯示為“99”,秒表從新開始計時。</p><p> 考試過程中,應(yīng)使用硬件平臺指定的資源進行設(shè)計。</p><p><b&g
7、t; 指導(dǎo)教師簽字:</b></p><p><b> 摘 要</b></p><p> 單片機極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快,51單片機是各單片機中最為典型和最有代表性的一種。本實驗是基于MCS51系列單片機所設(shè)計的,可以實現(xiàn)鍵盤按鍵與數(shù)字動態(tài)顯示并可以倒數(shù)的計數(shù)器。本設(shè)計基于單片機技術(shù)原理,以單片機芯片AT89C51作
8、為核心控制器,通過硬件電路的制作以及軟件程序的編制,設(shè)計制作出一個電秒計時器,包括以下功能:通過單片機系統(tǒng)實現(xiàn)秒表計時功能,可以進行暫停計時、恢復(fù)計時、設(shè)定時間和清零等操作。該計數(shù)器系統(tǒng)主要由計數(shù)器模塊、LCD顯示器模塊、鍵盤模塊、復(fù)位模塊等部分組成。</p><p> 關(guān) 鍵 詞:AT89C51單片機、 C語言編程、鍵盤模塊、LCD顯示器</p><p><b> 目
9、 錄</b></p><p> 1 理論設(shè)計…………………………………………………..…..1</p><p> 1.1系統(tǒng)設(shè)計要求…………………………………………..…..1</p><p> 2 AT89C51介紹……………………………………….……….…….2</p><p> 2.1引腳定義及功能……………………
10、………………………3</p><p> 2.2 I/O端口功能………………………………………………4</p><p> 3 系統(tǒng)硬件介紹……………………………………………………8</p><p> 3.1單片機最小系統(tǒng)……………………………………………8</p><p> 3.2復(fù)位電路……………………………………………………9<
11、;/p><p> 3.3時鐘電路……………………………………………………10</p><p> 3.4顯示電路……………………………………………………10</p><p> 3.5鍵控電路……………………………………………………12</p><p> 4 軟件設(shè)計…………………………………………………………13</p>&l
12、t;p> 4.1 基本任務(wù) ………………………………………………13</p><p> 4.2 按鍵定義及顯示標志……………………………………13</p><p> 4.3 主程序框圖………………………………………………13</p><p><b> 5小結(jié)15</b></p><p><b>
13、; 參考文獻:16</b></p><p><b> 附錄17</b></p><p> 附錄一 單片機印刷電路板原理圖17</p><p> 附錄二 元件清單18</p><p> 附錄三程序代碼20</p><p><b> 1 理論設(shè)計</b
14、></p><p><b> 1.1系統(tǒng)設(shè)計要求</b></p><p> ?。?)該倒計時器應(yīng)具有基本倒時功能;</p><p> ?。?)具有暫停,復(fù)位功能;</p><p> (3)時間可以任意調(diào)整;</p><p> (4)時間用數(shù)碼管顯示,初始值為99S,掃描時間為1S。&l
15、t;/p><p> 采用單片機程序設(shè)計制作,它是利用芯片AT89S51的特殊功能,上電兩個數(shù)碼管將顯示99,P3口控制4X4矩陣按鍵開關(guān),輸入數(shù)字。通過P0口對兩片74HC273進行控制,一片輸出字型碼,一片輸出字位碼。P2.4和P2.5控制74HC02,來確定字位和字形碼地址。其系統(tǒng)框圖如圖1所示。</p><p> 2 AT89C51介紹</p><p> A
16、T89C51是美國ATMEL公司生產(chǎn)的AT89系列單片機中的一種,它與MCS-51系列的許多機種都具有兼容性,并具有廣泛的代表性。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀
17、存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p> AT89C51的特點</p><p>
18、 與MCS-51 兼容 </p><p> 4K字節(jié)可編程閃爍存儲器 </p><p> 壽命:1000寫/擦循環(huán)</p><p> 數(shù)據(jù)保留時間:10年</p><p> 全靜態(tài)工作:0Hz-24MHz</p><p><b> 三級程序存儲器鎖定</b></p>&l
19、t;p> 128×8位內(nèi)部RAM</p><p><b> 32可編程I/O線</b></p><p> 兩個16位定時器/計數(shù)器</p><p><b> 5個中斷源 </b></p><p><b> 可編程串行通道</b></p>
20、<p> 低功耗的閑置和掉電模式</p><p> 片內(nèi)振蕩器和時鐘電路 </p><p> 2.1引腳定義及功能</p><p> AT89C51有40條引腳,與其他51系列單片機引腳是兼容的。這40條引腳可分為I/O端口線、電源線、控制線、外接晶體線四部分。其封裝形式有兩種:雙列直插封裝(DIP)形式和方形封裝形式,如圖3-1所示。</p
21、><p> 圖3-1 AT89C51引腳</p><p><b> 主電源引腳</b></p><p> VCC:供電電壓(+5V)。</p><p><b> GND:接地。</b></p><p> 2.2 I/O端口功能</p><p>
22、 P0口: P0口有八條端口線,命名為P0.0~P0.7,其中P0.0為低位,P0.7為高位。每條線的結(jié)構(gòu)組成如圖3-2所示。它由一個輸出鎖存器,兩個三態(tài)緩沖器,輸出驅(qū)動電路和輸出控制電路組成。P0口是一個三態(tài)雙向I/O口,它有兩種不同的功能,用于不同的工作環(huán)境。P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。
23、在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p> 圖3-2 P0口位結(jié)構(gòu)圖 </p><p> P1口:P1口有八條端口線,命名為P1.0~P1.7,每條線的結(jié)構(gòu)組成如圖3-3所示。P1口是一個準雙向口,只作普通的I/O口使用,其功能與P0口的第一功能相同。作輸出口使用時,由于其內(nèi)部有上拉電阻,所以不需外接上
24、拉電阻;作輸入口使用時,必須先向鎖存器寫入“1”,使場效應(yīng)管T截止,然后才能讀取數(shù)據(jù)。P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。</p><p> 圖3-3 P1口位結(jié)構(gòu)圖</p><
25、p> P2口:P2口有八條端口線,命名為P2.0~P2.7,每條線的結(jié)構(gòu)如圖3-4所示。P2口也是一個準雙向口,它有兩種使用功能:一種是當(dāng)系統(tǒng)不擴展外部存儲器時,作普通I/O口使用,其功能和原理與P0口第一功能相同,只是作為輸出口時不需外接上拉電阻;另一種是當(dāng)系統(tǒng)外擴存儲器時,P2口作系統(tǒng)擴展的地址總線口使用,輸出高8位的地址A7~A15,與P0口第二功能輸出的低8位地址相配合,共同訪問外部程序或數(shù)據(jù)存儲器(64 KB),但它只
26、確定地址并不能像P0口那樣還可以傳送存儲器的讀寫數(shù)據(jù)。P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫
27、時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p> P3口:P3口有八條端口線,命名為P3.0~P3.7,每條線的結(jié)構(gòu)如圖3-1所示。P3口是一個多用途的準雙向口。第一功能是作普通I/O口使用,其功能和原理與P1口相同。第二功能是作控制和特殊功能口使用,這時八條端口線所定義的功能各不相同,如表3-4所示。</p><p>
28、 P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p> 圖3-4 P2口位結(jié)構(gòu)圖</p><p> 圖3-5 P3口位結(jié)構(gòu)圖</p><p
29、> 表1 P3口各位的第二功能</p><p><b> 3 系統(tǒng)硬件介紹</b></p><p> 3.1單片機最小系統(tǒng)</p><p> 該原理圖包含單片機以及外部連接譯碼,鎖存電路端口,其中的ALE,REST為高電平時用來啟動ADC0809.P0口控制數(shù)碼輸出顯示以及控制鍵盤的。</p><p>
30、 晶振采用12MHZ,該頻率有利于提高串口的通信可靠性,同時又保證單片機有較高的運行速度。</p><p><b> 3.2復(fù)位電路</b></p><p> 單片機在開機時都需要復(fù)位,以便CPU及其他功能部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。單片機復(fù)位電路工作原理:當(dāng)通電瞬間 穩(wěn)壓電源給電容充電。RESET為復(fù)位輸入端,當(dāng)RESET引腳持續(xù)兩個機器
31、周期以上的高電平時,使單片機完成復(fù)位操作,隨著電容充電結(jié)束,將使電容與電阻之間將呈現(xiàn)低電平,單片機復(fù)位結(jié)束。復(fù)位操作的主要功能是把PC初始化為0000H,使單片機程序存儲器從0000H單元開始執(zhí)行程序。本設(shè)計主要采用上電自動復(fù)位電路,其電路圖如圖4所示</p><p><b> 3.3時鐘電路</b></p><p> 本篇論文選擇的方案中采用的是內(nèi)部振蕩方式。采
32、用內(nèi)部方式時在XTAL1和XTAL2引腳上接石英晶體和微調(diào)電容可以構(gòu)成振蕩器,如圖5所示。圖中C1、C2起穩(wěn)定振蕩頻率、快速起振的作用。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路中使用較多。振蕩頻率的選擇范圍為1MHz~12MHz。</p><p><b> 3.4顯示電路</b></p><p> 顯示器件有很多種,常用的有發(fā)光二極管,數(shù)碼管,液晶顯示器等,本
33、文采用8位共陰極LED動態(tài)掃描顯示,SN74HC273N輸出所需字形,SN74HC273N選擇字位。在動態(tài)方式中,逐個地循環(huán)地點亮各位顯示器。如圖所示:</p><p><b> 數(shù)碼管顯示電路</b></p><p> 顯示譯碼電路部分由P0口輸出顯示包含:</p><p> 顯示譯碼電路 顯示譯碼電路</p><p
34、><b> 3.5鍵控電路</b></p><p> 鍵盤是微機應(yīng)用系統(tǒng)中使用最廣泛的一種數(shù)據(jù)輸入設(shè)備,按照鍵盤按鍵的結(jié)構(gòu)形式,可分為獨立式鍵盤和矩陣式鍵盤。本文主要采用矩陣式鍵盤,此鍵盤控制電路主要是用于調(diào)整時間 </p><p><b> 4 軟件設(shè)計</b></p><p> 4.1 基本任務(wù) <
35、;/p><p> 利用單片機系統(tǒng)設(shè)計電秒表計時器</p><p> 4.2 按鍵定義及顯示標志</p><p> 1.設(shè)置按鍵S13,當(dāng)S13按下時,秒表計時停止,數(shù)碼管顯示當(dāng)前數(shù)值,再次按下時恢計時。</p><p> 2.當(dāng)停止計時時,按下S14鍵,可以設(shè)置秒數(shù),按鍵S1-S10分別對應(yīng)數(shù)字0-9;先輸入數(shù)字為十位數(shù),后輸入數(shù)字為個位
36、數(shù),若輸入數(shù)字大于99,數(shù)碼管顯示“99”。按下S13鍵啟動計時。</p><p> 3.設(shè)置按鍵S15,當(dāng)S15按下時,數(shù)碼管顯示為“99”,秒表從新開始計時。</p><p><b> 4.3主程序框圖</b></p><p><b> 5 小結(jié)</b></p><p> 通過這次的課程
37、設(shè)計作品的制作讓我對單片機的理論有了更加深入的了解,同時在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識與實際的應(yīng)用存在著不小的差距,書本上的知識很多都是理想化后的結(jié)論,忽略了很多實際的因素,或者涉及的不全面,可在實際的應(yīng)用時這些是不能被忽略的,我們不得不考慮這方的問題,這讓我們無法根據(jù)書上的理論就輕易得到預(yù)想中的結(jié)果,有時結(jié)果甚至很差別很大。通過這次實踐使我更深刻的體會到了理論聯(lián)系實際的重要性,我們在今后的學(xué)習(xí)工作中會更加的注重實際,避免稱
38、為只會紙上談兵的趙括。</p><p><b> 參考文獻:</b></p><p> 1、胡漢才,《單片機原理及其接口技術(shù)》(2版),清華大學(xué)出版社 </p><p> 2、單片機實驗指導(dǎo)書</p><p> 3、張毅剛,彭喜元,孟升衛(wèi),劉兆慶 MCS-51單片機實用子程序設(shè)計(第二版) 哈爾濱工業(yè)大學(xué)出版
39、社 2003年</p><p> 4、孫育才,《MCS-51系列單片微型計算機及其應(yīng)用》,東南大學(xué)出版社</p><p> 5、曹巧媛,《單片機原理及應(yīng)用——教學(xué)、實踐、設(shè)計指導(dǎo)》,電子工業(yè)出版社</p><p> 6、謝自美,《電子線路設(shè)計·實驗·測試》(2版),華中科技大學(xué)出版社</p><p> 7、 求是
40、科技 單片機通信技術(shù)與工程實踐 人民郵電出版社 2005年</p><p><b> 附錄</b></p><p> 附錄一 單片機印刷電路板原理圖</p><p><b> 附錄二 元件清單</b></p><p><b> 單片機主板</b></p>
41、;<p><b> 附錄三 程序代碼</b></p><p> #include <reg52.h></p><p> #include<ABSACC.h></p><p> #define uchar unsigned char</p><p> #define uint
42、 unsigned int</p><p> #define Font_code XBYTE[0xefff] //字符碼寫地址</p><p> #define reg_code XBYTE[0xdfff] //字位碼寫地址</p><p> #define key_addr XBYTE[0xf7f
43、f] //讀按鍵地址</p><p><b> bit x=0;</b></p><p><b> bit y=0;</b></p><p> uchar key_n; </p><p><b> uint m;</b></p><p&g
44、t;<b> uint s; </b></p><p> sbit P12=P1^0; </p><p> unsigned char const jian[]; </p><p> unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f
45、,0x6f,</p><p> 0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p> void delay(uchar x)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> wh
46、ile(x--)</p><p> for(i=0;i<100;i++);</p><p><b> }</b></p><p> void get_key(void)</p><p><b> { </b></p><p> uchar temp;<
47、;/p><p> Font_code=0x00;</p><p> reg_code=0xfe;</p><p> temp = key_addr & 0x0f; //第一列</p><p> if(temp==0x0e)</p><p> {delay(200);</p><p
48、> if(temp==0x0e)</p><p><b> {</b></p><p><b> key_n=0;</b></p><p> if((x==1)&&(y==0) )</p><p> {m=m%10;y=1;} </p><p>
49、;<b> else</b></p><p> {m=(m/10)*10;y=0;}</p><p><b> }</b></p><p><b> }</b></p><p> if(temp==0x0d)</p><p> {delay
50、(200);</p><p> if(temp==0x0d)</p><p><b> {</b></p><p><b> key_n=4;</b></p><p> if((x==1)&&(y==0))</p><p> {m=m%10+40;y
51、=1;} </p><p><b> else</b></p><p> {m=(m/10)*10+4;y=0;}</p><p><b> }</b></p><p><b> }</b></p><p> if(temp==0x0b)<
52、;/p><p> {delay(200);</p><p> if(temp==0x0b)</p><p><b> {</b></p><p><b> key_n=8;</b></p><p> if((x==1)&&(y==0))</p&g
53、t;<p> {m=m%10+80;y=1;} </p><p><b> else</b></p><p> {m=(m/10)*10+8;y=0;}</p><p><b> }</b></p><p><b> }</b></p>&
54、lt;p> if(temp==0x07)</p><p><b> {</b></p><p><b> key_n=12;</b></p><p><b> s++;</b></p><p><b> x=0;</b></p>
55、<p><b> y=0;</b></p><p><b> }</b></p><p> reg_code=0xfd;</p><p> temp = key_addr & 0x0f; //第二列</p><p> if(temp==0x0e)</p>
56、;<p> {delay(200);</p><p> if(temp==0x0e)</p><p><b> {</b></p><p><b> key_n=1;</b></p><p> if((x==1)&&(y==0) )</p>&
57、lt;p> {m=m%10+10;y=1;} </p><p><b> else</b></p><p> {m=(m/10)*10+1;y=0;}</p><p><b> }</b></p><p><b> }</b></p><p&
58、gt; if(temp==0x0d)</p><p> {delay(200);</p><p> if(temp==0x0d)</p><p><b> {</b></p><p><b> key_n=5;</b></p><p> if((x==1)&am
59、p;&(y==0) )</p><p> {m=m%10+50;y=1;} </p><p><b> else</b></p><p> {m=(m/10)*10+5;y=0;}</p><p><b> }</b></p><p><b> }
60、</b></p><p> if(temp==0x0b)</p><p> {delay(200);</p><p> if(temp==0x0b)</p><p><b> {</b></p><p><b> key_n=9;</b></p&
61、gt;<p> if((x==1)&&(y==0) )</p><p> {m=m%10+90;y=1;} </p><p><b> else</b></p><p> {m=(m/10)*10+9;y=0;}</p><p><b> }</b></
62、p><p><b> }</b></p><p> if(temp==0x07)key_n=13;</p><p> reg_code=0xfb;</p><p> temp = key_addr & 0x0f; //第三列</p><p> if(temp==0x0e)</p
63、><p> {delay(200);</p><p> if(temp==0x0e)</p><p><b> {</b></p><p><b> key_n=2;</b></p><p> if((x==1)&&(y==0) )</p>
64、<p> {m=m%10+20;y=1;} </p><p><b> else</b></p><p> {m=(m/10)*10+2;y=0;}</p><p><b> }</b></p><p><b> }</b></p><
65、;p> if(temp==0x0d)</p><p> {delay(200);</p><p> if(temp==0x0d)</p><p><b> {</b></p><p><b> key_n=6;</b></p><p> if((x==1)
66、&&(y==0) )</p><p> {m=m%10+60;y=1;} </p><p><b> else</b></p><p> {m=(m/10)*10+6;y=0;}</p><p><b> }</b></p><p><b>
67、 }</b></p><p> if(temp==0x0b)key_n=10;</p><p> if(temp==0x07)key_n=14;</p><p> reg_code=0xf7;</p><p> temp = key_addr & 0x0f; //第四列</p><p>
68、 if(temp==0x0e)</p><p> {delay(200);</p><p> if(temp==0x0e)</p><p><b> {</b></p><p><b> key_n=1;</b></p><p> if((x==1)&&a
69、mp;(y==0) )</p><p> {m=m%10+30;y=1;} </p><p><b> else</b></p><p> {m=(m/10)*10+3;y=0;}</p><p><b> }</b></p><p><b> }<
70、/b></p><p> if(temp==0x0d)</p><p> {delay(200);</p><p> if(temp==0x0d)</p><p><b> {</b></p><p><b> key_n=1;</b></p>
71、<p> if((x==1)&&(y==0) )</p><p> {m=m%10+70;y=1;} </p><p><b> else</b></p><p> {m=(m/10)*10+7;y=0;}</p><p><b> }</b></p>
72、;<p><b> }</b></p><p> if(temp==0x0b)key_n=11;</p><p> if(temp==0x07)</p><p><b> {</b></p><p><b> key_n=15;</b></p>
73、;<p><b> }</b></p><p><b> }</b></p><p> void main(void)</p><p><b> {</b></p><p> uint p,t,l;</p><p> RCAP2
74、H=0x10;</p><p> RCAP2L=0x00;</p><p><b> m=99;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> get_key();</
75、p><p> if(key_n==14)</p><p><b> {</b></p><p><b> m=99;</b></p><p><b> }</b></p><p> if(key_n==13)</p><p>
76、;<b> {</b></p><p> if((s%2)!=0)</p><p><b> {</b></p><p><b> x=1;</b></p><p><b> y=0;</b></p><p><b&
77、gt; }</b></p><p><b> }</b></p><p> if(key_n==12)</p><p><b> {</b></p><p><b> delay(3);</b></p><p> if(key_
78、n==12)</p><p><b> {</b></p><p> if((s%2)==0)</p><p><b> {</b></p><p><b> TR2=1;</b></p><p><b> ET2=1;</b&
79、gt;</p><p><b> EA=1;</b></p><p><b> }</b></p><p> if((s%2)!=0)</p><p><b> {</b></p><p><b> TR2=0;</b>&
80、lt;/p><p><b> ET2=0;</b></p><p><b> EA=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</
81、b></p><p><b> if(m==0)</b></p><p><b> {</b></p><p><b> TR2=0;</b></p><p><b> ET2=0;</b></p><p><b
82、> EA=0;</b></p><p><b> }</b></p><p><b> p=m/10;</b></p><p><b> t=m%10;</b></p><p> Font_code=dofly[p];</p>&l
83、t;p> reg_code=0x20;</p><p> delay(10);</p><p> Font_code=dofly[t];</p><p> reg_code=0x40;</p><p> delay(10);</p><p><b> }</b></p&
84、gt;<p><b> }</b></p><p> timer2() interrupt 5</p><p><b> {</b></p><p> static uchar t;</p><p><b> TF2=0;</b></p>
85、<p><b> t++;</b></p><p><b> if(t==10)</b></p><p><b> {</b></p><p><b> t=0;</b></p><p><b> if(m!=0)</b
86、></p><p><b> {</b></p><p><b> m--;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計-秒計時器設(shè)計
- 單片機課程設(shè)計--單片機60秒計時器的設(shè)計與仿真
- 單片機課程設(shè)計--00-59_秒計時器
- 60秒倒計時器-單片機課程設(shè)計
- 單片機課程設(shè)計---(00-59秒計時器設(shè)計)
- 60秒倒計時器-單片機課程設(shè)計報告
- 單片機課程設(shè)計--音樂倒數(shù)計時器
- 單片機時鐘計時器課程設(shè)計
- 單片機課程設(shè)計---籃球比賽計分計時器
- 基于c語言單片機倒數(shù)計時器課程設(shè)計
- 單片機答辯倒計時器課程設(shè)計報告
- 課程設(shè)計-基于單片機音樂倒數(shù)計時器的設(shè)計
- 基于單片機的紅外計時器
- 單片機原理及應(yīng)用課程設(shè)計--答辯倒計時器
- 單片機課程設(shè)計---單片機電子時鐘
- 基于c語言單片機倒數(shù)計時器設(shè)計
- 單片機課程設(shè)計時鐘設(shè)計
- 單片機課程設(shè)計---單片機籃球計分器
- 單片機課程設(shè)計--- 單片機電子時鐘設(shè)計
- 單片機課程設(shè)計——籃球計時計分器
評論
0/150
提交評論