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