久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

按鍵實(shí)現(xiàn)加減運(yùn)算及連續(xù)按鍵檢測(cè)

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2009年10月29日   【字體:

*
注意:如果無(wú)法在keil里編譯,請(qǐng)刪除每一行的所有前導(dǎo)空白
程序效果:若按鍵0(即7EH)按下,則加1;若按鍵1(即7DH)按下,
則減1;若按鍵2(即7BH)按下,則快加,若按鍵3(77H)按下,則快減。
*/
ORG 0000H
LJMP START
ORG 0030H
START:    MOV 30H,#00  //賦初值
   MOV 31H,#00
   MOV 32H,#01
 
LOOP1:    MOV R2,#04 //循環(huán)四次
   MOV R1,#0FEH  //分別為:0FEH ?FDH ?FBH ?F7H
 
LOOP:      MOV A,R1  //賦值,用于暫存A的值
   MOV P0,A   //賦初值
   RL A    //循環(huán)左移
   XCH A,R1   //暫存A的值
   MOV A,P0   //讀?P0口的值
   LCALL DELAY1  //延時(shí)

   CJNE A,#7EH,LOP1  //判斷是否有按鍵按下
   LCALL ADD1    //有,則加1
LOP12:    MOV A,P0   //以下語(yǔ)句是用于判斷按鍵是否松開(kāi)
   LCALL DELAY1
   CJNE A,#7EH,LOP1
   LCALL DISPLAY
   SJMP LOP12  

LOP1:      CJNE A,#7DH,LOP2
   LCALL SUB1
LOP22:    MOV A,P0
   LCALL DELAY1
   CJNE A,#7DH,LOP2
   LCALL DISPLAY
   SJMP LOP22 
 
LOP2:      CJNE A,#7BH,LOP3  //判斷快加的按鍵按下
   MOV R3,#10   //按下了,下面的語(yǔ)句用于減慢數(shù)值變化速度
LOP32:    LCALL DISPLAY
   LCALL DELAY
   DJNZ R3,LOP32
   LCALL ADD1
 
LOP3:      CJNE A,#77H,LOP4
   MOV R4,#10
LOP42:    LCALL DISPLAY
   LCALL DELAY
   DJNZ R4,LOP42
   LCALL SUB1

LOP4:      DJNZ  R2,LOOP
   LCALL DISPLAY
   LJMP LOOP1
//顯示子程序   
DISPLAY: MOV DPTR,#TAB  //賦表首地址
   MOV A,#0FFH   
   MOV P1,A    //點(diǎn)亮最右邊的數(shù)碼管
   XCH A,R0   //暫存A的值
   MOV A,30H   //顯示個(gè)位數(shù)
   MOVC A,@A+DPTR
   MOV P2,A
   LCALL DELAY1  //延時(shí)
   DEC R0    //減1,用于點(diǎn)亮下一個(gè)數(shù)碼管,準(zhǔn)備下次顯示
   XCH A,R0

   MOV P1,A
   XCH A,R0
   MOV A,31H
   MOVC A,@A+DPTR
   MOV P2,A
   LCALL DELAY1
   DEC R0
   XCH A,R0

   MOV P1,A
   XCH A,R0
   MOV A,32H
   MOVC A,@A+DPTR
   MOV P2,A
   LCALL DELAY1
   RET
//加子程序
ADD1:      INC 30H  //個(gè)位加1
   MOV A,30H //把30H的值賦給A
   CJNE A,#0AH,LAP //判斷個(gè)位是否加為10
   MOV 30H,#00    //是,則清零

   INC 31H
   MOV A,31H
   CJNE A,#0AH,LAP
   MOV 31H,#00

   INC 32H
   MOV A,32H
   CJNE A,#0AH,LAP
   MOV 32H,#00
LAP:         NOP   //空指令
   RET  //返回
//減子程序
SUB1:      DEC 30H  //個(gè)位減1
   MOV A,30H  //把30H的值賦給A
   CJNE A,#0FFH,LSP  //判斷30H的值為0后是否在減1
   MOV 30H,#09   //是,則給30H賦9

   DEC 31H
   MOV A,31H
   CJNE A,#0FFH,LSP
   MOV 31H,#09

   DEC 32H
   MOV A,32H
   CJNE A,#0FFH,LSP
   MOV 32H,#09

LSP:         NOP
   RET
//延時(shí)子程序,時(shí)間大約為2us*20*200=8ms
DELAY:    MOV R6,#20 
DEL2:       MOV R5,#200
DEL3:       DJNZ R5,DEL3
   DJNZ R6,DEL2
   RET
//延時(shí)子程序,時(shí)間約為:2us*5*250=2.5ms
DELAY1:  MOV R6,#5
DEL4:       MOV R5,#250
DEL5:       DJNZ R5,DEL5
   DJNZ R6,DEL4
   RET
TAB: DB 3FH,06H,5BH,4FH,66H ;數(shù)碼管顯示的數(shù)值
      DB 6DH,7DH,07H,7FH,6FH
   END
注意:如果無(wú)法在keil里編譯,請(qǐng)刪除每一行的所有前導(dǎo)空白,
 

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 精品国产一区二区在线 | 欧美日韩视频在线播放 | 欧美 日韩 国产 一区 | 国产精品日韩欧美一区二区 | 激情五月综合 | 国产网站在线免费观看 | 精品国产乱码久久久 | 日本黄色影片在线观看 | 亚洲国产午夜 | www.一级片 | 国产精品一区视频 | 91精品国产色综合久久不卡蜜臀 | 中文字幕 亚洲一区 | 久久国产精品视频 | 日韩在线不卡 | 国产一级黄色网 | 天堂一区| 日韩成人中文字幕 | 久久亚洲一区 | 理论片87福利理论电影 | 亚洲国产成人av好男人在线观看 | 看av网| 国产精品成人久久久久 | 国产日韩中文字幕 | 久久青 | 99九九久久 | 91精品一区二区 | 免费观看的av毛片的网站 | 日本网站免费在线观看 | 成年人精品视频 | 国产精品一区二区在线 | 日韩毛片网 | 1区2区3区视频 | 国产成人精品久久二区二区91 | 久久久久国产精品 | 成人亚洲视频 | 日韩成人av在线 | 国产精品国产a级 | 国产精品久久久久久久久久久久 | 91社区在线高清 | 亚洲精品在线免费观看视频 |