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