微控制器單位數碼管顯示倒計時, 高分 微控制器2個單位數碼管顯示倒計時

2021-09-10 12:13:53 字數 1536 閱讀 7003

1樓:匿名使用者

用aswfv程式邊下就好

2樓:匿名使用者

這個交通燈程式可供你參考.(已除錯通過的.)

org 0000h

ljmp main

org 0030h

main: mov p2,#00h ;數碼管全部顯示00

mov p1,#00h ;訊號燈全亮

lcall delay

mov p2,#0ffh

mov p1,#0ffh

lcall delay

jb p3.5,main ;啟動開關

start: lcall zht0 ;狀態0,東西綠燈,南北紅燈

lcall zht1 ;狀態1,東西黃燈,南北紅燈

lcall zht2 ;狀態2,東西紅燈,南北綠燈

lcall zht3 ;狀態3,東西紅燈,南北黃燈

ajmp start

**************執行狀態子程式**************

zht0: mov p1,#0f3h ;狀態0子程式東西亮綠燈25s

mov r4,#25 ;從25s倒計時至0

mov r3,#05

lcall dir

retzht1: mov p1,#0f5h ;狀態1子程式東西亮黃燈5s

mov r4,#5 ;從5s倒計時至0

mov r3,#25

lcall dir

retzht2: mov p1,#0deh ;狀態2子程式東西亮紅燈25s

mov r4,#25 ;從30s倒計時至5s

mov r3,#00h

lcall dir

retzht3: mov p1,#0eeh ;狀態3子程式東西亮紅燈5s

mov r4,#5 ;從5s倒計時至0

mov r3,#25

lcall dir

ret**************查表顯示子程式**************

dir: mov a,r3

mov dptr,#table

movc a,@a+dptr

mov p2,a

lcall delay

inc r3

djnz r4,dir

ret*****************1s延時程式*****************

delay: mov r5,#20

d1: mov r6,#100

d2: mov r7,#248

djnz r7,$

djnz r6,d2

djnz r5,d1

rettable: db 30h,29h,28h,27h,26h,25h,24h,23h,22h,21h

db 20h,19h,18h,17h,16h,15h,14h,13h,12h,11h

db 10h,09h,08h,07h,06h,05h,04h,03h,02h,01hend

3樓:做而論道

這個題目的解答,發到你的郵箱。

微控制器控制數碼管為什麼顯示很暗,微控制器數碼管顯示 為什麼會乙個亮其他的都暗

可能是延時問題,以前也遇到過 延時時間太短,至少兩三毫秒 兩位的不需要接三極體。真正的這樣接的話,不串限流電阻,應該會燒數碼管的,估計這數碼管很差。延時0.2ms的都做過,顯示正常。加個上拉電阻。使用外部供電!微控制器控制數碼管為什麼顯示很暗 長期點亮就是 數碼管最亮 的時候。但動態顯示中做不到長期...

本人初學微控制器,求數碼管顯示1,1S後數碼管顯示2以此類推直到顯示6的C語言程序

include 52微控制器標頭檔案,一般不要改動,裡面包含特殊功能暫存器的定義 define uchar unsigned char 將unsigned char定義為uchar,簡化輸寫。提高程式設計速度 define uint unsigned int 將unsigned char定義為uin...

用51微控制器控制4位led數碼管,使其顯示出想要的數字,程式

1 建立數字與p口對應的陣列 2 位選顯示 數碼管是8段的吧,正好對應某個p口的8個位,要顯示某個陣列只需將相應的px x亮起來就可以了 這樣 1 首先把段碼端和片選端都設為輸出,也就是led和微控制器連的那幾個角 2 你先用延時來做吧,大致是這樣的 設乙個片選有效 把要顯示的內容放段碼中 延時15...