匯編程序:
ORG0000H復位後,LED熄滅。
主:?JB P3.2,主;等待按鈕動作
ACALL DELAY _ 50MS按鈕去抖延遲50毫秒。
JB P3.2,主;確認按鈕操作?
CPL p 1.0;LED動作反轉
JNB P3.2,$;等待按鈕被釋放
SJMP梅因
延時_50MS:MOV R2,# 50;延遲子程序
循環:?MOV R3,#200
LOOP1: NOP
nototherwiseprovided(for)除非另有規定
DJNZ R3,LOOP1
DJNZ R2,循環
結束?
c語言程序:
# include & ltREG51。H & gt
# include & ltintrins.h & gt
#定義uchar無符號字符
# define ledp1 0//led引腳定義
#定義鍵P3 2//按鈕引腳定義
無效延遲(uchar MS);//延遲函數聲明
void main()
{
while(1)
{
while(鍵);//等待按鈕動作
DELAY _ 50m s(50);//按鈕去抖延遲50ms。
如果(!KEY)LED = ~ LED;//確認按鈕動作,LED動作反轉。
而(!關鍵);//等待按鈕被釋放
}
}
無效延遲(uchar MS)
{
烏恰爾壹世;
for(;MS & gt0;MS -)
for(I = 200;我& gt0;我-)
{
_ nop _();
_ nop _();
}
}