求解按鍵程序設計
正在學習51的匯編,對按鍵掃描很是不了解.1.剛開機的時候掃描按鍵,但是在執(zhí)行了按鍵的程序后,單片機轉(zhuǎn)到其他地方去執(zhí)行某條指令了,如何再對按鍵進行掃描? 2.比如按下一個鍵后,某一個燈亮了,如何又能通過按同一個鍵讓它熄滅?相當于同一個鍵既要實現(xiàn)開機,又要實現(xiàn)關機,怎么處理呢?附件為掃描到鍵按下后,燈一直亮,如何通過按下同一個鍵讓它熄滅?程序比較簡單,現(xiàn)在也編不出來有實際意義的程序,只想得到對一個問題的解答.自學匯編的確很難,請高手們指點指點.1161269170.txt
全部回復(4)
正序查看
倒序查看
我看了一下你的程序根本不能工作.
不知你有沒有學習開發(fā)工具,致少要有一片單片機和一個編程器.
編程器自己做的話只要幾元,買別人的也只要20多元(當然可以考慮和我買,哈哈)
KEIL51軟件會用了嗎?要是不會最好找個了解一點的人指點一下
OK
按鍵檢測不是用CLR,可以用JNB或JB
說一個簡單的程序
//LED陰極接于P0.0口 陽極串接一個220歐電阻到+5V
org 0030H //一般簡單的程序不用也行,0000H-002FH用于中斷入口
clr P0 //初始化P0口
main: //主程序
SETB P0.0 //P0口輸出高電平,LED滅
LJMP delay //廷時一段時間,要不然閃的太快根本看不出來.就算你是超人,由于LED本身有廷時,所以也看不出來.哈哈
CLR P0.0 //將P0.0口輸出低電平,LED亮
LJMP delay //廷時
LJMP main //返回主程序
///////////////////////////////廷時程序
delay:
mov r5,#255 //
D1:mov r6,#255 //
D2:DJNZ r6,D2
DJNZ r5,D1
/////////////////////////////廷時時間和使用的晶振有關
END
執(zhí)行這個程序你會看到LED不斷的閃爍
給初學者一些提示:
1、一定要有很好的耐性,特別是沒人指導時
mov r5,#255 以這句來說,有時用了不用輸入法輸入的“,”結(jié)果是不一樣的.還有#255的“#”也不要忘了.
2、細心
很多初學都寫的程序多多少少都會有點錯的,我曾這樣寫過
RR P0//
這樣是一個完全錯誤的語句,還有常反“0”與"o"搞錯
如有不對之處請各位網(wǎng)友指點!!!!
不知你有沒有學習開發(fā)工具,致少要有一片單片機和一個編程器.
編程器自己做的話只要幾元,買別人的也只要20多元(當然可以考慮和我買,哈哈)
KEIL51軟件會用了嗎?要是不會最好找個了解一點的人指點一下
OK
按鍵檢測不是用CLR,可以用JNB或JB
說一個簡單的程序
//LED陰極接于P0.0口 陽極串接一個220歐電阻到+5V
org 0030H //一般簡單的程序不用也行,0000H-002FH用于中斷入口
clr P0 //初始化P0口
main: //主程序
SETB P0.0 //P0口輸出高電平,LED滅
LJMP delay //廷時一段時間,要不然閃的太快根本看不出來.就算你是超人,由于LED本身有廷時,所以也看不出來.哈哈
CLR P0.0 //將P0.0口輸出低電平,LED亮
LJMP delay //廷時
LJMP main //返回主程序
///////////////////////////////廷時程序
delay:
mov r5,#255 //
D1:mov r6,#255 //
D2:DJNZ r6,D2
DJNZ r5,D1
/////////////////////////////廷時時間和使用的晶振有關
END
執(zhí)行這個程序你會看到LED不斷的閃爍
給初學者一些提示:
1、一定要有很好的耐性,特別是沒人指導時
mov r5,#255 以這句來說,有時用了不用輸入法輸入的“,”結(jié)果是不一樣的.還有#255的“#”也不要忘了.
2、細心
很多初學都寫的程序多多少少都會有點錯的,我曾這樣寫過
RR P0//
這樣是一個完全錯誤的語句,還有常反“0”與"o"搞錯
如有不對之處請各位網(wǎng)友指點!!!!
0
回復
@abing
我看了一下你的程序根本不能工作.不知你有沒有學習開發(fā)工具,致少要有一片單片機和一個編程器.編程器自己做的話只要幾元,買別人的也只要20多元(當然可以考慮和我買,哈哈)KEIL51軟件會用了嗎?要是不會最好找個了解一點的人指點一下OK按鍵檢測不是用CLR,可以用JNB或JB說一個簡單的程序//LED陰極接于P0.0口 陽極串接一個220歐電阻到+5Vorg 0030H //一般簡單的程序不用也行,0000H-002FH用于中斷入口clrP0 //初始化P0口main: //主程序SETBP0.0 //P0口輸出高電平,LED滅LJMPdelay //廷時一段時間,要不然閃的太快根本看不出來.就算你是超人,由于LED本身有廷時,所以也看不出來.哈哈CLRP0.0 //將P0.0口輸出低電平,LED亮LJMP delay //廷時LJMPmain //返回主程序///////////////////////////////廷時程序delay: movr5,#255 // D1:movr6,#255 // D2:DJNZr6,D2 DJNZr5,D1/////////////////////////////廷時時間和使用的晶振有關END執(zhí)行這個程序你會看到LED不斷的閃爍給初學者一些提示:1、一定要有很好的耐性,特別是沒人指導時movr5,#255 以這句來說,有時用了不用輸入法輸入的“,”結(jié)果是不一樣的.還有#255的“#”也不要忘了.2、細心很多初學都寫的程序多多少少都會有點錯的,我曾這樣寫過RRP0//這樣是一個完全錯誤的語句,還有常反“0”與"o"搞錯如有不對之處請各位網(wǎng)友指點!!!!
謝謝你給大家的提醒,呵呵.有機會也要幫幫我啊.
0
回復