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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4359|回復: 0
打印 上一主題 下一主題
收起左側

寫了個小程序遇到大問題,請幫忙

[復制鏈接]
跳轉到指定樓層
樓主
ID:24748 發表于 2010-8-5 21:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

程序目的:按下K1 數字加一,按下K2,數字減一,按下K3連減.
 現在的問題是,上電后能正常顯示數字,當按下任一鍵后數據會變化,但松手后數碼管卻不會亮了,按下開關不松手就會亮,手一松就滅了,按下開關時也能看到數據的加一或是減一.學生請老師們指點為謝.
org 0000h
jmp main
org 0013h
jmp int1_1
k0 bit p1.1;定義4個開關
k1 bit p1.0
k2 bit p1.2
k3 bit p1.3
main: setb ea
      setb ex1
      clr p1.5;關蜂鳴器
      mov 40h,#250;上電時要顯示的數
ma_1: call divcx;調用除法子程序
       lcall display;調用顯子程序
       ajmp ma_1;跳回
int1_1:clr ea;中斷入口
      clr ex1
      jnb k1,  key1;判斷哪個鍵按下,按下后轉對應的鍵處理程序
      jnb k2 ,  key2
      jnb k3 ,  key3
      jnb k0 ,  key0
 fh:  setb ea  ;中斷返回,開中斷
      setb ex1
      reti
key1: call delay10ms;K1處理程序
      jb k1,fh ;不為0是干擾,返回
      mov a,40h  ;K1每按下一次對40H加一
      inc a
      mov 40h,a
    
  k_1:    jnb k1,xx1;按下沒松開轉,不斷的顯示,防止數碼管不亮
      cjne a,#0ffh,fh;沒加到255,中斷返回
    
      jmp fh
key2:  call delay10ms;K2處理程序,減法
      jb k2,fh
      mov a,40h
      dec 40h
      call divcx
  k_2:    jnb k2,xx2
      cjne a,#0,fh
     
      jmp fh
key3: call delay10ms;這里是連減程序
      jb k3,fh
      dec 40h;40H減一
      mov a,40h
      cjne a,#0,zdj1; K3按下不松,轉延時一秒繼續減
     jmp fh  

 zdj1:call delay1s
      jmp key3
      jmp fh
xx0:  call display
      jmp key0
xx1:  call display
     jmp k_1
 xx2: call display
     jmp k_2  
divcx:mov a, 40h;除法子程序,把40H中的數轉換為BCD數
     mov r0,#43
     mov b,#100
     div ab
     mov @r0,a;百位在43H
     dec r0
     mov 44h,b
     xch a,44h
     mov b,#10
     div ab
     mov @r0,a;十位在42H
     dec r0
     mov 44h,b
     xch a,44h
     mov @R0,A;個位在41H
     ret
 display:  MOV R0,#41      ;取顯示數據的首地址
      MOV R3,#00000001     ;位掃描初值
play: MOV P2,#0H     ;關閉位掃描
      MOV A,R3          ;掃描初值入A
      MOV P2,A         ;掃描初值送到P2口
      MOV A,@R0        ;取要顯示的數據
      MOV DPTR,#TAB
      MOVC A,@A+DPTR
      MOV P0,A
      CALL DELAY1MS
      INC R0           ;顯示數據的地址加一
      MOV A,P2         ;讀入P2口數據
      JB  ACC.2,ENDOUT ;判斷P2口是否掃描到第3位,到了退出子程序
      RL A              ;沒到把P2口數據左移一位
      MOV R3,A          ;把左移后的數據裝入R3
      MOV P2,#0H      ;關位掃描數據,防止產生鬼影
      JMP PLAY           ;跳回PLAY繼續顯示
ENDOUT:MOV P0,#0FFH      ;子程序返回時關閉位顯示與段顯示
      MOV P2,#0H        ;
      RET
      DELAY1MS:mov r3,#2
   d1:   mov r4,#250
   d2:   djnz r4,$
         djnz r3,d1
         ret
delay10ms: call display   ;10ms子程序,調用一次顯示子程序約3ms,調兩次約10ms
           call display
            call display
         ret
 delay1s:mov r5,#20
      d3:call delay10ms
         djnz r5,d3
         ret
  bb:setb p1.5            ;蜂鳴器響的子程序
     call delay1s
     clr p1.5
     call delay1s
     ret

    
TAB:db   48h,0ebh,52h,62h,0e1h,64h,44h,0eah,40h,60h
end

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久一本| 中文在线a在线 | 久久极品| 久久99精品久久久久子伦 | 国产一区二区中文字幕 | 中文字幕韩在线第一页 | 欧美1页| 国产成人99久久亚洲综合精品 | 亚洲综合成人网 | 九九热这里只有精品在线观看 | www.性色 | 国产免费av在线 | 欧美韩一区二区 | 日本中文字幕在线视频 | 日韩精品视频在线 | 日韩aⅴ片 | 成人亚洲视频 | 成人午夜精品 | 免费久久久久久 | 一级做a爰片久久毛片 | av中文在线 | 成人午夜视频在线观看 | www.精品一区 | 蜜桃日韩| 成人性视频免费网站 | 国产精品一区一区三区 | 久久国产高清 | 免费网站国产 | 欧美色综合一区二区三区 | 午夜影晥 | 奇色影视 | 一区精品在线观看 | 久久久久久久久久久久91 | 日韩av在线播| 精品一区二区av | 国产精品久久久久久亚洲调教 | 亚洲毛片| 欧美激情亚洲激情 | 亚洲欧美中文字幕 | 日本精品久久 | 亚洲人在线 |