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

標題: 我的51單片機匯編語言秒表,可暫停和復位,含源碼、Proteus仿真文件和keiil文件 [打印本頁]

作者: 欲語與雨123    時間: 2018-12-15 22:04
標題: 我的51單片機匯編語言秒表,可暫停和復位,含源碼、Proteus仿真文件和keiil文件
本設計為一秒表,可顯示小時、分鐘、秒的功能。程序開始運行時,數碼管不顯示任何內容。按下啟停鍵時 ,開始從0時0分0秒以每秒為單位開始計時,可以從00時00分00秒計時到23時59分59秒,到達時間后開始重新從00時00分00秒開始計時。每按一下啟停鍵,將在啟動暫停之間切換。清零按鍵,無論是在運行還是暫停情況下,按下清零鍵,將時分秒都清零。

  1. DAT                EQU 30H                ;顯示緩存首地址
  2. SCANLED        EQU 38H                ;動態掃描位
  3. SEC                EQU 39H                ;秒
  4. MIN                EQU 3AH                ;分
  5. HOUR        EQU 3BH                ;時
  6. CLK                EQU 3CH                ;中斷次數
  7. DUAN        EQU P2.0        ;段碼鎖存
  8. WEI                EQU P2.1        ;位碼鎖存
  9. KEYS        EQU P3.2        ;啟停鍵
  10. KEYC        EQU P3.3        ;清零鍵
  11. ORG 0000H
  12. LJMP MAIN
  13. ORG 000BH
  14. LJMP T0ISR        ;50ms定時
  15. ORG 001BH
  16. LJMP T1ISR        ;掃描顯示
  17. ORG 0030H
  18. MAIN:
  19.                 MOV SP,#5FH                ;棧頂
  20.                 MOV TMOD,#11H        ;定時器模式為1
  21.                 MOV TH0,#03CH        ;50毫秒定時
  22.                 MOV TL0,#0B0H        
  23.                 MOV TH1,#0ECH        ;5毫秒定時
  24.                 MOV TL1,#078H
  25.                 SETB ET0
  26.                 SETB ET1
  27.                 SETB TR1
  28.                 SETB EA
  29.                 MOV SCANLED,#0        ;初始化變量
  30.                 MOV 30H,#10H
  31.                 MOV 31H,#10H
  32.                 MOV 32H,#10H
  33.                 MOV 33H,#10H
  34.                 MOV 34H,#10H
  35.                 MOV 35H,#10H
  36.                 MOV 36H,#10H
  37.                 MOV 37H,#10H
  38.                 MOV SEC,#0
  39.                 MOV MIN,#0
  40.                 MOV HOUR,#0
  41. LOOP:        
  42.                 JB P3.2,LOOP1        ;啟停
  43.                 LCALL DELAY                ;延時去抖
  44.                 JB P3.2,LOOP1        ;再次檢測
  45.                 JNB P3.2,[        DISCUZ_CODE_1        ]nbsp;               ;等待鍵抬起
  46.                 CPL TR0                        ;啟停計時
  47.                 SJMP LOOP
  48. LOOP1:
  49.                 JB P3.3,LOOP        ;清零
  50.                 LCALL DELAY
  51.                 JB P3.3,LOOP
  52.                 JNB P3.3,$
  53.                 MOV SEC,#0                ;清零時間變量
  54.                 MOV MIN,#0
  55.                 MOV HOUR,#0
  56.                 LCALL DISCHG
  57.                 SJMP LOOP
  58. ;------------------
  59. ;十六進制轉換為BCD
  60. HBCD:
  61.                 MOV B,#10
  62.                 DIV AB
  63.                 SWAP A
  64.                 ORL A,B
  65.                 RET
  66. ;--------------------
  67. ;延時約10毫秒
  68. DELAY:
  69.                 MOV R3,#50
  70. DELAY1:
  71.                 MOV R4,#100
  72.                 DJNZ R4,$
  73.                 DJNZ R3,DELAY1
  74.                 RET
  75. ;--------------------
  76. ;定時器0中斷服務程序,計時功能
  77. T0ISR:
  78.                 PUSH ACC
  79.                 CLR TR0
  80.                 MOV TH0,#3CH        ;重賦初值
  81.                 MOV TL0,#0B0H
  82.                 SETB TR0
  83.                 INC CLK                        ;中斷次數加1
  84.                 MOV A,CLK
  85.                 CJNE A,#20,T0ISRE        ;20次中斷到?
  86.                 MOV CLK,#0                ;中斷次數變量清零
  87.                 INC SEC                        ;秒加1
  88.                 MOV A,SEC
  89.                 CJNE A,#60,T0ISRE        ;60秒到?
  90.                 MOV SEC,#0                        ;秒變量清零
  91.                 INC MIN                                ;分加1
  92.                 MOV A,MIN
  93.                 CJNE A,#60,T0ISRE        ;60分到?
  94.                 MOV MIN,#0                        ;分變量清零
  95.                 INC HOUR                        ;小時加1
  96.                 MOV A,HOUR        
  97.                 CJNE A,#24,T0ISRE        ;24小時到?
  98.                 MOV SEC,#0                        ;時分秒均清零
  99.                 MOV MIN,#0
  100.                 MOV HOUR,#0
  101. T0ISRE:
  102.                 LCALL DISCHG                ;將時分秒轉換為BCD碼供顯示
  103.                 POP ACC
  104.                 RETI
  105. ;--------------------
  106. DISCHG:
  107.                 MOV A,HOUR        ;小時轉換為BCD碼,存入30H31H
  108.                 LCALL HBCD
  109.                 PUSH ACC
  110.                 ANL A,#0FH
  111.                 MOV 31H,A
  112.                 POP ACC
  113.                 ANL A,#0F0H
  114.                 SWAP A
  115.                 MOV 30H,A
  116.                 MOV A,MIN        ;分轉換位BCD碼,存入33H34H
  117.                 LCALL HBCD
  118.                 PUSH ACC
  119.                 ANL A,#0FH
  120.                 MOV 34H,A
  121.                 POP ACC
  122.                 ANL A,#0F0H
  123.                 SWAP A
  124.                 MOV 33H,A
  125.                 MOV A,SEC        ;秒轉換為BCD碼存入36H37H
  126.                 LCALL HBCD
  127.                 PUSH ACC
  128.                 ANL A,#0FH
  129.                 MOV 37H,A
  130.                 POP ACC
  131.                 ANL A,#0F0H
  132.                 SWAP A
  133.                 MOV 36H,A
  134.                 MOV 32H,#11H
  135.                 MOV 35H,#11H
  136.                 RET
  137. ;--------------------
  138. ;定時器1中斷服務程序,用于動態掃描數碼管顯示
  139. T1ISR:
  140.                 PUSH ACC
  141.                 CLR TR1
  142.                 MOV TH1,#0ECH        ;重裝初值
  143.                 MOV TL1,#78H
  144.                 SETB TR1
  145.                 MOV DPTR,#LEDTAB        ;段碼表首地址
  146. T100:
  147.                 MOV R0,#DAT                        ;取顯示緩存數據
  148.                 MOV A,SCANLED                ;取顯示當前位置
  149.                 ADD A,R0                        ;求具體顯示地址
  150.                 MOV R0,A
  151.                 MOV P0,#00H                        ;消隱
  152.                 SETB WEI                        ;置高位鎖存
  153.                 MOV A,SCANLED                ;取當前顯示位置
  154.                 JNZ T101
  155.                 MOV P0,#01H                        ;等于0為第一位
  156.                 SJMP T1DIS
  157. T101:
  158.                 DEC A
  159.                 JNZ T102
  160.                 MOV P0,#02H                        ;等于1為第二位
  161.                 SJMP T1DIS
  162. T102:
  163.                 DEC A
  164.                 JNZ T103
  165.                 MOV P0,#04H                        ;等于2為第三位
  166.                 SJMP T1DIS
  167. T103:
  168.                 DEC A
  169.                 JNZ T104
  170.                 MOV P0,#08H                        ;等于3為第四位
  171.                 SJMP T1DIS
  172. T104:
  173.                 DEC A
  174.                 JNZ T105
  175.                 MOV P0,#10H                        ;等于4為第五位
  176.                 SJMP T1DIS
  177. T105:
  178.                 DEC A
  179.                 JNZ T106
  180.                 MOV P0,#20H                        ;等于5為第六位
  181.                 SJMP T1DIS
  182. T106:
  183.                 DEC A
  184.                 JNZ T107
  185.                 MOV P0,#40H                        ;等于6為第七位
  186.                 SJMP T1DIS
  187. T107:
  188.                 MOV P0,#80H                        ;等于7為第八位
  189. T1DIS:
  190.                 CLR WEI                                ;位鎖存拉低
  191.                 MOV A,@R0
  192.                 MOVC A,@A+DPTR                ;取段碼
  193.                 SETB DUAN                        ;段鎖存拉高
  194.                 MOV P0,A                        ;送段碼
  195.                 CLR DUAN                        ;段鎖存拉低
  196.                 INC SCANLED                        ;顯示位地址加1
  197.                 MOV A,SCANLED
  198.                 CJNE A,#8,T1END                ;共8位
  199.                 MOV SCANLED,#0
  200. T1END:
  201.                 POP ACC
  202.                 RETI
  203. ;--------------------
  204. LEDTAB:
  205.                 DB 0C0H        ;"0"        00H
  206.                 DB 0F9H        ;"1"        01H
  207.                 DB 0A4H        ;"2"        02H
  208.                 DB 0B0H        ;"3"        03H
  209.                 DB 99H        ;"4"        04H
  210.                 DB 92H        ;"5"        05H
  211.                 DB 82H        ;"6"        06H
  212.                 DB 0F8H        ;"7"        07H
  213.                 DB 80H        ;"8"        08H
  214.                 DB 90H        ;"9"        09H
  215.                 DB 88H        ;"A"        0AH
  216.                 DB 83H        ;"B"        0BH
  217.                 DB 0C6H        ;"C"        0CH
  218.                 DB 0A1H        ;"D"        0DH
  219.                 DB 86H        ;"E"        0EH
  220.                 DB 8EH        ;"F"        0FH
  221.                 DB 0FFH        ;" "        10H
  222.                 DB 0BFH        ;'-'        11H
  223. ;--------------------
  224. END
復制代碼

全部資料51hei下載地址:
數碼管顯示秒表(有清零按鍵).zip (67.96 KB, 下載次數: 87)



作者: floss1    時間: 2019-6-25 19:45
沒看懂這個動態掃描




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美精品一区二区在线观看 | 成人在线中文字幕 | 亚欧洲精品在线视频免费观看 | 欧美精品导航 | 中文字幕视频在线看5 | 欧美激情va永久在线播放 | 日批免费观看 | 国产资源在线播放 | 日韩在线视频免费观看 | 欧美中文在线 | 亚洲国产精品激情在线观看 | 国产午夜精品视频 | 91在线视频观看 | 亚洲一区综合 | 精品自拍视频 | 中文字幕免费视频 | 国产成人精品综合 | 91精品国产综合久久久久久蜜臀 | 日本精品一区二区三区在线观看视频 | 无人区国产成人久久三区 | 国产亚洲一区二区三区在线 | 亚洲一区二区 | 一区二区不卡高清 | 国产美女自拍视频 | a级在线免费| 久久夜视频| 国产精品久久久免费 | 国产区在线免费观看 | 精品久久久久久久久久久久久久久久久 | 亚洲精精品 | 欧美mv日韩mv国产网站91进入 | 亚洲激情综合网 | 涩涩视频在线观看 | 国产成人免费视频网站高清观看视频 | 国产精品国产a级 | 久久久久久艹 | 国产一卡二卡三卡 | 国产一级片免费看 | 国产一区不卡 | 久久久久久亚洲精品不卡 | 国产综合久久 |