- 相關(guān)推薦
單片機(jī)運(yùn)用于限時(shí)投籃命中的統(tǒng)計(jì)(一)
一、控制要求與運(yùn)用
控制要求
1、當(dāng)00~99計(jì)數(shù)時(shí),設(shè)置按鈕S1、S2、S3。當(dāng)按下S1數(shù)值加1,當(dāng)按下S2數(shù)值減1。其數(shù)值在00~99之間循環(huán)變化。S3為復(fù)位按鈕,當(dāng)按下S3系統(tǒng)計(jì)數(shù)值為00。
2、當(dāng)00~99秒計(jì)時(shí),數(shù)值從00~99循環(huán)變化,當(dāng)按下S3時(shí)計(jì)時(shí)值為00。
3、當(dāng)計(jì)數(shù)值小于60時(shí),發(fā)光二極管以1HZ頻率閃爍,但當(dāng)計(jì)數(shù)值大于或等于60時(shí),發(fā)光二極管以2HZ頻率閃爍。
運(yùn)用
1、00~99計(jì)時(shí)運(yùn)用于投籃的時(shí)間
2、00~99計(jì)數(shù)運(yùn)用于投籃命中的個(gè)數(shù)
3、當(dāng)投籃數(shù)大于等于60的時(shí)候,發(fā)光二極管以2HZ頻率閃爍,則表示以過關(guān)
二、硬件電路
(一)、單片機(jī)簡介
AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如左圖所示
(1)主要特性
·與MCS-51 兼容 ·4K字節(jié)可編程閃爍存儲(chǔ)器 ·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保留時(shí)間:10年·全靜態(tài)工作:0Hz-24Hz·三級(jí)程序存儲(chǔ)器鎖定·128×8位內(nèi)部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器· 5個(gè)中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路
圖1 89C51芯片引腳排列圖
(2)管腳說明:
VCC:供電電壓。 GND:接地。 P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口: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)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口。管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時(shí)器0外部輸入) P3.5 T1(記時(shí)器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)
機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,
置位無效。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電
源(VPP)。 XTAL1:反向振蕩放大器的輸出及內(nèi)部時(shí)鐘作電路的輸入。 XTAL2:來自反向振蕩器的輸出。
(二)、單元電路介紹
電路框圖
電路原理圖
(1)復(fù)位電路
89C51芯片上的RST引腳是復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效。
圖3 復(fù)位方式
復(fù)位操作有上電自動(dòng)復(fù)位(上圖a)和按鍵手動(dòng)復(fù)位兩種方式按鍵手動(dòng)復(fù)位又分為電平方式(上圖b)和脈沖方式(上圖c)。我在電路設(shè)計(jì)中采用按鍵電平復(fù)位方式,只要按下按鈕電源通過電阻R2給RET一個(gè)高電平,使電路復(fù)位。
(2)按鍵電路
單片機(jī)使用鍵盤分為獨(dú)立式和矩陣式兩種。
從按一個(gè)鍵到鍵的功能被執(zhí)行主要應(yīng)包括兩個(gè)工作:一是鍵盤識(shí)別,另一個(gè)是鍵功能的實(shí)現(xiàn)。
鍵盤接口應(yīng)完成以下操作功能:
鍵盤掃描,以判定是否有鍵被按下。
鍵識(shí)別,一確定閉合鍵的行列位置。
產(chǎn)生閉合鍵的鍵碼
排除多鍵、串鍵及去抖動(dòng)。
我們這里用的是獨(dú)立式按鍵。
按鍵按下后,P口為低電平,斷開鍵,為高電平。
SB1控制定時(shí)器定時(shí)時(shí)間修改。SB2啟動(dòng)/設(shè)定
圖4
(3)晶振電路
AT89C51單片機(jī)的時(shí)鐘信號(hào)通常由兩種方式產(chǎn)生:一是內(nèi)部振蕩方式(下圖a),二是外部時(shí)鐘方式(下圖b)。
(a) 內(nèi)部方式時(shí)鐘電路 (b) 外部方式時(shí)鐘電路
圖 5
1、內(nèi)部振蕩方式
在89C51單片機(jī)內(nèi)部有一個(gè)高增益的反相放大器,用于構(gòu)成振蕩
器,反相放大器的輸入端為XTAL1,輸出端為XTAL2。
⑴ 內(nèi)部振蕩方式是在XTAL1和XTAL2引腳兩端跨接石英晶
體振蕩器和兩個(gè)電容構(gòu)成穩(wěn)定的自激振蕩電路。
⑵ 電容C1和C2通常取30pF,對振蕩頻率有微調(diào)作用。晶振
頻率范圍是1.2MHz~12MHz。
2、 外部時(shí)鐘方式
外部時(shí)鐘方式是把外部已有的時(shí)鐘信號(hào)引入到單片機(jī)內(nèi)。
⑴AT89C51:外部時(shí)鐘由XTAL2輸入,直接送入內(nèi)部時(shí)鐘電路,XTAL1接地;
⑵AT89C51:外部時(shí)鐘由XTAL1輸入,XTAL2懸空。
⑶外部時(shí)鐘信號(hào)為高電平持續(xù)時(shí)間要大于20ns,且頻率低于
12MHz的方波。
(4)LED數(shù)碼顯示
1、數(shù)碼管的分類
數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極
接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。
圖6 四位共陽極數(shù)碼管
本論文采用四位共陽極數(shù)碼管 (如圖6所示)
2、數(shù)碼管的驅(qū)動(dòng)方式數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以
分為靜態(tài)式和動(dòng)態(tài)式兩類。 ??(1) 靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用得I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。 ??(2) 動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。
(三)、電路總原理圖
三、軟件設(shè)計(jì)
(一)、程序設(shè)計(jì)
程序設(shè)計(jì)主要運(yùn)用了中斷和定時(shí)器/計(jì)數(shù)器知識(shí)在編寫程序之前先把這兩個(gè)系統(tǒng)的基本情況介紹一下。
(1)中斷系統(tǒng)
1、中斷的概念
(1)在單片機(jī)中,當(dāng)CPU在執(zhí)行程序時(shí),由單片機(jī)內(nèi)部或外部的原因引起的隨機(jī)事件要求CPU暫時(shí)停止⭣在執(zhí)行的程序,而轉(zhuǎn)向執(zhí)行一處用于處理該隨機(jī)事件的程序并處理完后又返回被停止的程序處繼續(xù)執(zhí)行,這一過程就稱為中斷。
(2)單片機(jī)處理中斷的4個(gè)步驟:中斷請求、中斷響應(yīng)、中斷處理和中斷返回。
(3)向CPU發(fā)出中斷請求的來源,或引起中斷錯(cuò)原因稱中斷源。中斷源要求服務(wù)的請求稱為中斷請求。中斷源可分為兩大類:一類來自單片機(jī)內(nèi)部,稱之為內(nèi)部中斷源;另一類來自單片機(jī)外部,稱之為外部中斷源。
圖 8
2、中斷系統(tǒng)結(jié)構(gòu)
(1)8051單片機(jī)的中斷系統(tǒng)主要由與中斷有關(guān)的4個(gè)特殊功能寄存器和硬件查詢電路等組成。
1) 定時(shí)器控制寄存器TCON ——主要用于保存中斷信息。
2) 串行口控制寄存器SCON ——主要用于保存中斷信息。
3) 中斷允許寄存器IE ——主要用于控制中斷的開放和關(guān)閉。
4) 中斷優(yōu)先級(jí)寄存器IP——主要用于設(shè)定優(yōu)先級(jí)別。
5) 硬件查詢電路——主要用于判定5個(gè)中斷源的自然優(yōu)先級(jí)別。
(2)8051單片機(jī)的中斷源有五個(gè),可分為三類。
1) 外部中斷
2) 定時(shí)中斷
3)串行口中斷
(3)中斷系統(tǒng)控制
定時(shí)器控制寄存器TCON
定時(shí)器控制寄存器TCON的作用是控制定時(shí)器的啟動(dòng)與停止,并保存T0、T1的溢出中斷標(biāo)志和外部中斷、的中斷標(biāo)志。
TCON的格式:
各位的功能說明:
1) TF1(TCON.7):定時(shí)器1溢出標(biāo)志位。定時(shí)器1被啟動(dòng)計(jì)數(shù)后,從初值開始進(jìn)行加1計(jì)數(shù),當(dāng)定時(shí)器1計(jì)滿溢出時(shí),由硬件自動(dòng)使TF1置1,并申請中斷。該標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動(dòng)清0。也可用軟件查詢該標(biāo)志,并由軟件清0。
2) TR1(TCON.6):定時(shí)器1啟?刂莆弧
3) IT1(TCON.2):外部中斷1觸發(fā)方式選擇位。
4) IE1(TCON.3):外部中斷1請求標(biāo)志位。IEl=1表示外部中斷1向CPU申請中斷。當(dāng)CPU響應(yīng)外部中斷1的中斷請求時(shí),由硬件自動(dòng)使IE1清0(邊沿觸發(fā)方式)。
5) TF0(TCON.5):定時(shí)器0溢出標(biāo)志位。其功能同TF1。
6) TR0(TCON.4):定時(shí)器0啟、停控制位。其功能同TR1。
7) IE0(TCON.1):外部中斷0請求標(biāo)志位。其功能同IE1。
8) IT0(TCON.0):外部中斷0觸發(fā)方式選擇位。其功能同IT1。
(2)定時(shí)器/計(jì)數(shù)器
1、定時(shí)器/計(jì)數(shù)器的工作方式寄存器TMOD
定時(shí)器/計(jì)數(shù)器是一種可編程部件,在工作之前必須通過軟件設(shè)定它的工作方式,即對工作方式寄存器TMOD中每位進(jìn)行設(shè)定。下面介紹每位的含義:
TMOD(89H)
其中,低4位用于決定T0的工作方式,高4位用于決定T1的工作方式。
(1)M1和M0工作方式控制位
M0和M1為工作方式控制位,確定4種工作方式,如表7-1所示。
(2)C/T定時(shí)器/計(jì)數(shù)器方式選擇位
C/T=0,設(shè)置為定時(shí)方式,對機(jī)器周期進(jìn)行計(jì)數(shù);
C/T=1,設(shè)定為計(jì)數(shù)方式,對外部信號(hào)進(jìn)行計(jì)數(shù),外部信號(hào)接至T0(P3.4)或T1(P3.5)引腳。
2、定時(shí)器/計(jì)數(shù)器的控制寄存器TCON
設(shè)定好了定時(shí)器/計(jì)數(shù)器的工作方式后,它還不能進(jìn)入工作狀態(tài),必須通過設(shè)置控制寄存器TCON中的某些位來啟動(dòng)它工。要使定時(shí)器/計(jì)數(shù)器停止運(yùn)行,也必須通過設(shè)置TCON中的某些位來實(shí)現(xiàn)。當(dāng)定時(shí)器/計(jì)數(shù)器計(jì)滿溢出,或有外部中斷請求時(shí),TCON能標(biāo)明溢出和中斷情況。下面介紹控制寄存器TCON每位的含義:
TF1:定時(shí)器T1溢出標(biāo)志位。當(dāng)定時(shí)器T1溢出時(shí),由硬件自動(dòng)使TF1置1,并向CPU申請中斷。CPU響應(yīng)中斷后,自動(dòng)對TF1清零。TF1也可以用軟件清零。
TR1:定時(shí)器T 1運(yùn)行控制位。可由軟件置1(或清零)來啟動(dòng)(或關(guān)閉)定時(shí)器T1,使定時(shí)器T1開始計(jì)數(shù)。用指令SETB TR1(或CLR TR1)使TR1置1(或清零)。
TF0:定時(shí)器T0溢出標(biāo)志位。其功能與TF1相同。
TR0:定時(shí)器T0運(yùn)行控制位。其功能與TR1相同。
IE1:外部中斷1請求標(biāo)志位。
IT1:外部中斷1觸發(fā)方式控制位。
IE0:外部中斷0請求標(biāo)志位。
IT0:外部中斷0觸發(fā)方式控制位。
IE1、IT1、IE0、IT0這4位將在第3節(jié)講述。
控制寄存器TCON的位地址是88H,可以對它進(jìn)行位尋址。
(二)、單片機(jī)控制的計(jì)時(shí)計(jì)數(shù)器設(shè)計(jì)
1、00~99計(jì)數(shù),按鈕S1、S2分別控制加1,減1計(jì)數(shù)在00~99之間循環(huán)變化,系統(tǒng)復(fù)位時(shí)計(jì)數(shù)值為00。
2、00~99秒計(jì)時(shí),循環(huán)變化,復(fù)位時(shí)計(jì)時(shí)值為00。
3、但記數(shù)值小于60時(shí),發(fā)光管以1HZ頻率閃爍,但記數(shù)值大于等于60時(shí),發(fā)光管以2HZ頻率閃爍。
ORG 0000H ;設(shè)置初始地址
AJMP MAIN
ORG 000BH ;中斷LT0地址
AJMP LT0
ORG 001BH ;中斷LT5地址
AJMP LT5
MAIN:MOV TMOD,#11H;定時(shí)工作方式1
MOV TH1,#0ECH ;設(shè)置初始值
MOV TL1,#78H
SETB EA ;開中斷
SETB ET1 ;定時(shí)器1允許中斷
SETB TR1 ;開定時(shí)1
MOV P2,#0FEH ;設(shè)置位控
MOV 30H,#12H ;顯示初始值
MOV 31H,#23H
MOV TH0,#3CH ;設(shè)置初始值
MOV TL0,#0B0H
SETB ET0 ;定時(shí)器0中斷允許
SETB TR0 ;開定時(shí)0
MOV R0,#0AH ;設(shè)置循環(huán)次數(shù)
MOV R1,#14H
MOV R2,#05H
MOV DPTR,#TAB;定義字型碼
MAIN1:JB P3.6,MAIN2 ;判加鍵是否按下
ACALL LOOP
JB P3.6,MAIN2 ;判是否抖動(dòng)
ACALL LOOP
JB P3.6,MAIN2 ;再判加鍵是否按下
ACALL LOOP
L1:JNB P3.6,L1 ;判鍵是否松開
MOV A,30H
CLR C
INC A ;顯示數(shù)加1
DA A
MOV 30H,A ;顯示數(shù)字
MAIN2:JB P3.7,MAIN1;判減鍵是否按下
ACALL LOOP
JB P3.7,MAIN1 ;判是否抖動(dòng)
ACALL LOOP
JB P3.7,MAIN1
ACALL LOOP
L2:JNB P3.7,L2 ;判減鍵是否送開
MOV A,30H
ANL A,#0FH ;屏蔽十位
JZ L3
MOV A,30H
MOV 30H,A
CLR C
DEC A ;顯示數(shù)減1
MOV 30H,A ;送顯示
AJMP MAIN1
L3:MOV A,30H
ANL A,#0F0H ;屏蔽個(gè)位
JZ L6
MOV A,30H
ORL A, #09H ;個(gè)位送9
SUBB A,#10H ;十位減1
MOV 30H,A
AJMP MAIN1
L6: MOV 30H,#99H ;30H單元賦99
AJMP MAIN1
LT5:MOV TH1,#0ECH ;重新設(shè)置初值
MOV TL1,#78H
JB P2.0,LT1 ;判是否顯示個(gè)位
MOV A,30H
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A ;段顯
AJMP LT6
LT1:JB P2.1,LT2 ;判是否顯示十位
MOV A,30H
SWAP A ;高低字節(jié)轉(zhuǎn)換
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
AJMP LT6
LT2:JB P2.2,LT3 ;判是否顯示個(gè)位
MOV A,31H
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
AJMP LT6
LT3:JB P2.3,LT6 ;判是否顯示十位
MOV A,31H
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV A,31H
AJMP LT6
LT6:MOV A,P2
RL A ;位左移
MOV P2,A ;位顯示
JB P2.4,L
MOV P2,#0FEH ;位顯值重賦
L:RETI ;LT0中斷返回
LT0:MOV TH0,#3CH
MOV TL0,#0B0H
MOV A,30H
CJNE A,#60H,L8 ;數(shù)值比較轉(zhuǎn)移
L8:JC L9 ;判是否有溢出
DJNZ R2,L9 ;判循環(huán)次數(shù)
CPL P1.0 以2HZ點(diǎn)亮LED
MOV R2,#05H
AJMP L4
L9:DJNZ R0,L7
CPL P1.0
MOV R0,#0AH ;以1HZ點(diǎn)亮LED
L7: DJNZ R1,L4 ;判1秒到否
CLR C
INC 31H ;顯示數(shù)加1
MOV A,31H
DA A
MOV 31H,A
MOV R1,#14H
L4:RETI
LOOP:MOV R5,#0AH ;延時(shí)子程序
LOOP1:MOV R4,#7CH
LOOP2:NOP
NOP
DJNZ R4,LOOP2
NOP
DJNZ R5,LOOP1
RET
TAB:DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H
DB 80H 90H 88H 83H
DB 0C6H 0A1H 86H 8EH 0FFH
END
四 小結(jié)
通過單片機(jī)控制的倒計(jì)時(shí)顯示器學(xué)習(xí),使我對單片機(jī)又有了更深刻的了解,提高了我對單片機(jī)學(xué)習(xí)的熱情,使我深刻地認(rèn)識(shí)到學(xué)好專業(yè)知識(shí)的重要性,也理解了理論聯(lián)系實(shí)際的含義.然在這次設(shè)計(jì)中對于知識(shí)的運(yùn)用和銜接還不夠熟練。但是我將在以后的工作和學(xué)習(xí)中繼續(xù)努力、不斷完善,為今后的發(fā)展打下了良好的基礎(chǔ)。
五 謝辭
論文總于完成了,在寫作過程中我遇到不少問題,但是在指導(dǎo)老師的悉心點(diǎn)撥和同學(xué)的幫助,我解決了一個(gè)又一個(gè)問題,在此我要向沈蓬和都曄凱兩位指導(dǎo)老師和同學(xué)們表示衷心的感謝!
六 參考文獻(xiàn)
《單片機(jī)基礎(chǔ)》,北京航空航天大學(xué)出版社;
《MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用》,東南大學(xué)出版社
七 元件清單
名稱 個(gè)數(shù) 名稱 個(gè)數(shù)
40腳插座 1個(gè) 共陽數(shù)碼管 4位
24腳插座 1個(gè) 電阻330Ω 9個(gè)
12MHZ晶振 1個(gè) 電阻10K 4個(gè)
電容20pf 2個(gè) 電阻520Ω 4個(gè)
電解電容47uf 1個(gè) 按鈕 3個(gè)
三極管 4個(gè) 發(fā)光二極管 1個(gè)
AT89C51 1個(gè) 電子板 1塊
【單片機(jī)運(yùn)用于限時(shí)投籃命中的統(tǒng)計(jì)(一)】相關(guān)文章:
會(huì)議發(fā)言限時(shí)器的設(shè)計(jì)方案(一)11-22
籃球投籃技術(shù)11-30
小學(xué)“限時(shí)作文”訓(xùn)練研究開題報(bào)告03-19
基于單片機(jī)技術(shù)的波形發(fā)生器采用單片機(jī)設(shè)計(jì)(一)03-07
有關(guān)多媒體CAI運(yùn)用于樂器法教學(xué)的探討03-20
一種簡單串行鼠標(biāo)控制的單片機(jī)實(shí)現(xiàn)03-18