版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p> 姓 名: *** 學(xué) 號(hào): ***** </p><p> 專 業(yè): 自動(dòng)化 </p><p> 題 目: 單片機(jī)電秒計(jì)時(shí)器
2、 </p><p> 專 題: 單片機(jī)系統(tǒng)設(shè)計(jì) </p><p> 指導(dǎo)教師: ** </p><p> 設(shè)計(jì)地點(diǎn): *** 時(shí) 間: *** </p>
3、<p><b> 2011 年 6月</b></p><p> 單片機(jī)課程設(shè)計(jì)任務(wù)書</p><p> 專業(yè)年級(jí) **** 學(xué)號(hào) *** 學(xué)生姓名 ***** </p><p> 任務(wù)下達(dá)日期: 2011 年 6 月 18日</p><p> 設(shè)計(jì)日期: 2011年6月18
4、日 至 2011年 6月28日</p><p> 設(shè)計(jì)題目:?jiǎn)纹瑱C(jī)電秒計(jì)時(shí)器</p><p> 設(shè)計(jì)專題題目:?jiǎn)纹瑱C(jī)系統(tǒng)設(shè)計(jì)</p><p><b> 設(shè)計(jì)主要內(nèi)容:</b></p><p> 通過單片機(jī)系統(tǒng)實(shí)現(xiàn)秒表計(jì)時(shí)功能,可以進(jìn)行暫停計(jì)時(shí)、恢復(fù)計(jì)時(shí)、設(shè)定時(shí)間和清零等操作。</p><p&g
5、t;<b> 設(shè)計(jì)要求:</b></p><p> 系統(tǒng)上電,數(shù)碼管顯示“99”.</p><p> 每隔1秒,數(shù)碼管顯示減1,減小到“00”后,數(shù)碼管顯示“00”,同時(shí)繼電器開啟。</p><p> 設(shè)置按鍵S13,當(dāng)S13按下時(shí),秒表計(jì)時(shí)停止,數(shù)碼管顯示當(dāng)前數(shù)值,再次按下時(shí)恢計(jì)時(shí)。</p><p> 當(dāng)停止
6、計(jì)時(shí)時(shí),按下S14鍵,可以設(shè)置秒數(shù),按鍵S1-S10分別對(duì)應(yīng)數(shù)字0-9;先輸入數(shù)字為十位數(shù),后輸入數(shù)字為個(gè)位數(shù),若輸入數(shù)字大于99,數(shù)碼管顯示“99”。按下S13鍵啟動(dòng)計(jì)時(shí)。</p><p> 設(shè)置按鍵S15,當(dāng)S15按下時(shí),數(shù)碼管顯示為“99”,秒表從新開始計(jì)時(shí)。</p><p> 考試過程中,應(yīng)使用硬件平臺(tái)指定的資源進(jìn)行設(shè)計(jì)。</p><p><b&g
7、t; 指導(dǎo)教師簽字:</b></p><p><b> 摘 要</b></p><p> 單片機(jī)極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快,51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。本實(shí)驗(yàn)是基于MCS51系列單片機(jī)所設(shè)計(jì)的,可以實(shí)現(xiàn)鍵盤按鍵與數(shù)字動(dòng)態(tài)顯示并可以倒數(shù)的計(jì)數(shù)器。本設(shè)計(jì)基于單片機(jī)技術(shù)原理,以單片機(jī)芯片AT89C51作
8、為核心控制器,通過硬件電路的制作以及軟件程序的編制,設(shè)計(jì)制作出一個(gè)電秒計(jì)時(shí)器,包括以下功能:通過單片機(jī)系統(tǒng)實(shí)現(xiàn)秒表計(jì)時(shí)功能,可以進(jìn)行暫停計(jì)時(shí)、恢復(fù)計(jì)時(shí)、設(shè)定時(shí)間和清零等操作。該計(jì)數(shù)器系統(tǒng)主要由計(jì)數(shù)器模塊、LCD顯示器模塊、鍵盤模塊、復(fù)位模塊等部分組成。</p><p> 關(guān) 鍵 詞:AT89C51單片機(jī)、 C語言編程、鍵盤模塊、LCD顯示器</p><p><b> 目
9、 錄</b></p><p> 1 理論設(shè)計(jì)…………………………………………………..…..1</p><p> 1.1系統(tǒng)設(shè)計(jì)要求…………………………………………..…..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單片機(jī)最小系統(tǒng)……………………………………………8</p><p> 3.2復(fù)位電路……………………………………………………9<
11、;/p><p> 3.3時(shí)鐘電路……………………………………………………10</p><p> 3.4顯示電路……………………………………………………10</p><p> 3.5鍵控電路……………………………………………………12</p><p> 4 軟件設(shè)計(jì)…………………………………………………………13</p>&l
12、t;p> 4.1 基本任務(wù) ………………………………………………13</p><p> 4.2 按鍵定義及顯示標(biāo)志……………………………………13</p><p> 4.3 主程序框圖………………………………………………13</p><p><b> 5小結(jié)15</b></p><p><b>
13、; 參考文獻(xiàn):16</b></p><p><b> 附錄17</b></p><p> 附錄一 單片機(jī)印刷電路板原理圖17</p><p> 附錄二 元件清單18</p><p> 附錄三程序代碼20</p><p><b> 1 理論設(shè)計(jì)</b
14、></p><p><b> 1.1系統(tǒng)設(shè)計(jì)要求</b></p><p> (1)該倒計(jì)時(shí)器應(yīng)具有基本倒時(shí)功能;</p><p> ?。?)具有暫停,復(fù)位功能;</p><p> (3)時(shí)間可以任意調(diào)整;</p><p> (4)時(shí)間用數(shù)碼管顯示,初始值為99S,掃描時(shí)間為1S。&l
15、t;/p><p> 采用單片機(jī)程序設(shè)計(jì)制作,它是利用芯片AT89S51的特殊功能,上電兩個(gè)數(shù)碼管將顯示99,P3口控制4X4矩陣按鍵開關(guān),輸入數(shù)字。通過P0口對(duì)兩片74HC273進(jìn)行控制,一片輸出字型碼,一片輸出字位碼。P2.4和P2.5控制74HC02,來確定字位和字形碼地址。其系統(tǒng)框圖如圖1所示。</p><p> 2 AT89C51介紹</p><p> A
16、T89C51是美國ATMEL公司生產(chǎn)的AT89系列單片機(jī)中的一種,它與MCS-51系列的許多機(jī)種都具有兼容性,并具有廣泛的代表性。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀
17、存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p> AT89C51的特點(diǎn)</p><p>
18、 與MCS-51 兼容 </p><p> 4K字節(jié)可編程閃爍存儲(chǔ)器 </p><p> 壽命:1000寫/擦循環(huán)</p><p> 數(shù)據(jù)保留時(shí)間:10年</p><p> 全靜態(tài)工作:0Hz-24MHz</p><p><b> 三級(jí)程序存儲(chǔ)器鎖定</b></p>&l
19、t;p> 128×8位內(nèi)部RAM</p><p><b> 32可編程I/O線</b></p><p> 兩個(gè)16位定時(shí)器/計(jì)數(shù)器</p><p><b> 5個(gè)中斷源 </b></p><p><b> 可編程串行通道</b></p>
20、<p> 低功耗的閑置和掉電模式</p><p> 片內(nèi)振蕩器和時(shí)鐘電路 </p><p> 2.1引腳定義及功能</p><p> AT89C51有40條引腳,與其他51系列單片機(jī)引腳是兼容的。這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所示。它由一個(gè)輸出鎖存器,兩個(gè)三態(tài)緩沖器,輸出驅(qū)動(dòng)電路和輸出控制電路組成。P0口是一個(gè)三態(tài)雙向I/O口,它有兩種不同的功能,用于不同的工作環(huán)境。P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。
23、在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p> 圖3-2 P0口位結(jié)構(gòu)圖 </p><p> P1口:P1口有八條端口線,命名為P1.0~P1.7,每條線的結(jié)構(gòu)組成如圖3-3所示。P1口是一個(gè)準(zhǔn)雙向口,只作普通的I/O口使用,其功能與P0口的第一功能相同。作輸出口使用時(shí),由于其內(nèi)部有上拉電阻,所以不需外接上
24、拉電阻;作輸入口使用時(shí),必須先向鎖存器寫入“1”,使場(chǎng)效應(yīng)管T截止,然后才能讀取數(shù)據(jù)。P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p> 圖3-3 P1口位結(jié)構(gòu)圖</p><
25、p> P2口:P2口有八條端口線,命名為P2.0~P2.7,每條線的結(jié)構(gòu)如圖3-4所示。P2口也是一個(gè)準(zhǔn)雙向口,它有兩種使用功能:一種是當(dāng)系統(tǒng)不擴(kuò)展外部存儲(chǔ)器時(shí),作普通I/O口使用,其功能和原理與P0口第一功能相同,只是作為輸出口時(shí)不需外接上拉電阻;另一種是當(dāng)系統(tǒng)外擴(kuò)存儲(chǔ)器時(shí),P2口作系統(tǒng)擴(kuò)展的地址總線口使用,輸出高8位的地址A7~A15,與P0口第二功能輸出的低8位地址相配合,共同訪問外部程序或數(shù)據(jù)存儲(chǔ)器(64 KB),但它只
26、確定地址并不能像P0口那樣還可以傳送存儲(chǔ)器的讀寫數(shù)據(jù)。P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫
27、時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p> P3口:P3口有八條端口線,命名為P3.0~P3.7,每條線的結(jié)構(gòu)如圖3-1所示。P3口是一個(gè)多用途的準(zhǔn)雙向口。第一功能是作普通I/O口使用,其功能和原理與P1口相同。第二功能是作控制和特殊功能口使用,這時(shí)八條端口線所定義的功能各不相同,如表3-4所示。</p><p>
28、 P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</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單片機(jī)最小系統(tǒng)</p><p> 該原理圖包含單片機(jī)以及外部連接譯碼,鎖存電路端口,其中的ALE,REST為高電平時(shí)用來啟動(dòng)ADC0809.P0口控制數(shù)碼輸出顯示以及控制鍵盤的。</p><p>
30、 晶振采用12MHZ,該頻率有利于提高串口的通信可靠性,同時(shí)又保證單片機(jī)有較高的運(yùn)行速度。</p><p><b> 3.2復(fù)位電路</b></p><p> 單片機(jī)在開機(jī)時(shí)都需要復(fù)位,以便CPU及其他功能部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。單片機(jī)復(fù)位電路工作原理:當(dāng)通電瞬間 穩(wěn)壓電源給電容充電。RESET為復(fù)位輸入端,當(dāng)RESET引腳持續(xù)兩個(gè)機(jī)器
31、周期以上的高電平時(shí),使單片機(jī)完成復(fù)位操作,隨著電容充電結(jié)束,將使電容與電阻之間將呈現(xiàn)低電平,單片機(jī)復(fù)位結(jié)束。復(fù)位操作的主要功能是把PC初始化為0000H,使單片機(jī)程序存儲(chǔ)器從0000H單元開始執(zhí)行程序。本設(shè)計(jì)主要采用上電自動(dòng)復(fù)位電路,其電路圖如圖4所示</p><p><b> 3.3時(shí)鐘電路</b></p><p> 本篇論文選擇的方案中采用的是內(nèi)部振蕩方式。采
32、用內(nèi)部方式時(shí)在XTAL1和XTAL2引腳上接石英晶體和微調(diào)電容可以構(gòu)成振蕩器,如圖5所示。圖中C1、C2起穩(wěn)定振蕩頻率、快速起振的作用。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路中使用較多。振蕩頻率的選擇范圍為1MHz~12MHz。</p><p><b> 3.4顯示電路</b></p><p> 顯示器件有很多種,常用的有發(fā)光二極管,數(shù)碼管,液晶顯示器等,本
33、文采用8位共陰極LED動(dòng)態(tài)掃描顯示,SN74HC273N輸出所需字形,SN74HC273N選擇字位。在動(dòng)態(tài)方式中,逐個(gè)地循環(huán)地點(diǎn)亮各位顯示器。如圖所示:</p><p><b> 數(shù)碼管顯示電路</b></p><p> 顯示譯碼電路部分由P0口輸出顯示包含:</p><p> 顯示譯碼電路 顯示譯碼電路</p><p
34、><b> 3.5鍵控電路</b></p><p> 鍵盤是微機(jī)應(yīng)用系統(tǒng)中使用最廣泛的一種數(shù)據(jù)輸入設(shè)備,按照鍵盤按鍵的結(jié)構(gòu)形式,可分為獨(dú)立式鍵盤和矩陣式鍵盤。本文主要采用矩陣式鍵盤,此鍵盤控制電路主要是用于調(diào)整時(shí)間 </p><p><b> 4 軟件設(shè)計(jì)</b></p><p> 4.1 基本任務(wù) <
35、;/p><p> 利用單片機(jī)系統(tǒng)設(shè)計(jì)電秒表計(jì)時(shí)器</p><p> 4.2 按鍵定義及顯示標(biāo)志</p><p> 1.設(shè)置按鍵S13,當(dāng)S13按下時(shí),秒表計(jì)時(shí)停止,數(shù)碼管顯示當(dāng)前數(shù)值,再次按下時(shí)恢計(jì)時(shí)。</p><p> 2.當(dāng)停止計(jì)時(shí)時(shí),按下S14鍵,可以設(shè)置秒數(shù),按鍵S1-S10分別對(duì)應(yīng)數(shù)字0-9;先輸入數(shù)字為十位數(shù),后輸入數(shù)字為個(gè)位
36、數(shù),若輸入數(shù)字大于99,數(shù)碼管顯示“99”。按下S13鍵啟動(dòng)計(jì)時(shí)。</p><p> 3.設(shè)置按鍵S15,當(dāng)S15按下時(shí),數(shù)碼管顯示為“99”,秒表從新開始計(jì)時(shí)。</p><p><b> 4.3主程序框圖</b></p><p><b> 5 小結(jié)</b></p><p> 通過這次的課程
37、設(shè)計(jì)作品的制作讓我對(duì)單片機(jī)的理論有了更加深入的了解,同時(shí)在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識(shí)與實(shí)際的應(yīng)用存在著不小的差距,書本上的知識(shí)很多都是理想化后的結(jié)論,忽略了很多實(shí)際的因素,或者涉及的不全面,可在實(shí)際的應(yīng)用時(shí)這些是不能被忽略的,我們不得不考慮這方的問題,這讓我們無法根據(jù)書上的理論就輕易得到預(yù)想中的結(jié)果,有時(shí)結(jié)果甚至很差別很大。通過這次實(shí)踐使我更深刻的體會(huì)到了理論聯(lián)系實(shí)際的重要性,我們?cè)诮窈蟮膶W(xué)習(xí)工作中會(huì)更加的注重實(shí)際,避免稱
38、為只會(huì)紙上談兵的趙括。</p><p><b> 參考文獻(xiàn):</b></p><p> 1、胡漢才,《單片機(jī)原理及其接口技術(shù)》(2版),清華大學(xué)出版社 </p><p> 2、單片機(jī)實(shí)驗(yàn)指導(dǎo)書</p><p> 3、張毅剛,彭喜元,孟升衛(wèi),劉兆慶 MCS-51單片機(jī)實(shí)用子程序設(shè)計(jì)(第二版) 哈爾濱工業(yè)大學(xué)出版
39、社 2003年</p><p> 4、孫育才,《MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用》,東南大學(xué)出版社</p><p> 5、曹巧媛,《單片機(jī)原理及應(yīng)用——教學(xué)、實(shí)踐、設(shè)計(jì)指導(dǎo)》,電子工業(yè)出版社</p><p> 6、謝自美,《電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試》(2版),華中科技大學(xué)出版社</p><p> 7、 求是
40、科技 單片機(jī)通信技術(shù)與工程實(shí)踐 人民郵電出版社 2005年</p><p><b> 附錄</b></p><p> 附錄一 單片機(jī)印刷電路板原理圖</p><p><b> 附錄二 元件清單</b></p><p><b> 單片機(jī)主板</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等.壓縮文件請(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)-秒計(jì)時(shí)器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)60秒計(jì)時(shí)器的設(shè)計(jì)與仿真
- 單片機(jī)課程設(shè)計(jì)--00-59_秒計(jì)時(shí)器
- 60秒倒計(jì)時(shí)器-單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---(00-59秒計(jì)時(shí)器設(shè)計(jì))
- 60秒倒計(jì)時(shí)器-單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)--音樂倒數(shù)計(jì)時(shí)器
- 單片機(jī)時(shí)鐘計(jì)時(shí)器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---籃球比賽計(jì)分計(jì)時(shí)器
- 基于c語言單片機(jī)倒數(shù)計(jì)時(shí)器課程設(shè)計(jì)
- 單片機(jī)答辯倒計(jì)時(shí)器課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)-基于單片機(jī)音樂倒數(shù)計(jì)時(shí)器的設(shè)計(jì)
- 基于單片機(jī)的紅外計(jì)時(shí)器
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)--答辯倒計(jì)時(shí)器
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)電子時(shí)鐘
- 基于c語言單片機(jī)倒數(shù)計(jì)時(shí)器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)籃球計(jì)分器
- 單片機(jī)課程設(shè)計(jì)--- 單片機(jī)電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——籃球計(jì)時(shí)計(jì)分器
評(píng)論
0/150
提交評(píng)論