微控制器程式問題 用按鍵去控制燈,此鍵每快速地按2下,燈的亮與滅就翻轉1次

時間 2021-05-07 20:00:29

1樓:做而論道

下列程式,已經經過實驗檢測,可以滿足題目要求:

;---------------------------------------

led1 equ p3.5

key1 equ p3.7

flag1 equ 20h.0

l_f1 equ 20h.1

org 0000h

ljmp start

org 000bh

ljmp t0_int

org 0030h

start:;--------------初始化mov th0, #06h

setb tr0

mov ie, #82h

mov r2, #1

sjmp $ ;主程式迴圈;--------------------------------t0_int:

mov th0, #06h

mov c, flag1

mov led1, c

djnz r2, t0_next

mov r2, #1

t0_next:

;--------------------------------k11:jb key1, k12

;--------------------setb l_f1 ;按下的標誌cjne r2, #50, $ + 3

jc k21

cjne r2, #97, $ + 3

jnc k21

cpl flag1 ;雙擊的標誌mov r2, #1

sjmp k21

k12:;----------------釋放jnb l_f1, k21

clr l_f1

mov r2, #100 ;開始計時;--------------------------------k21: ;檢測另外的按鍵reti

end;---------------------------------------

2樓:匿名使用者

#include

#define uchar unsigned charuchar times,num;

sbit key=p3^0;

sbit led=p3^1;

bit flag;

void t0isr() interrupt 1}main()}}

tr0=0;flag=0;}}

3樓:匿名使用者

假如你使用的是p30這個引腳接按鍵,p31接燈控制。

sbit ctr = p3^0;

sbit lamp = p3^1;

void main()}}

}flag =0; //清除標誌}}}

51微控制器用兩個按鈕控制一個led燈的亮滅(不是那麼簡單請看我要求)

4樓:煙火夜空

對你這種程式設計思想,我想問是跟誰學的啦!

對你這程式,我想問①先按k3、後按k2,你覺得程式結果會如何?②如果2個按鍵都按住不放,結果又會如何。

考慮一下上面的問題,就能看到你的程式問題了。當然你的程式問題,跟你的題目一樣,沒那麼簡單!後面還有一堆!!

c語言如何程式設計讓一個按鍵輪流點燈。按一下1燈亮,在按下1燈滅2燈亮,在按下3燈亮,1 2燈是滅,一直到8個燈

微控制器c51程式設計問題:怎樣實現一個開關控制兩個燈?按一次燈1亮;兩次,燈1,燈2亮;三次,全滅。

5樓:匿名使用者

微控制器c51程式設計問題:要實現一個開關控制兩個燈,按要求兩個燈有3種狀態,就要宣告一個變數,每按一下開關,變數加一,且變數取值為1,2,3,大於3再回1,又重複控制兩個燈亮滅變化。變數加一後,就根據變數的三個值,去控制兩個燈的三個狀態了。

用**實現,如下**圖。

51微控制器中按鍵程式用C怎麼寫

這個太簡單了吧,記住寫程式定時器要一直跑,建立一個時基,像個手錶的時間一樣要一直跑,即有time 125us,time 1ms,time 100ms,time 1s,time 1min,time 1hour等時間變數建立時基一直走。其它程式可以分時掃描也可以輪流掃描,不能停留死等,像電腦裡的程式一樣...

微控制器程式問題

承樓上的說明 table可能是驅動led的table db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh 讓外接的led顯示0,1,2,3,4,5,6,7,8,9led是以p0來接,bit0接數碼管的a段,bit1接數碼管的b段以此類推到bit6接g段.因此你要在p...

51微控制器C程式問題

很明顯不一樣 原因如下 s2con 0x02 0 這條語句成立的條件是s2con 0 二進位制表示的,代表任意值 即s2con只需要第二位為0就一定滿足 s2con 0x02 1 這條語句成立的條件是s2con 二進位制表示的,代表任意值 即s2con可以為任意值,都滿足 我猜你的問題應該是這麼樣子...