日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

求解按鍵程序設(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)
正序查看
倒序查看
ytuan
LV.3
2
2006-10-21 18:30
我也是初學(xué)者,用C語(yǔ)言寫啊,簡(jiǎn)單些啊.
#include 《at89X51.h》
bit k=0;
void scan(void)
{unsigned int i;
if(!P2_0)
    {for(i=0;i<3000;i++);
    if(!P2_0)k=~k;
    }
}
void main(void)
{while(1)
{scan();
if(k)P0_0=0;
else P0_0=1;
}
}
0
回復(fù)
abing
LV.8
3
2006-10-21 18:55
我看了一下你的程序根本不能工作.

不知你有沒有學(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ù)
choyse
LV.1
4
2006-10-21 19:07
@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ù)
發(fā)