日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实验三 七段数码显示器

發布時間:2024/3/12 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实验三 七段数码显示器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.實驗內容

使用MCS-51匯編語言編寫程序,完成以下功能:

1. 使用三個數碼管顯示十進制數值

2. 每隔0.1秒,該數值自動增一,到999后歸零繼續

3. 當開關S1按下時,暫停計數;S1松開時,恢復計數

2.顯示

本開發平臺有3個數碼管,使用串行方式連接在一起,具體電路參見實驗原理。要想輸出一個字形碼,就需要從高位到低位依次向移位寄存器輸出8個比特。移位寄存器的數據線和時鐘線分別接到單片機的P4.5和P4.4管腳,可以使用MCS-51里面的位操作指令進行輸出。連續輸出3個字形,24個bit之后,欲顯示的字形將穩定地顯示在數碼管上,程序可以轉而執行其他工作。 七段字形的編碼方式需要通過實驗獲得。這些編碼作為程序中的常數,使用DB命令存放。在程序中,需要將數值轉換為相應的字形編碼,可以使用MOVC指令來完成。

3.時間

本實驗要求的按時間顯示數值,直接通過軟件延時來實現,也就是若干次空循環來完成,不需要使用單片機內部的定時器等硬件資源。由于在后面的實驗中也要使用軟件的延時子程序,因此這里預先做準備。 本單片機使用12MHz主頻的晶振,結合MCS51的體系結構和指令時序,可以計算每條指令的運行時間,也可以通過Keil環境的調試功能來檢查程序片段的執行時間。當然,最后可以通過程序執行的總體運行結果來調整時間。希望同學能夠通過這個過程,得出一段能夠精確到1ms的子程序,重復調用100次,從而達到定時0.1s的效果。從而完成實驗要求2。

4.開關

在本實驗板上設置了兩個開關S1和S2,分布接入到8031的P3.6和P3.7,開關按下時,輸入0,松開時,輸入1。利用這個開關完成實驗要求3。

5.實驗原理

本實驗采用3個74HC164級聯控制三個數碼管的顯示,具體實驗原理如下圖所示。其中使用單片機P4.5作為模擬串口數據,使用P4.4模擬串口時鐘,CLR端接高電平。使用上一個74HC164的Q7作為下一個74HC164的輸入端。

P4 EQU 0C0H

MOV P4.4, C

SETB P4.4

74HC164是高速CMOS 器件。74HC164是8位邊沿觸發式移位寄存器,串行輸入數據,然后并行輸出。數據通過兩個輸入端(A或B)之一串行輸入;任一輸入端可以用作高電平使能端,控制另一輸入端的數據輸入。兩個輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不要懸空。

時鐘 (CLK) 每次由低變高時,數據右移一位,輸入到Q0,Q0 是兩個數據輸入端(A和B)的邏輯與,它將上升時鐘沿之前保持一個建立時間的長度。

主復位(CLR)輸入端上的一個低電平將使其它所有輸入端都無效,同時非同步地清除寄存器,強制所有的輸出為低電平。

?

匯編程序:

ORG 0000H ;復位起始地址
LJMP START ;中間地址保留給中斷向量表
ORG 0050H ;程序實際起始地址

START:
P4 EQU 0C0H
P4SW EQU 0BBH ;
CLK EQU P4.4 ;時鐘線
DAT EQU P4.5 ;數據線
SW EQU P3.6
MOV DPTR,#TAB
MOV P4SW,#70H
LP:
MOV R6,#0 ;計數
MOV R5,#0
MOV R4,#0
LOOP:
MOV A,R6 ;加入累加器
MOV DPTR,#TAB
MOVC A,@A+DPTR ;查表指令
LCALL SHOW

MOV A,R5 ;加入累加器
MOV DPTR,#TAB
MOVC A,@A+DPTR ;查表指令
LCALL SHOW

MOV A,R4 ;加入累加器
MOV DPTR,#TAB
MOVC A,@A+DPTR ;查表指令
LCALL SHOW

LCALL DELAY

PAUSE:
NOP
JNB SW,PAUSE ;按下S1,暫停

?

INC R6 ;每次計數+1
CJNE R6,#10,LOOP ;進位
INC R5
MOV R6,#0
CJNE R5,#10,LOOP ;比較兩個操作數是否相等,如果不相等則轉移
INC R4
MOV R5,#0
CJNE R4,#10,LOOP
MOV R4,#0
LJMP LOOP; ;跳回循環計數
SHOW:
MOV R0,#8
SLP:
CLR CLK ;時鐘線輸出低電平
RLC A ;累加器A,將A中欲顯示的字符碼右移一位,最低位存入C中
MOV DAT,C
SETB CLK ;時鐘線高電平
DJNZ R0,SLP ;減一不為0轉到,繼續輸出字符碼
RET
DELAY:
MOV R2,#199 ;外循環 0.1s;[1 + 2 × 250] × 1us = 501us
LOOPS:MOV B, #250 ;內循環 [1 + (501 + 2)×199] = 1000.98ms
LOOPR:DJNZ B, LOOPR

DJNZ R2,LOOPS
RET
TAB:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END

?

轉載于:https://www.cnblogs.com/wang-qiuling/p/4467085.html

總結

以上是生活随笔為你收集整理的实验三 七段数码显示器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。