《單片機課程設計 外部脈沖計數(shù)器》由會員分享,可在線閱讀,更多相關《單片機課程設計 外部脈沖計數(shù)器(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、目錄
摘要:單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能集成到一塊硅片上構成的一個小而完善的計算機系統(tǒng)。本課程設計的指導思想是控制單片機實現(xiàn)從0到99的計數(shù)功能,其結果顯示在兩位一體的共陽極數(shù)碼管上。
關鍵詞:脈沖計數(shù)器 數(shù)碼管 單片機
本設計基于單片機技術原理,以單片機芯片STC89C52作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設計制作出一個計數(shù)器,包括以下功能:輸出脈沖,按下鍵就開始計數(shù),并將數(shù)值顯示在兩位一體
2、的共陽極數(shù)碼管上。
1課題原理
PCB板上設置開始計數(shù)按鍵和清零按鍵,以上按鍵與89C52單片機的P1口連接,通過查詢按鍵是否被按下來判斷進行計數(shù)或者清零。若按下計數(shù)健,則單片機控制兩位一體的共陽極數(shù)碼管顯示從00開始的數(shù)字,按下一次,則數(shù)字加一,一次類推;若按下清零鍵,則程序返回程序開始處,并且數(shù)碼管顯示00。
2 硬件及軟件設計
2.1 硬件系統(tǒng)
2.1.1 硬件系統(tǒng)設計
此設計是在單片機最小系統(tǒng)的基礎上進行開發(fā)和拓展,增加了按鍵電路和和數(shù)碼管顯示電路,由于單片機輸出電流不足以驅動數(shù)碼管發(fā)光,所以數(shù)碼管需要驅動電路。我們采用了三極管對數(shù)碼管電流進行放大,使
3、電流大小達到要求值。
2.1.2 單元電路設計
基本框架如下圖2.1
加
一
按
鍵
開
始
按
鍵
清零按鍵
數(shù)碼管
顯示
89C52單片機
控制
2.1基本框架圖2.2 計數(shù)器原理圖
圖2.3 計數(shù)器PCB圖
1.STC89C52芯片
STC89C52RC芯片包括: 8k字節(jié)Flash,512字節(jié)RAM, 32位I/O口線,看門狗定時器,兩個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口, 片內(nèi)晶振及時鐘電路。STC89C52RC芯片可降至0H
4、z靜態(tài)邏輯操作,時鐘頻率0-80MHz,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結, 單片機一切工作停止,直到下一個中斷或硬件復位為止。8位微控制器8K字節(jié)在系統(tǒng)可編程。芯片如圖2.4所示。
圖2.4 STC89C52芯片
2.按鍵電路
K1鍵為啟動鍵,K2鍵為清零鍵,K3鍵為計數(shù)鍵,通過按鈕的連接,實現(xiàn)開始、計數(shù)清零功能,連接電路如圖2.5所示。
圖2.5 按鍵電路
5、
3.復位電路
單片機的第9腳RST為硬件復位端,只要將該端持續(xù)4個機器周期的高電平即可實現(xiàn)復位,復位后單片機的各狀態(tài)都恢復到初始化狀態(tài),其電路圖如圖2.6所示:
圖2.6復位電路
4.晶振電路
單片機必須在時鐘的驅動下才能工作。在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。時鐘電路如下圖2.7所示。
圖2.7 晶振電路
5.數(shù)碼管顯示電路
選用的是兩位一體的共陽數(shù)碼管,將P0口分別接數(shù)碼管的八段發(fā)光二極管,將電源VCC端口接經(jīng)數(shù)碼管位選三極管,構成顯示電路。電路圖如圖2.8所示
6、
圖2.8 數(shù)碼管顯示電路
6.電平轉換與PC機接口電路
電平轉換電路,實現(xiàn)芯片與PC機的電壓相匹配,同時實現(xiàn)與PC機之間的連接。電路圖如圖2.9所示
圖2.9電平轉換與PC機接口電路
2.2 軟件系統(tǒng)
2.2.1 軟件系統(tǒng)分析
1.單片機機器接口設計;
2.數(shù)碼管顯示電路設計,兩位數(shù)碼管顯示;
3.按鍵取值電路設計,K1,K2,K3 分別控制計數(shù)器的開始,清零和加一。
2.2.2 流程圖
外部脈沖計數(shù)器的軟件流程圖如圖2.10
注:K1鍵是啟動鍵;K2鍵是復位鍵;K3鍵是外部脈沖鍵。
K1鍵接P0口;K2鍵接P1口;K3鍵P2口.
Y
7、N
Y
N
Y
N
N
Y
Y
N
顯示
R1加一
R1≥9?
R0≥9?
K3按下?
K2按下?
K1按下?
顯示
R0加一
R0清零
#DPTR→DPTR
R0,R1清零
圖2.10 外部脈沖計數(shù)器的流程圖
2.2.3 程序
匯編語言源程序:
ORG 0000H
LJMP START
ORG 0100H
START: JB P1.0 ,
8、 START ;檢查K1是否按下
LCALL DELAY1 ;消除抖動
JB P1.0,START
MOV R0,#0 ;個位清零
MOV R1,#0 ;十位清零
MOV DPTR,#DTAB ;表格首地址賦給DPTR,為后面顯示做準備
JISHU: JNB P1.1,D3 ;檢查K2否按下 ,如果按下則復位
LCALL DISPLAY
JB P1.2,JISHU ;檢查有沒脈沖
9、
LCALL DELAY1 ;消除抖動
JB P1.2,JISHU ;確認有脈沖
MOV DPTR,#DTAB ;表格首地址賦給DPTR,為后面顯示做準備
CJNE R0,#9H,SMALL ;判斷個位是否等于9,等于9則跳到SAMLL
SMALL: JNC BIG ;判斷是否大于9,大于9則跳到BIG
INC R0
LCALL DISPLAY
AJMP JISHU
BIG: MOV R0,#00H
10、 ;個位清零
CJNE R1,#9H,D1 ;判斷十位是否等于9
D1: JNC D3 ;判斷是否大于9,大于9 則跳到D3
INC R1
AJMP JISHU
D3: MOV R0,#0 ;個位清零
MOV R1,#0 ;十位清零
AJMP JISHU ;循環(huán)計數(shù)
DISPLAY:CLR A ;顯示程序
CLR P1.4
MOV A,R
11、0
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P1.4
CLR P1.5
CLR A
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P1.5
JNB P1.1,LOOP
JNB P1.2,LOOP
AJMP DISPLAY
LOOP: RET
DTAB: DB 0C0H,0F9H,
12、0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H
DELAY: MOV R7,#012H ;短延時子程序
DEL1: MOV R6,#0FFH
DEL2: DJNZ R6,DEL2
DJNZ R7,DEL1
RET
DELAY1: MOV R7,#06FH ;長延時子程序
DEL3: MOV R6,#0FFH
DEL4: DJNZ R6,DEL4
DJNZ R7,DEL3
RET
END
3實習心得
4 參考文獻
[1] 張毅剛 單片機原理及應用 高等教育出版社
[2] 吳炳勝 80C51 單片機原理與應用技術 冶金工業(yè)出版社
[3] 鄒久明 80C51 單片機實用技術 北京航空航天大學出版社
[4] 孫俊逸 單片機原理及應用 清華大學出版社
[5] 張大明 單片微機控制應用技術實操指導書機 械工業(yè)出版社
[6] 胡漢才 單片機原理及其接口技術 清華大學出版社