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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

按鍵實現加減運算及連續按鍵檢測

作者:佚名   來源:本站原創   點擊數:  更新時間:2009年10月29日   【字體:

*
注意:如果無法在keil里編譯,請刪除每一行的所有前導空白
程序效果:若按鍵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 //循環四次
   MOV R1,#0FEH  //分別為:0FEH ?FDH ?FBH ?F7H
 
LOOP:      MOV A,R1  //賦值,用于暫存A的值
   MOV P0,A   //賦初值
   RL A    //循環左移
   XCH A,R1   //暫存A的值
   MOV A,P0   //讀?P0口的值
   LCALL DELAY1  //延時

   CJNE A,#7EH,LOP1  //判斷是否有按鍵按下
   LCALL ADD1    //有,則加1
LOP12:    MOV A,P0   //以下語句是用于判斷按鍵是否松開
   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   //按下了,下面的語句用于減慢數值變化速度
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    //點亮最右邊的數碼管
   XCH A,R0   //暫存A的值
   MOV A,30H   //顯示個位數
   MOVC A,@A+DPTR
   MOV P2,A
   LCALL DELAY1  //延時
   DEC R0    //減1,用于點亮下一個數碼管,準備下次顯示
   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  //個位加1
   MOV A,30H //把30H的值賦給A
   CJNE A,#0AH,LAP //判斷個位是否加為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  //個位減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
//延時子程序,時間大約為2us*20*200=8ms
DELAY:    MOV R6,#20 
DEL2:       MOV R5,#200
DEL3:       DJNZ R5,DEL3
   DJNZ R6,DEL2
   RET
//延時子程序,時間約為: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 ;數碼管顯示的數值
      DB 6DH,7DH,07H,7FH,6FH
   END
注意:如果無法在keil里編譯,請刪除每一行的所有前導空白,
 

關閉窗口

相關文章

主站蜘蛛池模板: 国产视频精品视频 | 亚洲一区二区视频在线播放 | 精品伊人 | 日韩欧美一二三区 | 欧美一区二区三区在线观看 | 综合二区| 一区二区在线观看免费视频 | 狠狠热视频 | 7777在线视频 | 国产精品嫩草影院精东 | 在线视频一区二区 | 亚洲视频一区二区 | 毛片链接 | 欧美黄视频 | 2019精品手机国产品在线 | 一级片视频免费 | 成人精品视频在线 | 91av免费版 | 欧美 日韩 中文 | 成人在线亚洲 | 亚洲国产精品99久久久久久久久 | 亚洲精品9999| 成人av鲁丝片一区二区小说 | 欧洲成人午夜免费大片 | 国产色婷婷精品综合在线播放 | 国产黄色大片 | 一区二区三区视频在线 | 国产精品免费一区二区三区四区 | 国产精品大全 | 亚洲国产精品人人爽夜夜爽 | 欧美 日韩 亚洲91麻豆精品 | 精品一区久久 | 日本污视频| 久久综合狠狠综合久久综合88 | 在线欧美小视频 | 日本三级电影在线免费观看 | 成人精品鲁一区一区二区 | 国产精品视频在 | 精品在线视频播放 | 成人免费在线观看 | 欧美成年人视频在线观看 |