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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機多功能數字鐘 匯編程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:70976 發(fā)表于 2014-12-27 17:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. ;張培         
  2. ;本程序實現外控控數字鐘
  3. ;功能:1.計時
  4. ;      2.3種顯示模式
  5. ;        時間顯示模式
  6. ;   月日顯示模式
  7. ;   溫度顯示模式
  8. ;******************************************************
  9. ;字節(jié)單元定義
  10. TEMPER_L     EQU       29H;用于保存讀出溫度的低8位
  11. TEMPER_H     EQU       28H;用于保存讀出溫度的高8位
  12. FLAG1        EQU       38H;是否檢測到DS18B20標志位
  13. a_bit        EQU       20H;數碼管個位數存放內存位置
  14. b_bit        EQU       21H;數碼管十位數存放內存位置
  15. PIANXUAN     EQU       P3 ;P3為片選口
  16. SHUCHU       EQU       P2 ;P2為輸出
  17. MIAO         EQU       30H;秒存儲單元
  18. FEN          EQU       31H;分存儲單元
  19. SHI          EQU       32H;時存儲單元
  20. SHUZI        EQU       33H;中轉存儲單元
  21. YUE          EQU       34H;月存儲單元
  22. CRI          EQU       35H;日存儲單元
  23. DAIMAZHI     EQU       36H;代碼存儲單元
  24. LINGSHI      EQU       37H;鬧鈴時存儲單元
  25. LINGFEN      EQU       50H;鬧鈴分存儲單元
  26. KONGSHI   EQU       39H;外部控制時存儲單元
  27. KONGFEN      EQU       61H;外部控制時存儲單元
  28. QIEHUAN      BIT       22H.0;切換標志位
  29. ANJIAN       BIT       22H.1;按鍵1標志位
  30. ANJIAN1      BIT       22H.2;按鍵2標志位
  31. ANJIAN2      BIT       22H.3;按鍵3標志位
  32. ANJIAN3      BIT       22H.4;按鍵4標志位
  33. ANJIAN4      BIT       22H.5
  34. ANJIAN5      BIT       23H.2
  35. WENDU        BIT       22H.6;溫度標志位
  36. GONG         BIT       22H.7
  37. C_0          BIT       23H.0;20MS的標志位
  38. SHANSHUO     BIT       23H.1
  39. ;**********************************************************
  40. ;**************************主程序**************************
  41.              ORG       0000H
  42.              JMP       START
  43.           ORG       000BH
  44.           JMP       TT0
  45.              ORG       0030H
  46. START:  CALL      CHUSHIHUA
  47.   
  48. MAIN:    JNB       C_0,MAIN       ;節(jié)拍等待
  49.           CLR       C_0  
  50.        CALL      JIACHULI    ;計算時間
  51.     CALL      SHJIAN_GN   ;判斷時間鬧鈴及控制功能
  52.    
  53.     CALL      PANWENDU    ;溫度按鍵判斷
  54.     JNB       WENDU,NEXT0   ;
  55.     CALL      XIANSHIWENDU   ;溫度標志位為1就顯示溫度
  56.     JMP       MAIN
  57.    
  58.     NEXT0:CALL      PANGONGNENG   ;判斷功能鍵
  59.           JNB      GONG,NEXT1   ;沒有功能鍵按下顯示時間
  60.      CALL     CANSHU    ;代碼加一
  61.     CALL     XIANSHIMA    ;有功能鍵按下,則顯示功能代碼
  62.     CALL     SHEZHI    ;根據代碼設置相應的功能
  63.     JMP      MAIN     ;返回
  64.    
  65.     NEXT1:CALL     PANANJIAN    ;切換月日、時間顯示
  66.     JNB      QIEHUAN,NEXT   ;沒有按鍵按下,則顯示時間
  67.     CALL     XIANSHI2    ;顯示月日
  68.     JMP      MAIN     ;返回
  69.      NEXT:CALL     XIANSHI1    ;顯示時間
  70.     DEC      66H
  71.     MOV      A,66H
  72.     CJNE     A,#00,NEXT5
  73.     MOV      66,#50
  74.           CPL      P2.7
  75.     NEXT5:JMP      MAIN     ;返回
  76. ;========================設置子程序========================
  77.         SHEZHI:MOV   A,DAIMAZHI
  78.          MOV   DPTR,#TAB1
  79.       JMP   @A+DPTR
  80.     TAB1:AJMP  SUB0
  81.          AJMP  SUB1
  82.       AJMP  SUB2
  83.          AJMP  SUB3
  84.       AJMP  SUB4
  85.          AJMP  SUB5
  86.       AJMP  SUB6
  87.          AJMP  SUB7
  88. ;========================設置月份===========================
  89.     SUB0:MOV   SHUZI,YUE
  90.          CALL  XIANSHI3
  91.          JB    P1.3,PAN
  92.          JB    ANJIAN2,PAN
  93.       SETB  ANJIAN2
  94.       INC   YUE
  95.       MOV   R1,YUE
  96.       CJNE  R1,#13,PAN
  97.       MOV   YUE,#01
  98.            PAN:JNB   P1.3,PANJIAN1
  99.          CLR   ANJIAN2
  100.    PANJIAN1:JB    P1.4,TAIQI3
  101.          JB    ANJIAN3,TAIQI3
  102.       SETB  ANJIAN3
  103.       DEC   YUE
  104.       MOV   R1,YUE
  105.       CJNE  R1,#00,TAIQI3
  106.       MOV   YUE,#12
  107.   TAIQI3:JNB   P1.4,OUT7
  108.         CLR   ANJIAN3
  109.     OUT7:RET
  110. ;=========================設置日=============================  
  111.     SUB1:MOV   SHUZI,CRI
  112.          CALL  XIANSHI3
  113.          JB    P1.3,TAIQI4
  114.          JB    ANJIAN2,TAIQI4
  115.       SETB  ANJIAN2
  116.       INC   CRI
  117.       MOV   R1,CRI
  118.       CJNE  R1,#32,TAIQI4
  119.       MOV   CRI,#01
  120.   TAIQI4:JNB   P1.3,PANJIAN2
  121.         CLR   ANJIAN2
  122.    PANJIAN2:JB    P1.4,TAIQI5
  123.          JB    ANJIAN3,TAIQI5
  124.       SETB  ANJIAN3
  125.       DEC   CRI
  126.       MOV   R1,CRI
  127.       CJNE  R1,#00,TAIQI5
  128.       MOV   CRI,#32
  129.   TAIQI5:JNB   P1.4,OUT8
  130.         CLR   ANJIAN3
  131.     OUT8:RET
  132. ;==========================設置分=============================  
  133.     SUB2:MOV   SHUZI,FEN
  134.          CALL  XIANSHI3
  135.          JB    P1.3,TAIQI8
  136.          JB    ANJIAN2,TAIQI8
  137.       SETB  ANJIAN2
  138.       INC   FEN
  139.       MOV   R1,FEN
  140.       CJNE  R1,#60,TAIQI8
  141.       MOV   FEN,#01
  142.   TAIQI8:JNB   P1.3,PANJIAN4
  143.         CLR   ANJIAN2
  144.    PANJIAN4:
  145.             JB    P1.4,TAIQI9
  146.          JB    ANJIAN3,TAIQI9
  147.       SETB  ANJIAN3
  148.       DEC   FEN
  149.       MOV   R1,FEN
  150.       CJNE  R1,#00,TAIQI9
  151.       MOV   FEN,#59
  152.   TAIQI9:JNB   P1.4,OUT10
  153.         CLR   ANJIAN3
  154.    OUT10:RET
  155. ;==========================設置時===========================
  156.     SUB3:MOV   SHUZI,SHI
  157.          CALL  XIANSHI3
  158.          JB    P1.3,TAIQI6
  159.          JB    ANJIAN2,TAIQI6
  160.       SETB  ANJIAN2
  161.       INC   SHI
  162.       MOV   R1,SHI
  163.       CJNE  R1,#24,TAIQI6
  164.       MOV   SHI,#00
  165.   TAIQI6:JNB   P1.3,PANJIAN3
  166.         CLR   ANJIAN2
  167.    PANJIAN3:JB    P1.4,TAIQI7
  168.          JB    ANJIAN3,TAIQI7
  169.       SETB  ANJIAN3
  170.       DEC   SHI
  171.       MOV   R1,SHI
  172.       CJNE  R1,#00,TAIQI7
  173.       MOV   SHI,#23
  174.   TAIQI7:JNB   P1.4,OUT9
  175.         CLR   ANJIAN3
  176.     OUT9:RET
  177. ;==========================設置鬧鈴時===========================
  178.     SUB4:MOV   SHUZI,LINGSHI
  179.          CALL  XIANSHI3
  180.          JB    P1.3,TAIQI10
  181.          JB    ANJIAN2,TAIQI10
  182.       SETB  ANJIAN2
  183.       INC   LINGSHI
  184.       MOV   R1,LINGSHI
  185.       CJNE  R1,#24,TAIQI10
  186.       MOV   LINGSHI,#00
  187.     TAIQI10:JNB   P1.3,PANJIAN5
  188.         CLR   ANJIAN2
  189.    PANJIAN5:JB    P1.4,TAIQI11
  190.          JB    ANJIAN3,TAIQI11
  191.       SETB  ANJIAN3
  192.       DEC   LINGSHI
  193.       MOV   R1,LINGSHI
  194.       CJNE  R1,#00,TAIQI11
  195.       MOV   LINGSHI,#23
  196.     TAIQI11:JNB   P1.4,OUT11
  197.         CLR   ANJIAN3
  198.    OUT11:RET
  199. ;==========================設置鬧鈴分===========================  
  200.     SUB5:MOV   SHUZI,LINGFEN
  201.          CALL  XIANSHI3
  202.          JB    P1.3,TAIQI12
  203.          JB    ANJIAN2,TAIQI12
  204.       SETB  ANJIAN2
  205.       INC   LINGFEN
  206.       MOV   R1,LINGFEN
  207.       CJNE  R1,#60,TAIQI12
  208.       MOV   LINGFEN,#01
  209.     TAIQI12:JNB   P1.3,PANJIAN6
  210.         CLR   ANJIAN2
  211.    PANJIAN6:JB    P1.4,TAIQI13
  212.          JB    ANJIAN3,TAIQI13
  213.       SETB  ANJIAN3
  214.       DEC   LINGFEN
  215.       MOV   R1,LINGFEN
  216.       CJNE  R1,#00,TAIQI13
  217.       MOV   LINGFEN,#59
  218.     TAIQI13:JNB   P1.4,OUT12
  219.         CLR   ANJIAN3
  220.    OUT12:RET
  221. ;==========================設置控制時===========================
  222.     SUB6:MOV      SHUZI,KONGSHI
  223.          CALL  XIANSHI3
  224.          JB    P1.3,TAIQI14
  225.          JB    ANJIAN2,TAIQI14
  226.       SETB  ANJIAN2
  227.       INC   KONGSHI
  228.       MOV   R1,KONGSHI
  229.       CJNE  R1,#24,TAIQI14
  230.       MOV   KONGSHI,#00
  231.     TAIQI14:JNB   P1.3,PANJIAN7
  232.         CLR   ANJIAN2
  233.    PANJIAN7:JB    P1.4,TAIQI15
  234.          JB    ANJIAN3,TAIQI15
  235.       SETB  ANJIAN3
  236.       DEC   KONGSHI
  237.       MOV   R1,KONGSHI
  238.       CJNE  R1,#00,TAIQI15
  239.       MOV   KONGSHI,#23
  240.     TAIQI15:JNB   P1.4,OUT13
  241.         CLR   ANJIAN3
  242.    OUT13:RET
  243. ;==========================設置控制分===========================  
  244.     SUB7:MOV   SHUZI,KONGFEN
  245.          CALL  XIANSHI3
  246.          JB    P1.3,TAIQI16
  247.          JB    ANJIAN2,TAIQI16
  248.       SETB  ANJIAN2
  249.       INC   KONGFEN
  250.       MOV   R1,KONGFEN
  251.       CJNE  R1,#60,TAIQI16
  252.       MOV   KONGFEN,#01
  253.     TAIQI16:JNB   P1.3,PANJIAN8
  254.         CLR   ANJIAN2
  255.    PANJIAN8:JB    P1.4,TAIQI17
  256.          JB    ANJIAN3,TAIQI17
  257.       SETB  ANJIAN3
  258.       DEC   KONGFEN
  259.       MOV   R1,KONGFEN
  260.       CJNE  R1,#00,TAIQI17
  261.       MOV   KONGFEN,#59
  262.     TAIQI17:JNB   P1.4,OUT14
  263.         CLR   ANJIAN3
  264.    OUT14:RET
  265. ;=======================鬧鈴與外部控制子程序====================
  266.   SHJIAN_GN:MOV      A,SHI
  267.             CJNE     A,LINGSHI,NEXT2
  268.    MOV      A,FEN
  269.    CJNE     A,LINGFEN,NEXT4
  270.    SETB     P1.6
  271.    JMP      NEXT2
  272.    NEXT4:CLR      P1.6
  273.    NEXT2:MOV      A,KONGSHI
  274.          CJNE     A,KONGSHI,NEXT3
  275.    MOV      A,FEN
  276.    CJNE     A,KONGFEN,NEXT3
  277.       NEXT3:RET
  278. ;===============溫度時間顯示切換判斷子程序=================
  279.    PANWENDU:JB       P1.5,TAIQI0
  280.             JB       ANJIAN4,TAIQI0
  281.    SETB     ANJIAN4
  282.    CPL      WENDU
  283.   TAIQI0:JNB      P1.5,KK
  284.          CLR      ANJIAN4
  285.       KK:RET
  286. ;==========================顯示3子程序==========================
  287.    XIANSHI3:CALL     JISUAN
  288.             MOV      DPTR,#TAB
  289.       MOVC     A,@A+DPTR
  290.       MOV      SHUCHU,A
  291.       MOV      PIANXUAN,#04H;顯示十位
  292.       CALL     DELAY
  293.       MOV      PIANXUAN,#00H;關片選
  294.       MOV      A,B
  295.       MOVC     A,@A+DPTR
  296.       MOV      SHUCHU,A
  297.       MOV      PIANXUAN,#08H;顯示個位
  298.       CALL     DELAY
  299.       MOV      PIANXUAN,#00H;關片選
  300.       
  301.       MOV      SHUCHU,#0BFH
  302.       MOV      PIANXUAN,#02H;
  303.       CALL     DELAY
  304.       MOV      PIANXUAN,#00H;關片選
  305.             RET
  306. ;=======================參數鍵判斷子程序========================
  307.         CANSHU:JB     P1.2,TAIQI2
  308.             JB     ANJIAN5,TAIQI2
  309.       SETB   ANJIAN5
  310.       CALL   DAIMA    ;設置代碼
  311.   TAIQI2:JNB    P1.2,OUT5
  312.          CLR    ANJIAN5
  313.        OUT5:RET
  314. ;========================代碼子程序=============================
  315.          DAIMA:INC    DAIMAZHI
  316.          MOV    R7,DAIMAZHI
  317.       CJNE   R7,#08,PP
  318.       MOV    DAIMAZHI,#00
  319.       PP:RET
  320. ;========================顯示代碼===============================
  321.      XIANSHIMA:MOV    A,DAIMAZHI
  322.             MOV    DPTR,#TAB
  323.       MOVC   A,@A+DPTR
  324.       MOV    SHUCHU,A
  325.       MOV    PIANXUAN,#01H
  326.       CALL   DELAY
  327.       MOV    PIANXUAN,#00
  328.             RET
  329. ;=======================功能鍵判斷子程序========================
  330.    PANGONGNENG:JB     P1.1,TAIQI1
  331.             JB     ANJIAN1,TAIQI1
  332.       SETB   ANJIAN1
  333.       CPL    GONG
  334.   TAIQI1:JNB    P1.1,OUT4
  335.          CLR    ANJIAN1
  336.        OUT4:RET
  337. ;=========================按鍵判斷子程序========================
  338.     PANANJIAN:JB     P1.0,TAIQI
  339.             JB     ANJIAN,TAIQI
  340.       SETB   ANJIAN
  341.       CPL    QIEHUAN
  342.    TAIQI:JNB    P1.0,OUT1
  343.          CLR    ANJIAN
  344.        OUT1:RET
  345. ;***********************溫度顯示子程序*********************************
  346. ;    輸入:
  347. ;    輸出:
  348. ;實現功能:實現溫度的顯示   
  349.   XIANSHIWENDU:
  350.        LCALL     GET_TEMPER;調用讀溫度子程序
  351. ;進行溫度顯示
  352. ;顯示范圍00到99度,顯示精度為1度
  353. ;因為12位轉化時每一位的精度為0.0625度,我們不要求顯示小數所以可以拋棄29H的低4位
  354. ;將28H中的低4位移入29H中的高4位,這樣獲得一個新字節(jié),這個字節(jié)就是實際測量獲得的溫度
  355.           MOV     A,29H
  356.           MOV     C,40H;將28H中的最低位移入C
  357.           RRC     A
  358.            MOV     C,41H
  359.           RRC     A
  360.           MOV     C,42H
  361.           RRC     A
  362.           MOV     C,43H
  363.           RRC     A
  364.           MOV     29H,A
  365.     LCALL    DISPLAY;調用數碼管顯示子程序
  366.     RET      
  367. ; 這是DS18B20復位初始化子程序
  368. INIT_1820:
  369.         SETB     P3.5
  370.         NOP
  371.         CLR     P3.5
  372. ;主機發(fā)出延時537微秒的復位低脈沖
  373.         MOV     R1,#3
  374. TSR1:  
  375.         MOV     R0,#107
  376.         DJNZ     R0,$
  377.         DJNZ     R1,TSR1
  378.         SETB     P3.5;然后拉高數據線
  379.         NOP
  380.         NOP
  381.         NOP
  382.         MOV     R0,#25H
  383. TSR2:
  384.         JNB     P3.5,TSR3;等待DS18B20回應
  385.         DJNZ     R0,TSR2
  386.         LJMP     TSR4 ; 延時
  387. TSR3:
  388.        SETB     FLAG1 ; 置標志位,表示DS1820存在
  389.        LJMP     TSR5
  390. TSR4:
  391.         CLR     FLAG1 ; 清標志位,表示DS1820不存在
  392.        LJMP     TSR7
  393. TSR5:
  394.         MOV     R0,#117
  395. TSR6:
  396.        DJNZ     R0,TSR6 ; 時序要求延時一段時間
  397. TSR7:
  398.     SETB     P3.5
  399.     RET
  400. ; 讀出轉換后的溫度值
  401. GET_TEMPER:
  402.         SETB  P3.5
  403.        LCALL     INIT_1820 ;先復位DS18B20
  404.         JB     FLAG1,TSS2
  405.         RET     ; 判斷DS1820是否存在,若DS18B20不存在則返回
  406. TSS2:
  407.   MOV  A,#0CCH   ; 跳過ROM匹配
  408.     LCALL  WRITE_1820
  409.   MOV  A,#44H   ; 發(fā)出溫度轉換命令
  410.     LCALL     WRITE_1820
  411. ;這里通過調用顯示子程序實現延時一段時間,等待AD轉換結束,12位的話750微秒
  412.     LCALL  DISPLAY
  413.     LCALL  INIT_1820 ;準備讀溫度前先復位
  414.      MOV  A,#0CCH  ; 跳過ROM匹配
  415.     LCALL     WRITE_1820
  416.      MOV  A,#0BEH  ; 發(fā)出讀溫度命令
  417.     LCALL  WRITE_1820
  418.     LCALL  READ_18200 ; 將讀出的溫度數據保存到35H/36H
  419.   RET
  420. ;寫DS18B20的子程序(有具體的時序要求)
  421. WRITE_1820:
  422.         MOV  R2,#8;一共8位數據
  423.         CLR   C
  424. WR1:
  425.   CLR  P3.5
  426.   MOV  R3,#6
  427.   DJNZ  R3,$
  428.   RRC  A
  429.   MOV  P3.5,C
  430.   MOV  R3,#23
  431.   DJNZ  R3,$
  432.   SETB  P3.5
  433.   NOP
  434.   DJNZ  R2,WR1
  435.   SETB  P3.5
  436.   RET
  437. ; 讀DS18B20的程序,從DS18B20中讀出兩個字節(jié)的溫度數據
  438. READ_18200:
  439.   MOV  R0,#2 ; 將溫度高位和低位從DS18B20中讀出
  440.   MOV  R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)
  441. RE00:
  442.   MOV  R2,#8;數據一共有8位
  443. RE01:
  444.   CLR  C
  445.   SETB  P3.5
  446.   NOP
  447.   NOP
  448.    CLR  P3.5
  449.   NOP
  450.   NOP
  451.   NOP
  452.   SETB  P3.5
  453.   MOV  R3,#9
  454. RE10:
  455.   DJNZ  R3,RE10
  456.   MOV  C,P3.5
  457.   MOV  R3,#23
  458. RE20:
  459.   DJNZ  R3,RE20
  460.   RRC  A
  461.   DJNZ  R2,RE01
  462.   MOV  @R1,A
  463.   DEC  R1
  464.   DJNZ  R0,RE00
  465.   RET
  466. ;**********************顯示子程序*****************************
  467. display:
  468.   mov     a,29H ;將29H中的十六進制數轉換成10進制
  469.   mov     b,#10 ;10進制/10=10進制
  470.   div     ab
  471.   mov     b_bit,a ;十位在a
  472.   mov     a_bit,b ;個位在b
  473.   mov     dptr,#numtab ;指定查表啟始地址
  474.   mov     r0,#8
  475. dpl1:
  476.         mov     r1,#255 ;顯示1000次
  477. dplop:
  478.         mov     a,a_bit ;取個位數
  479.         MOVC    A,@A+DPTR ;查個位數的7段代碼
  480.         mov     p2,a ;送出個位的7段代碼
  481.    
  482.         SETB     p3.3 ;開個位顯示
  483.         acall     d1ms ;顯示1ms
  484.      CLR     p3.3
  485.         mov     a,b_bit ;取十位數
  486.      MOVC     A,@A+DPTR ;查十位數的7段代碼
  487.      mov     p2,a ;送出十位的7段代碼
  488.      SETB     p3.2 ;開十位顯示
  489.      acall     d1ms ;顯示1ms
  490.      CLR     p3.2
  491.     djnz     r1,dplop ;250次沒完循環(huán)
  492.     djnz     r0,dpl1 ;4個250次沒完循環(huán)
  493.     ret
  494. ;*************************延時子程序***************************
  495. ;    輸入:
  496. ;  輸出:
  497. ;實現功能:1MS延時(按12MHZ算)
  498. ;**************************************************************
  499. D1MS:
  500.      MOV R7,#80
  501.      DJNZ R7,$
  502. RET
  503. ;************************查表代碼*******************************
  504. numtab:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  505. ;************************顯示時分子程序*************************
  506. ;    輸入:FEN,YUE
  507. ;    輸出:A
  508. ;實現功能:實現時分的顯示
  509.    
  510. XIANSHI1:  
  511.           MOV      SHUZI,FEN
  512.           CALL     JISUAN
  513.     MOV      DPTR,#TAB
  514.     MOVC     A,@A+DPTR
  515.     MOV      SHUCHU,A
  516.     MOV      PIANXUAN,#04H;顯示分的十位
  517.     CALL     DELAY
  518.     MOV      PIANXUAN,#00H;關片選
  519.     MOV      A,B
  520.     MOVC     A,@A+DPTR
  521.     MOV      SHUCHU,A
  522.     MOV      PIANXUAN,#08H;顯示分的個位
  523.     CALL     DELAY
  524.     MOV      PIANXUAN,#00H;關片選
  525.           MOV      SHUZI,SHI
  526.           CALL     JISUAN
  527.     MOVC      A,@A+DPTR
  528.     MOV      SHUCHU,A
  529.     MOV      PIANXUAN,#01H;顯示時的十位
  530.     CALL     DELAY
  531.     MOV      PIANXUAN,#00H;關片選
  532.     MOV      A,B
  533.     MOVC     A,@A+DPTR
  534.     MOV      SHUCHU,A
  535.     MOV      PIANXUAN,#02H;顯示時的個位
  536.     CALL     DELAY
  537.     MOV      PIANXUAN,#00H;關片選
  538.           RET
  539. ;************************顯示月日子程序*************************
  540. ;    輸入:CRI,YUE
  541. ;    輸出:A
  542. ;實現功能:實現月日的顯示
  543. XIANSHI2:
  544.              MOV      SHUZI,CRI
  545.     CALL     JISUAN
  546.     MOV      DPTR,#TAB
  547.     MOVC     A,@A+DPTR
  548.     MOV      SHUCHU,A
  549.     MOV      PIANXUAN,#04H;顯示日的十位
  550.     CALL     DELAY
  551.     MOV      PIANXUAN,#00H;關片選
  552.     MOV      A,B
  553.     MOVC     A,@A+DPTR
  554.     MOV      SHUCHU,A  
  555.        MOV      PIANXUAN,#08H;顯示日的個位
  556.     CALL     DELAY
  557.     MOV      PIANXUAN,#00H;關片選
  558.   
  559.           MOV      SHUZI,YUE
  560.           CALL     JISUAN
  561.     MOVC     A,@A+DPTR
  562.     MOV      SHUCHU,A
  563.     MOV      PIANXUAN,#01H;顯示月的十位
  564.     CALL     DELAY
  565.     MOV      PIANXUAN,#00H;關片選
  566.     MOV      A,B
  567.     MOVC     A,@A+DPTR
  568.     MOV      SHUCHU,A
  569.     MOV      PIANXUAN,#02H;顯示月的個位
  570.     CALL     DELAY
  571.     MOV      PIANXUAN,#00H;關片選
  572.     RET
  573. JIACHULI:
  574.     DJNZ     R4,OUT3;判斷是否到一秒
  575.     MOV      R4,#50
  576.     INC      MIAO ;到一秒后秒位加1
  577.     MOV      R7,MIAO
  578.        CJNE     R7,#60,OUT3;判斷是否到60秒
  579.     MOV      MIAO,#00
  580.     INC      FEN
  581.     MOV      R7,FEN
  582.     CJNE     R7,#60,OUT3;判斷是否到60分
  583.     MOV      FEN,#00
  584.     INC      SHI
  585.     MOV      R7,SHI
  586.        CJNE     R7,#24,OUT3;判斷是否都24小時
  587.     MOV      SHI,#00
  588.     INC      CRI;到24小時后把日加一
  589.     MOV      R7,CRI
  590.     MOV      R4,YUE
  591.     CJNE     R4,#01,JIXU1
  592.     CJNE     R7,#32,OUT3
  593.     INC      YUE
  594.     MOV      CRI,#00
  595.      OUT3:JMP      OUT2
  596.     JIXU1:CJNE     R4,#02,JIXU2
  597.     CJNE     R7,#29,OUT3
  598.     INC      YUE
  599.     MOV      CRI,#00
  600.     JMP      OUT2
  601.     JIXU2:CJNE     R4,#03,JIXU3
  602.     CJNE     R7,#32,OUT2
  603.     INC      YUE
  604.     MOV      CRI,#00
  605.     JMP      OUT2
  606.     JIXU3:CJNE     R4,#04,JIXU4
  607.     CJNE     R7,#31,OUT2
  608.     INC      YUE
  609.     MOV      CRI,#00
  610.     JMP      OUT2
  611.     JIXU4:CJNE     R4,#05,JIXU5
  612.     CJNE     R7,#32,OUT2
  613.     INC      YUE
  614.     MOV      CRI,#00
  615.     JMP      OUT2
  616.     JIXU5:CJNE     R4,#06,JIXU6
  617.     CJNE     R7,#31,OUT2
  618.     INC      YUE
  619.     MOV      CRI,#00
  620.     JMP      OUT2
  621.     JIXU6:CJNE     R4,#07,JIXU7
  622.     CJNE     R7,#32,OUT2
  623.     INC      YUE
  624.     MOV      CRI,#00
  625.     JMP      OUT2
  626.     JIXU7:CJNE     R4,#08,JIXU8
  627.     CJNE     R7,#32,OUT2
  628.     INC      YUE
  629.     MOV      CRI,#00
  630.     JMP      OUT2
  631.     JIXU8:CJNE     R4,#09,JIXU9
  632.     CJNE     R7,#31,OUT2
  633.     INC      YUE
  634.     MOV      CRI,#00
  635.     JMP      OUT2
  636.     JIXU9:CJNE     R4,#10,JIXU10
  637.     CJNE     R7,#32,OUT2
  638.     INC      YUE
  639.     JMP      OUT2
  640.    JIXU10:CJNE     R4,#11,JIXU11
  641.     CJNE     R7,#31,OUT2
  642.     INC      YUE
  643.     MOV      CRI,#00
  644.     JMP      OUT2
  645.    JIXU11:CJNE     R4,#12,OUT2
  646.     CJNE     R7,#32,OUT2
  647.     MOV      YUE,#01
  648.     MOV      CRI,#00
  649.    OUT2:RET
  650. ;**********************初始化子程序*************************
  651.    CHUSHIHUA:MOV       SP,#7FH
  652.     MOV       TMOD,#01H;T0工作方式1
  653.           MOV    TH0,#0B1H;20MS的初值
  654.           MOV       TL0,#0E0H
  655.           SETB      ET0;開啟中斷TO
  656.           SETB      EA ;開啟中斷總開關
  657.           SETB      TR0;定時器溢出標志位
  658.     CLR       QIEHUAN
  659.              CLR       ANJIAN
  660.     CLR       ANJIAN1
  661.     CLR       ANJIAN2
  662.     CLR       ANJIAN3
  663.     CLR       ANJIAN4
  664.     CLR       ANJIAN5
  665.     CLR       WENDU   ;顯示溫度標志位清0
  666.     CLR       SHANSHUO
  667.     CLR       GONG
  668.     CLR       P1.6
  669.           SETB      C_0
  670.     MOV       MIAO,#55
  671.     MOV       FEN,#59
  672.     MOV       SHI,#21
  673.     MOV       YUE,#06
  674.     MOV       CRI,#23
  675.     MOV       DAIMAZHI,#00
  676.     MOV       LINGSHI,#00
  677.     MOV       LINGFEN,#00
  678.     MOV       KONGSHI,#00
  679.     MOV       KONGFEN,#00
  680.     MOV       DPTR,#TAB
  681.     MOV       R4,#50
  682.     MOV       66H,#50
  683.     RET
  684. ;///////計算子程序///////////////////////
  685. ;輸入:"30H"
  686. ;輸出:"A,B"
  687. ;實現的功能:查A在TAB位置的數
  688.   JISUAN:
  689.       MOV     A,SHUZI
  690.     MOV     B,#10
  691.      DIV     AB
  692.     RET
  693. ;/////////////////中斷到來重置初值程序/////////////////////////
  694. ;輸入;無
  695. ;輸出: 無
  696. ;實現的功能中斷到來重置初值
  697.      TT0:
  698.           MOV     TH0,#0B1H
  699.        MOV       TL0,#0E0H
  700.        SETB      C_0
  701.        RETI
  702. ;//////////////////////////延時程序/////////////////////////
  703. ;輸入;無
  704. ;輸出: 無
  705. ;實現的功能:延時一段時間
  706.     DELAY:
  707.       MOV     R5,#20H
  708. L8:  MOV     R6,#20H
  709.    DJNZ    R6,$
  710.    DJNZ    R5,L8
  711.    RET
  712. TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  713. ;///////結束//////////////////////////////
  714.      END   
復制代碼


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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久二区 | 久久久蜜桃一区二区人 | 日本国产一区二区 | 亚洲欧美综合精品另类天天更新 | 视频一区在线 | 午夜视频免费 | 精品1区2区3区4区 | 成人亚洲精品久久久久软件 | 国产性网| 欧美日韩视频网站 | 中文字幕综合 | 日韩中文字幕在线不卡 | 日日操夜夜操天天操 | 国产精品成人一区二区 | 精品国产乱码久久久久久中文 | 欧美一级全黄 | 少妇一级淫片免费放播放 | 亚洲欧美综合 | 免费一级做a爰片久久毛片潮喷 | 成年网站在线观看 | 日韩一区二区不卡 | www.四虎.com | 韩日一区二区三区 | 欧美日韩在线一区二区三区 | 欧美男人天堂 | 国产特级毛片 | 99精品欧美一区二区三区综合在线 | 国产成人99av超碰超爽 | 91精品麻豆日日躁夜夜躁 | 精品国产一区二区三区性色av | 亚洲福利网 | 国产精品一区二区福利视频 | 免费毛片www com cn | 国产精品99久久久精品免费观看 | 视频在线亚洲 | 国产高清在线精品一区二区三区 | 国产一区二区三区在线免费 | 日韩精品无码一区二区三区 | 精精国产xxxx视频在线播放 | 成人免费观看视频 | 天天拍天天色 |