實驗四 數碼管顯示控制_第1頁
實驗四 數碼管顯示控制_第2頁
實驗四 數碼管顯示控制_第3頁
實驗四 數碼管顯示控制_第4頁
實驗四 數碼管顯示控制_第5頁
已閱讀5頁,還剩7頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗四實驗四 數碼管顯示控制數碼管顯示控制 一 實驗目的一 實驗目的 1 熟悉 Keil uVision2 軟件的使用 2 掌握 LED 數碼管顯示接口技術 3 理解單片機定時器 中斷技術 二 實驗設備及儀器實驗設備及儀器 Keil Vision2 軟件 單片機開發板 PC 機一臺 三 實驗原理及內容三 實驗原理及內容 1 開發板上使用的 LED 數碼管是四位八段共陰數碼管 將公共端 COM 接地 GND 其內部結構原理圖 如圖 4 1 所示 圖 4 1 共陰四位八段 LED 數碼管的原理圖 圖 4 1 表明共陰四位八段數碼管的 位選端 低電平有效 段選端 高電 平有效 即當數碼管的位為低電平 且數碼管的段為高電平時 相應的段才會 被點亮 實驗開發板中 LED 數碼管模塊的電路原理圖 如圖 4 2 所示 a h SP2 SP1 P0 0 P0 3 P0 4 P0 7 圖 4 2 LED 數碼管模塊電路原理圖 圖中 當 P1 0 段控制 有效時 P0 0 P0 7 分別對應到數碼管的 a h 段 當 P1 1 位控制 有效時 P0 0 P0 7 分別對應到 DIG1 DIG8 訓練內容一 輪流點亮數碼管來檢測數碼管是否正常 參考程序 ORG 00H AJMP MAIN MAIN SETB P1 2 LED 流水燈模塊鎖存器的控制位 MOV P0 0FFH 關閉 LED 燈 CLR P1 2 SETB P1 3 點陣模塊的行控制鎖存器 MOV P0 0 關閉點陣行 CLR P1 3 MOV A 11111110B 數碼管 位選信號 初值 低電平有效 LOOP SETB P1 1 數碼管位控制鎖存器有效 MOV P0 A CLR P1 1 RL A 形成新的 位選信號 為選擇下一位數碼管做準備 SETB P1 0 數碼管段控制鎖存器有效 MOV P0 0FFH 數碼管的所有段點亮 顯示 8 CLR P1 0 CALL DELAY SJMP LOOP DELAY MOV R5 0 延時子程序 D1 MOV R6 0 D2 NOP DJNZ R6 D2 DJNZ R5 D1 RET END 訓練內容二 靜態顯示 0 9 計數 參考程序 ORG 00H AJMP MAIN MAIN SETB P1 2 MOV P0 0FFH 關閉 LED 燈 CLR P1 2 SETB P1 3 MOV P0 0 關閉點陣行 CLR P1 3 MOV A 11111110B SETB P1 1 MOV P0 A 數碼管 位選 CLR P1 1 MOV DPTR TABLE 初始化表首地址 LOOP MOV R0 0 顯示數字從 0 開始 MOV R1 10 顯示數字個數 NEXT MOV A R0 MOVC A A DPTR 查表 獲取顯示字型碼 SETB P1 0 數碼管段控制鎖存器有效 MOV P0 A 顯示 CLR P1 0 INC R0 下一個數字 ACALL DELAY DJNZ R1 NEXT SJMP LOOP DELAY MOV R5 0 D1 MOV R6 0 D2 NOP NOP DJNZ R6 D2 DJNZ R5 D1 RET TABLE DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 共陰字碼表 0 9 END 訓練內容三 動態顯示 00 99 計數 動態顯示 也稱掃描顯示 是一種按位輪流點亮各位數碼管的顯示方式 即在某個時刻 只讓其中某一個數碼管 位選端 有效 并送出相應的字型顯 示碼 此時 其他的數碼管因 位選端 無效而處于熄滅狀態 下一時刻 按 順序選通另一個數碼管 并送出相應的字型顯示碼 依此規律循環下去 即可 使各位數碼管分別間斷地顯示出相應的字符 由于人眼的 視覺駐留效應 只 要能保證每個數碼管顯示間斷的時間間隔小于眼睛的駐留時間 就可以給人一 種連續顯示的視覺效果 在顯示位數較多時 動態顯示方式可節省 I O 接口資源 硬件電路與靜態 顯示方式簡單 但其顯示亮度低于靜態顯示方式 由于 CPU 要不斷地依次掃描 顯示程序 將占用 CPU 更多的時間 若顯示位數較少 采用靜態顯示方式更加 簡便 參考程序 ORG 00H AJMP MAIN MAIN SETB P1 2 LED 流水燈模塊鎖存器的控制位 MOV P0 0FFH 關閉 LED 燈 CLR P1 2 SETB P1 3 點陣模塊的行控制鎖存器 MOV P0 0 關閉點陣行 CLR P1 3 MOV DPTR TABLE 初始化表首地址 START MOV R0 0 顯示數據的初值 從數字 0 開始顯示 NEXT MOV A R0 MOV B 10 DIV AB 分解將要顯示的數據 分為十位 個位 MOV R2 A 十位送 R2 MOV R3 B 個位送 R3 MOV R1 100 每個數字顯示的次數 100 次 即更長延時 LOOP VIEW MOV A R2 MOVC A A DPTR 獲取十位的顯示碼 SETB P1 0 MOV P0 A 顯示十位 CLR P1 0 SETB P1 1 MOV P0 11111110B 位選 選中顯示十位的數碼管 CLR P1 1 ACALL DELAY MOV A R3 MOVC A A DPTR 獲取個位的顯示碼 SETB P1 0 MOV P0 A 顯示個位 CLR P1 0 SETB P1 1 MOV P0 11111101B 位選 選中顯示個位的數碼管 CLR P1 1 ACALL DELAY DJNZ R1 LOOP VIEW 每個數字循環顯示 R1 次 即延時 INC R0 下一個數字 CJNE R0 100 NEXT 若小于 100 繼續計數和顯示 若大于 100 則從 0 開始重新計數 SJMP START DELAY MOV R6 25 延時子程序 1ms D1 MOV R7 20 D2 DJNZ R7 D2 DJNZ R6 D1 RET TABLE DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 共陰字碼表 0 9 END 訓練內容四 利用定時器中斷實現 60 秒計時 具有啟動按鍵和清 0 按鍵 說明 利用定時器 T0 產生 50ms 的延時 即每 50ms 中斷一次 計滿 20 次 20 50ms 1s 秒計數單元加 1 4 位獨立按鍵電路原理圖 如圖 4 3 所示 4 位獨立按鍵使用了 P2 4 P2 5 P2 6 P2 7 四位 I O 口 當鍵按下時 為低電平 因此 可以通過 檢測低電平來檢測按鍵是否按下 本實驗中 選用 s6 為啟動按鍵 s11 為暫停 按鍵 A18 為清 0 按鍵 采用查詢法檢測按鍵狀態 在按下暫停按鍵或清 0 按 鍵后 需重新按下啟動按鍵 才能繼續計時 圖 4 3 四位獨立按鍵 流程圖如圖 4 4 4 5 4 6 所示 關閉流水燈 點陣模塊 初始化 定時器T0 中斷 DPTR 表首地址 T0中斷次數20 R0 顯示初值0 R1 啟動定時器T0 調用數碼管顯示子程序 暫停定時器T0 啟動按鍵 開始 N N Y 暫停按鍵 Y 暫停定時器T0 T0中斷次數20 R0 顯示初值0 R1 N 清0按鍵 Y 圖 4 4 主程序流程圖 數碼管顯示位數2 R3 位選信號初值11111110B R2 顯示值R0清0 分別取十位 個位的字型碼并顯示 延時 顯示值R0 60 顯示子程序 N Y N R3 1 0 或2位取完 Y 分解成十位 個位 子程序返回 圖 4 5 數碼管掃描顯示程序 保護現場 重新裝載T0初值 重置中斷次數 R0 20 1s T0中斷子程序 N Y 秒單元R1加1 中斷返回 圖 4 6 T0 中斷服務子程序 參考程序 ORG 00H JMP MAIN ORG 0BH JMP TIM0 MAIN SETB P1 2 LED 流水燈模塊鎖存器的控制位 MOV P0 0FFH 關閉 LED 燈 CLR P1 2 SETB P1 3 點陣模塊的行控制鎖存器 MOV P0 0 關閉點陣行 CLR P1 3 MOV TMOD 01H 定時器 T0 工作在方式 2 MOV TH0 HIGH 15536 MOV TL0 LOW 15536 初值 50ms MOV IE 82H 開中斷 MOV DPTR TABLE 表首地址 MOV R0 20 存放定時器中斷的循環次數 MOV R1 0 顯示初值 從 0 開始顯示 START JB P2 4 IF STOP 啟動按鍵 s6 啟動定時器 T0 SETB TR0 啟動定時器 T0 IF STOP JB P2 5 IF CLR 暫停按鈕 S11 CLR TR0 IF CLR JB P2 6 LED SCAN 清 0 按鈕 s18 CLR TR0 MOV R0 20 MOV R1 0 LED SCAN ACALL SCAN 調用顯示子程序 SJMP START SCAN 掃描顯示子程序 CJNE R1 60 LED VIEW 到 60 則清零 MOV R1 0 LED VIEW MOV A R1 分解數字 MOV B 10 DIV AB MOV 20H B 個位 MOV 21H A 十位 MOV R2 11111110B 位選信號的初值 MOV R3 2 數碼管顯示 2 位數 MOV A 21H 個位 準備顯示 DISP 分別顯示十位 個位 MOVC A A DPTR SETB P1 0 MOV P0 A 顯示字型碼 CLR P1 0 SETB P1 1 MOV P0 R2 輸出位選信號 CLR P1 1 MOV A R2 形成下一個位選信號 RL A MOV R2 A CALL DELAY 掃描延時 MOV A 20H 十位 準備顯示 DJNZ R3 DISP RET TIM0 定時器 T0 中斷子程序 PUSH ACC 現場保護 MOV TH0 HIGH 15536 重新裝載初值 TH0 TL0 MOV TL0 LOW

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論