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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8935|回復(fù): 3
收起左側(cè)

4位7段數(shù)碼管秒表,一位小數(shù),用at89c51單片機(jī),匯編語言

[復(fù)制鏈接]
ID:205040 發(fā)表于 2017-5-26 11:28 | 顯示全部樓層 |閱讀模式
51單片機(jī)匯編語言寫的4位7段數(shù)碼管秒表 帶仿真 自己下載查看。
proteus仿真原理圖(仿真工程文件可到附件下載):
0.png 0.png

單片機(jī)源程序如下:
  1. ;要求:至少包括4個(gè)功能:時(shí)間清零;啟動(dòng)計(jì)時(shí);暫定計(jì)時(shí);繼續(xù)計(jì)時(shí);
  2. ;      計(jì)時(shí)最小單位0.1 秒,最大計(jì)時(shí)時(shí)間999.9秒,
  3. ;      用數(shù)碼管顯示時(shí)間,同時(shí)要求按下任何一個(gè)功能鍵必須有聲音提示。
  4. ;
  5. ;使用方法: 設(shè)有啟動(dòng)鍵K1和暫停/清零鍵K2。按k1啟動(dòng)計(jì)時(shí),按k2則暫停計(jì)時(shí),再按k2則清零。
  6. ;常數(shù)設(shè)置
  7. TLOW    EQU  78H
  8. THIGH   EQU  0ECH
  9. LED_WEI_Pro        EQU 0f0H;數(shù)碼管位選        保護(hù)位


  10. ;寄存器設(shè)置
  11. COUN_INT                   EQU 21H     ;5ms * 20 = 100ms = 0.1S
  12. COUN_PASSNUM         EQU        22H                ;
  13. COUN_TIME_L                EQU 23H        ;時(shí)間累加 低位 100MS加1
  14. COUN_TIME_H                EQU 24H        ;時(shí)間累加 高位

  15. COUN_WEI                  EQU 3CH         ;顯示位
  16. DISP_BUF                EQU        50H

  17. ;端口配置
  18. LED_WEI        EQU P2        ;數(shù)碼管位選
  19. LED_DAT        EQU P0        ;數(shù)碼管數(shù)據(jù)
  20. BEEP_PIN        EQU P3.7        ;蜂鳴器
  21. KEY_START          EQU P3.0        ;啟動(dòng)
  22. KEY_STOP        EQU P3.1 ;停止/歸零鍵
  23. ;標(biāo)志位配置
  24. FLAG_TIMING EQU 20H.1        ;20H.1 為計(jì)時(shí)狀態(tài)標(biāo)記
  25. FLAG_GO EQU 20H.2        ;20H.2 為使能標(biāo)記
  26. BEEP_EN        EQU 20H.3        ;蜂鳴器響使能

  27. ;--------------------------------------------------
  28.         ORG  0000H
  29.         JMP  MAIN
  30.         ORG  0BH
  31.         JMP  T0_INT
  32. ;--------------------------------------------------
  33. MAIN:
  34.         MOV  SP,#60H
  35.         MOV  A,#00H

  36.         MOV  COUN_WEI,A
  37.         MOV  COUN_PASSNUM,A;
  38.         MOV  COUN_TIME_L,A
  39.         MOV  COUN_TIME_H,A
  40.         
  41.         CLR C
  42.         CLR FLAG_GO
  43.         CLR FLAG_TIMING;剛開機(jī)為非計(jì)時(shí)狀態(tài)
  44.         SETB BEEP_EN;開機(jī)響一聲
  45.         CALL  INIT_TIMER
  46.         SETB  TR0
  47. LOOP:
  48.         CALL BEEP
  49. K1:        
  50.         JB        KEY_START,K2;啟動(dòng)
  51.         NOP
  52.         JNB KEY_START,[        DISCUZ_CODE_1        ]nbsp;      
  53.         SETB BEEP_EN;蜂鳴器響
  54.         JB  FLAG_GO,LOOP
  55.         SETB FLAG_GO
  56.         SETB FLAG_TIMING
  57.         
  58.         JMP LOOP
  59. K2:
  60.         JB KEY_STOP,LOOP;暫停、歸零鍵
  61.         NOP
  62.         JNB KEY_STOP,$
  63.         SETB BEEP_EN;蜂鳴器響
  64.         JB FLAG_TIMING,STOP;計(jì)時(shí)中按此鍵則暫停計(jì)時(shí),暫停時(shí)按此鍵則歸零
  65. RESET_TIME:;歸零
  66.         CLR FLAG_GO
  67.         CLR FLAG_TIMING
  68.         MOV COUN_TIME_L,#00H
  69.         MOV COUN_TIME_H,#00H
  70.         CALL DISP_TRANSDAT
  71.         
  72.         JMP LOOP
  73. STOP:;暫停
  74.         CLR FLAG_GO
  75.         CLR FLAG_TIMING;暫停計(jì)時(shí)
  76.         JMP LOOP

  77.         
  78. ;;;-------------------------           

  79. ;;-------------------------           
  80. ;;顯示子程序
  81. ;;使用寄存器組:第2組寄存器
  82. ;;出口:
  83. ;;入口:
  84. ;;--------------------------
  85. DISPLAY:
  86.         PUSH ACC
  87.         PUSH  PSW                                
  88.         CLR  PSW.3                                        ;RS1、RS0(PSW.4、PSW.3):        1 0
  89.         SETB  PSW.4
  90.         
  91.         ; MOV DISP_BUF,#1H ;test
  92.         ; MOV DISP_BUF+1,#2H
  93.         ; MOV DISP_BUF+2,#3H
  94.         ; MOV DISP_BUF+3,#4H
  95.         MOV A,COUN_WEI
  96.         CJNE A,#0,CJMP1
  97.         JMP DISP_WEI1
  98. CJMP1:        
  99.         CJNE A,#1,CJMP2
  100.         JMP DISP_WEI2
  101. CJMP2:
  102.         CJNE A,#2,CJMP3
  103.         JMP DISP_WEI3
  104. CJMP3:
  105.         CJNE A,#3,CJMP4
  106.         JMP DISP_WEI4
  107. CJMP4:
  108.         MOV COUN_WEI,#0
  109. DISP_WEI1:
  110.         MOV A,LED_WEI;P3
  111.         ANL A,#LED_WEI_Pro
  112.         ORL A,#01H
  113. ;        CPL A
  114.         MOV LED_WEI,A
  115.         
  116.         JMP DISP_WEI_END
  117. DISP_WEI2:        
  118.         MOV A,LED_WEI
  119.         ANL A,#LED_WEI_Pro
  120.         ORL A,#02H
  121. ;        CPL A
  122.         MOV LED_WEI,A
  123.         
  124.         JMP DISP_WEI_END
  125. DISP_WEI3:
  126.         MOV A,LED_WEI
  127.         ANL A,#LED_WEI_Pro
  128.         ORL A,#04H
  129. ;        CPL A
  130.         MOV LED_WEI,A
  131.         JMP DISP_WEI_END        
  132. DISP_WEI4:
  133.         MOV A,LED_WEI
  134.         ANL A,#LED_WEI_Pro
  135.         ORL A,#08H
  136. ;        CPL A
  137.         MOV LED_WEI,A
  138. DISP_WEI_END:
  139.         MOV R0,#DISP_BUF
  140.         MOV A,COUN_WEI
  141.         ADD A,R0
  142.         MOV R0,A
  143.         MOV        A,@R0
  144.         MOV DPTR,#LED_TAB
  145.         MOVC A,@A+DPTR
  146.         MOV B,A
  147.         MOV A,COUN_WEI
  148.         CJNE A,#2,DISP_WEI_NODOT;增加小數(shù)點(diǎn)
  149.         MOV A,B
  150.         ANL A,#7FH
  151.         MOV B,A
  152. DISP_WEI_NODOT:
  153.         MOV A,B
  154.         MOV LED_DAT,A
  155.         INC COUN_WEI
  156.         POP PSW
  157.         POP ACC        
  158.         
  159.         RET
  160. LED_TAB:;共陽數(shù)碼管表
  161.    DB  0C0H        ;"0"
  162.    DB  0F9H        ;"1"
  163.    DB  0A4H        ;"2"
  164.    DB  0B0H        ;"3"
  165.    DB   99H        ;"4"
  166.    DB   92H        ;"5"
  167.    DB   82H        ;"6"
  168.    DB  0F8H        ;"7"
  169.    DB   80H        ;"8"
  170.    DB   90H        ;"9"
  171.    DB   88H        ;"A"
  172.    DB   83H        ;"B"
  173.    DB  0C6H        ;"C"
  174.    DB  0A1H        ;"D"
  175.    DB   86H        ;"E"
  176.    DB   8EH        ;"F";15
  177. ;;-------------------------           

  178. ;;-------------------------   
  179. DELAY2:
  180.   MOV  R5,#2H
  181. DELAY:                    ;延時(shí)R5×10MS
  182.         MOV  R6,#50
  183. D1:
  184.     MOV  R7,#100
  185.         DJNZ  R7,$
  186.         DJNZ  R6,D1
  187.         DJNZ  R5,DELAY
  188.         RET
  189. ;;-------------------------        
  190. DELAY1:                    ;延時(shí)5MS
  191.         MOV  R6,#25
  192. D2:
  193.     MOV  R7,#100
  194.         DJNZ  R7,$
  195.         DJNZ  R6,D2
  196.         RET
  197. BEEP:
  198.         JNB         BEEP_EN,NOT_BEEP
  199.         CLR BEEP_EN
  200.         CLR BEEP_PIN                        ;低電平有效
  201.         CALL DELAY1                                ;延時(shí)
  202. ;NOT_BEEP:        
  203.         SETB BEEP_PIN
  204. NOT_BEEP:
  205.         RET
  206. ;;-------------------------
  207. INIT_TIMER:                ;初始化定時(shí)器
  208.         MOV  TMOD,#01H    ;設(shè)置定時(shí)器0 工作模式為模式1
  209.         MOV  IE,  #82H    ;啟用定時(shí)器0 中斷產(chǎn)生
  210.         MOV  TL0,#TLOW
  211.         MOV  TH0,#THIGH
  212.         RET
  213. ;;-------------------------        
  214. T0_INT:
  215.         PUSH  ACC
  216.         PUSH  PSW
  217.         MOV  TL0,#TLOW
  218.         MOV  TH0,#THIGH

  219.         CALL DISPLAY
  220.         
  221.         JNB FLAG_TIMING,T0_EXIT
  222.         CLR C
  223.         INC COUN_INT
  224.         MOV A,COUN_INT
  225.         CJNE A,#20,T0_EXIT
  226.         MOV COUN_INT,#0
  227.         MOV A,COUN_TIME_L
  228.         ADDC A,#1
  229.         DA A
  230.         MOV COUN_TIME_L,A
  231.         
  232.         JNC TIME_ADD_END
  233.         MOV A,COUN_TIME_H
  234.         ADDC A,#0
  235.         DA A
  236.         MOV COUN_TIME_H,A
  237. TIME_ADD_END:        
  238.         MOV A,COUN_TIME_H
  239.         CJNE A,#99H,TIME_ADD_T
  240.         MOV A,COUN_TIME_L
  241.         CJNE A,#99H,TIME_ADD_T
  242.         CLR FLAG_TIMING;達(dá)到最大值999,則停止
  243. ……………………

  244. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
LED數(shù)碼管_4位秒表.zip (128.91 KB, 下載次數(shù): 94)

評(píng)分

參與人數(shù) 2黑幣 +10 收起 理由
zjx-xjz + 5 贊一個(gè)!
斷腸草 + 5 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:248166 發(fā)表于 2017-11-11 14:11 | 顯示全部樓層
你好,請(qǐng)問一下,AT89C51的晶振頻率是12MHz,那么
MOV  TL0,#TLOW(78H)
MOV  TH0,#THIGH(0ECH)
是怎樣求得的呢?初學(xué)者感到十分迷茫,麻煩解釋一下,謝謝
回復(fù)

使用道具 舉報(bào)

ID:277362 發(fā)表于 2018-1-18 13:59 | 顯示全部樓層
不錯(cuò)不錯(cuò)不錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:422967 發(fā)表于 2018-11-8 17:36 | 顯示全部樓層
樓主優(yōu)秀
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 香蕉久久网 | 日韩成人中文字幕 | 一区二区三区视频在线观看 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 可以免费观看的av | 日韩国产在线观看 | 免费三级黄 | 国产激情视频 | 亚洲欧美日本国产 | 亚洲精品乱码久久久久久按摩观 | 久久久免费电影 | 天天久久 | 综合天天久久 | 免费一区 | 国产一区亚洲 | 三级在线视频 | 精品久久久久久亚洲精品 | 色免费看 | 国产羞羞视频在线观看 | a在线观看 | 日本高清中文字幕 | 国产精品中文字幕在线 | 国产精品成人一区二区三区 | 天天操人人干 | 国产成人亚洲精品 | 黄色av一区 | 丁香五月网久久综合 | 一区二区在线 | 色悠悠久 | 日韩一区二区三区在线视频 | 一区二区三区四区视频 | 欧美精品在线播放 | 久久新| 四虎最新地址 | 羞羞视频在线免费 | 国产精品2 | 国产日韩欧美精品一区二区 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 国产精品视频二区三区 | 欧美又大粗又爽又黄大片视频 | 不卡在线一区 |