當前位置:編程學習大全網 - 編程語言 - 延遲編程

延遲編程

;我是從電子生產實驗室的網站上改編的。電路圖是51單片機測試板的電路圖,只要保留P1.0的LED,4位撥號鍵,蜂鳴器,K1,K2開關,顯示電路,穩壓電路,單片機最小系統。

;倒計時定時器,可設置時間,可選擇5/15/20/30/35/45/50分鐘倒計時。

;倒計時時間由四個dip開關位的2/3/4控制,

;第二位數表示5分鐘,第三位數表示15分鐘,第四位數表示30分鐘。

;5/15/20/30/35/45/50分鐘倒計時可以通過不同的組合產生。

;P1.0端口的外接發光二極管為狀態LED,在計時未開始時常亮,計時過程中閃爍。

;K1是開始按鈕,K2是停止按鈕。

a_bit?equ?20h?;數碼管壹位數存儲單元

b_bit?equ?21h?;數碼管十位存儲單元

臨時工?equ?22h?;存儲計數器值的內存位置。

;引導初始化

MOV?P3,# 0FFH初始化P3端口,並將其設置為高電平以進行按鍵輸入。

MOV?P0,# 0FFH關閉顯示時間數碼管。

CLR?p 1.0;打開LED指示燈

;等待鍵盤輸入

開始:JB?P3.6,$;是否按下了循環判斷開始按鈕K1?

打電話?delay 10;延時10 ms觸點抖動消除

JB?P3.6,開始;如果是幹擾,返回。

JNB?P3.6,$;等待按鈕松開。

;讀取dip開關的狀態,並獲得倒計時時間。

場景:MOV?a,# 0;先清除壹個。

JB?P2.0,a 1;判斷dip開關的第二位是否接通。如果是連通的,A加5(這裏的值可以自己修改)。

補充?壹個,#5

A1:JB?P2.1,A2;判斷dip開關的第三位是否接通。如果是連通的,在A上加15(這裏的值可以自己修改)。

補充?a,#15

A2:JB?P2.2,A3;判斷dip開關的第四位是否接通。如果是連通的,A加30(這裏的值可以自己修改)。

補充?壹個,#30

A3:MOV?溫度,A

;此時,TEMP中的值就是倒計時時間

;用數碼管顯示定時時間的程序

顯示:CLR?P2.4釋放繼電器1,開始計時(繼電器開啟時處於吸合狀態)(既然妳是比賽倒計時提醒,不需要繼電器,可以忽略)。

CLR?P2.3釋放繼電器2,開始計時(啟動時繼電器處於吸合狀態)。

MOV?R2,#120

阿瑟:MOV?R3,#250

TIME1:mov?壹、臨時工?;將temp中的十六進制數轉換為10?

mov?b,#10?;10基數/10=10基數

div?腹肌

mov?b_bit,a?;十進制

mov?a_bit,b?;b區有點。

mov?dptr,#numtab?;指定表格查找的起始地址。

mov?r0,#4?

dpl1:?mov?r1,#250?;

dplop:?mov?壹、壹_位?;取壹位數

MOVC?壹、@壹+DPTR?;查找壹位數的7段代碼

mov?p0,a?;發送壹個7位代碼

clr?p2.7?;打開壹個位顯示

打電話?dely 1;顯示1毫秒

setb?p2.7關閉單元顯示器以防止重影。

mov?a,b_bit?;取十位數

MOVC?壹、@壹+DPTR?;檢查十位數的7段代碼。

mov?p0,a?;發送壹個十位數的7段代碼。

clr?p2.6?;打開十位數顯示

打電話?dely 1;顯示1毫秒

setb?p2.6關閉十位數顯示,防止重影。

;插入壹個程序段,判斷計時過程中是否有按鍵輸入。

C1:JB?P3.6,B1

打電話?delay 10;延遲10毫秒以消除抖動。

JB?P3.6,C1

JNB?P3.6,$;等待按鈕松開。

AJMP?設置

B1:JB?P3.7,M33

打電話?delay 10;延遲10毫秒以消除抖動。

JB?P3.7,B1

JNB?P3.7,$;等待按鈕松開。

AJMP?超過

M33:djnz?r3,TIME1?;2 ms循環執行250次,時間約為0.5秒。

CPL?p 1.0;讓LED每1秒閃爍壹次。

djnz?r2,AB?;循環執行120次,時間為1分鐘。

十二月?溫度;對於整分鐘,從計時時間中減去1。

MOV?壹、臨時

JNZ?展示;判斷TEMP的值是否為0?不為0循環?

;結束計時

OVER:CLR?p 1.0;LED指示燈壹直亮著

SETB?P2.4繼電器1接通,計時結束,回到接通時的狀態。

SETB?P2.3繼電器2接通,計時結束,回到接通時的狀態。

SETB?P2.5妳要提醒,我就給妳壹個喇叭,定時按喇叭。當然,妳也可以自定義壹些提醒方式。

打電話?delay 10;

打電話?delay 10;

打電話?delay 10;

打電話?delay 10;

打電話?delay 10;

AJMP?開始;回到引導初始化狀態

;1毫秒延時子程序

MOV?R4,排名第二

D1:MOV?R5,#248

DJNZ?R5,美元

DJNZ?R4,D1

浸水使柔軟

;10毫秒延時子程序

延遲10:MOV?R4,第20位

D2:MOV?R5,#248

DJNZ?R5,美元

DJNZ?D2 R4

浸水使柔軟

;實驗板上7個數碼管的0 ~ 9位的* * *負顯示碼。

numtab:?DB?0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH

結束

  • 上一篇:爆款海報模板-抖音的78張圖片vlog視頻怎麽做?
  • 下一篇:大學生假期應該做點什麽?
  • copyright 2024編程學習大全網