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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

可預置的24小時3路時間控制器

[復制鏈接]
跳轉到指定樓層
樓主
  1.         org 0000h
  2.         ajmp main
  3.         org 000bh
  4.         ajmp t100ms
  5.         org 001bh
  6.         ajmp tt1
  7. tt1:    mov th1,#26h       ;定時器T1中斷程序
  8.          mov tl1,#0fch
  9.          inc 5ah
  10.          mov a,#02h
  11.          cjne a,3ah,ttk
  12.          cpl f0
  13.          mov 5ah,#00h
  14. ttk:     reti
  15. t100ms:        MOV TL0,#0b0H      ;定時器T0中斷程序
  16.         MOV TH0,#03CH
  17.         PUSH PSW;
  18.         PUSH ACC
  19.         SETB RS0;        工作在1區
  20.         MOV A,68H
  21.         INC A
  22.         MOV 68H,A       ;
  23.         CJNE A,#0AH,DONE       ;不到1秒,退出中斷
  24.         MOV 68H,#00H           ;1秒,置68H為0
  25.         MOV A,67H;
  26.         INC A            ;秒加一
  27.         MOV 67H,A
  28.         CJNE A,#0AH,DONE;不到十秒,退出
  29.         MOV 67H,#00H    ;到十秒,秒個位清零,秒十位加一
  30.         MOV A,66H;
  31.         INC A
  32.         MOV 66h,A;
  33.         CJNE A,#06H,DONE;秒十位為6嗎?不,退出
  34.         MOV 66H,#00H;    為6,秒清零,分個位加一
  35.         MOV A,65H;
  36.         INC A
  37.         MOV 65H,A
  38.         CJNE A,#0AH,DONE  ;分個位為十嗎?不,退出
  39.         MOV 65H,#00H      ;是,分個位清零,分十位加一
  40.         MOV A,64H;        分十位
  41.         INC A
  42.         MOV 64H,A
  43.         CJNE A,#06H,DONE   ;分十位為6嗎?不,退出
  44.         MOV 64H,#00H       ;是,分清零,時個位加一
  45.         MOV A,63H;        時個位
  46.         INC A
  47.         MOV 63H,A
  48.         CJNE A, #04H,DONET0  ;時個位為4嗎?不,轉DONET0
  49.         MOV A,62H
  50.         CJNE A,#02H,DONE;        是24小時了嗎?
  51.         MOV 62H,#00H;
  52.         MOV 63H,#00H;                是24小時了,清零
  53. DONE:        POP Acc                  ; T100ms中斷退出
  54.         POP PSW
  55.         RETI
  56. DONET0:        CJNE A,#0AH,DONE
  57.         MOV 63H,#00H;
  58.         MOV A,62H
  59.         INC A
  60.         MOV 62H,A
  61.         LJMP DONE
  62. MAIN:        MOV A,#0F0H
  63.         MOV P2,A
  64.         MOV SP,#30H

  65.         MOV 6CH,#10H        ;第一開機時間標志為“10”
  66.         MOV 6FH,#1fH        ;第一關機時間標志為“1F”
  67.         MOV 72H,#20H
  68.         MOV 75H,#2fH
  69.         MOV 78H,#30H
  70.         MOV 7BH,#3fH
  71.         setb et1
  72.         SETB ET0        ;T0中斷開
  73.         SETB PT0        ;T0為高優先級中斷
  74.         SETB EA
  75.         SETB F0
  76.         MOV TMOD,#01H        ;T0為方式1、定時功能
  77.         MOV TL0,#0B0H
  78.         MOV TH0,#3CH        ;定時初值100ms
  79.         SETB TR0        ;開定時器
  80. MAIN1:  CLR TR1
  81.         mov 4bh,#00h          ;鍵碼清零
  82.         mov 4ch,#00h          ;AN1鍵序清零
  83.         mov 4dh,#00h          ;AN2鍵序清零
  84.         ACALL DISZH
  85.         ACALL DISP        ;調顯示子程序
  86. TSHIBI:        MOV A,62H        ;62H為時十位
  87.         SWAP A
  88.         ORL A,63H        ;63H為時個位
  89.         MOV 25H,A        ;25H為小時
  90.         MOV A,64H        ;64H為分十位
  91.         SWAP A
  92.         ORL A,65H        ;65H為分個位
  93.         MOV 26H,A        ;26H為分鐘

  94.         MOV A,66H
  95.         SWAP A
  96.         ORL A,67H
  97.         MOV A,27H      ;27H為秒
  98.         JB P3.0,KK0    ;K1斷開,轉KK0
  99.         MOV A,#02H     ;手動程序
  100.         CJNE A,4BH,DKK1
  101.         ACALL KEYW
  102.         CPL P2.1
  103. DKK1:   MOV A,#03H
  104.         CJNE A,4BH,DKK2
  105.         ACALL KEYW
  106.         CPL P2.2
  107. DKK2:   MOV A,#04H
  108.         CJNE A,4BH,KKK
  109.         ACALL KEYW
  110.         CPL P2.3
  111.         AJMP KKK
  112. KK0:    JNB 0FH,KK2     ;第一路開/關機功能關,轉KK2
  113.         MOV A,25H;
  114.         CJNE A,6AH,KK1;        第一路開機小時到了嗎?不到,轉KK1
  115.         MOV A,26H;        到了,比較分鐘
  116.         CJNE A,6BH,KK1;        分鐘到了嗎?不到,轉KK1

  117.         SETB 00H;        開機時間到,令00H=1
  118.         SETB P2.1;        第一路輸出開
  119. KK1:    MOV A,25H
  120.         CJNE A,6DH,KK2;        第一路關機小時到了嗎?不到,轉KK2
  121.         MOV A,26H;        到了,比較分鐘
  122.         CJNE A,6EH,KK2;        分鐘到了嗎?不到,轉KK2

  123.         CLR 00H;        第一路關機時間到,令00H=0
  124.         CLR P2.1;        第一路輸出關

  125. KK2:    JNB 17H,KK4      ;第二路開/關機功能關,轉KK4
  126.         MOV A,25H
  127.         CJNE A,70H,KK3
  128.         MOV A,26H
  129.         CJNE A,71H,KK3

  130.         SETB 00H       
  131.         SETB P2.2       
  132. KK3:        MOV A,25H
  133.         CJNE A,73H,KK4
  134.         MOV A,26H
  135.         CJNE A,74H,KK4

  136.         CLR 00H       
  137.         CLR P2.2

  138. KK4:    JNB 1FH,KKK     ;第三路開/關機功能關,轉KKK
  139.         MOV A,25H
  140.         CJNE A,76H,KK5
  141.         MOV A,26H
  142.         CJNE A,77H,KK5

  143.         SETB 00H
  144.         SETB P2.3
  145. KK5:        MOV A,25H
  146.         CJNE A,79H,KKK
  147.         MOV A,26H
  148.         CJNE A,7AH,KKK

  149.         CLR P2.3
  150.         CLR 00H
  151. KKK:        ACALL DISZH
  152.         ACALL DISP
  153.         MOv A,#01H
  154.         CJNE A,4BH,KKK1
  155.         LCALL KEYW
  156.         INC 4CH                ;AN1鍵第一次被按下,AN1鍵序加一
  157.         AJMP MAIN2
  158. KKK1:   AJMP MAIN1
  159. MAIN2:  SETB TR1        ;開定時器1
  160.         MOV 4DH,#01H        ;AN2鍵序置1
  161. MAIN2A:  ACALL DISZH
  162.         ACALL DISP
  163.         MOV A,#01H
  164.         CJNE A,4BH,DX0        ;AN1鍵第二次被按下嗎?沒有,轉DX0
  165.         LCALL KEYW                ;AN1鍵第二次被按下,AN1鍵序加一
  166.         INC 4CH
  167.         AJMP MAIN3
  168. dx0:     mov a,#02h
  169.          cjne a,4bh,set1
  170.          lcall keyw             ;AN2鍵被按下
  171.          inc 4dh                ;AN2鍵序加1
  172.          mov a,#07h
  173.          cjne a,4dh,set1
  174.          mov 4dh,#01h
  175. set1:    acall dset
  176.         ACALL DISZH2
  177.         ACALL DISZH
  178.         ACALL DISP
  179.         MOV A,#05H
  180.         CJNE A,4BH,DDD        ;AN5鍵被按下?否
  181.         LCALL KEYW
  182.         LJMP MAIN1                ;AN5鍵被按下?是,轉MAIN1
  183. DDD:    ajmp main2a
  184. MAIN3:  MOV 4DH,#03H    ;開關機時間設定程序
  185. DDK:    MOV R0,#6AH;
  186. A2:        MOV A,@R0;
  187.         ANL A,#0FH;
  188.         MOV 53H,A;        顯存,53H為時個位
  189.         MOV A,@R0
  190.         ANL A,#0F0H
  191.         SWAP A
  192.         MOV 52H,A;        顯存,52H為時十位
  193.         INC R0;
  194.         MOV A,@R0;
  195.         ANL A,#0FH;
  196.         MOV 55H,A;        顯存,55H為分個位
  197.         MOV A,@R0;
  198.         ANL A,#0F0H;
  199.         SWAP A;
  200.         MOV 54H,A;        顯存,54H為分十位
  201.         INC R0
  202.         MOV A,@R0;
  203.         ANL A,#0FH;
  204.         MOV 57H,A;        顯存,
  205.         MOV A,@R0;
  206.         ANL A,#0F0H;
  207.         SWAP A;
  208.         MOV 56H,A;        顯存,56H、57H在顯示時間時為秒數值在設置時為開關機標志
  209.         DEC R0
  210.         DEC R0
  211. A3:
  212.         ACALL DISP
  213.         MOV A,#01H
  214.         CJNE A,4BH,DKX0               ;AN1鍵又一次被按下嗎?沒有,轉DKX0
  215.         LCALL KEYW                ;AN1鍵又一次被按下,AN1鍵序加一
  216.         INC 4CH
  217.         mov a,4ch
  218.         CJNE a,#08H,DDD1
  219.         MOV 4CH,#02H
  220.         ajmp main3
  221. DDD1:        INC R0
  222.         INC R0
  223.         inc r0
  224.         mov 4dh,#03h
  225.         AJMP A2
  226. dKx0:     mov a,#02h
  227.          cjne a,4bh,setK1
  228.          lcall keyw             ;AN2鍵被按下
  229.          inc 4dh                ;AN2鍵序加1
  230.          mov a,#07h
  231.          cjne a,4dh,setK1
  232.          mov 4dh,#03h
  233. setK1:  MOV A,#04H               ;AN4鍵被按下嗎?
  234.         CJNE A,4BH,SETK2
  235.         lcall keyw               ;AN4鍵被按下
  236.         MOV A,4CH
  237.         CJNE A,#02H,DXD1
  238.         CPL 0FH
  239. DXD1:   CJNE A,#04H,DXD2
  240.         CPL 17H
  241. DXD2:   CJNE A,#06H,SETK2
  242.         CPL 1FH
  243. SETK2:  acall dset
  244.         ACALL DISZH3
  245.         ACALL DISP
  246.         MOV A,#05H
  247.         CJNE A,4BH,DDD3               ;AN5鍵被按下?否
  248.         LCALL KEYW

  249.         LJMP MAIN1                ;AN5鍵被按下?是,轉MAIN1
  250. DDD3:   AJMP A2

  251. diSP:                                 ;顯示子程序
  252.          mov dptr,#tab
  253.          mov a,57h                  ;顯示秒個位
  254.          mov r3,4dh
  255.          cjne r3,#01h,dd1           
  256. dk1:     jb F0,DD1                  
  257.          mov a,#0ffh                ;F0為0,該位不顯示,以達到該位閃爍效果
  258.          sjmp dd2
  259. dd1:     movc a,@a+dptr
  260. dd2:         mov p1,a                 ;送段碼
  261.          clr p0.0                 ;開秒個位

  262. dsp1:         acall dll
  263. d1:         setb p0.0                ;關個位
  264.          mov a,56h                ;顯示左起第5位(秒十位)
  265.          mov r3,4dh
  266.          cjne r3,#02h,dd3
  267. dk2:     jb F0,DD3
  268.          mov a,#0ffh
  269.          sjmp dd4
  270. dd3:     movc a,@a+dptr
  271. dd4:     MOV B,A
  272.          MOV A,4CH
  273.          CJNE A,#02H,DXD3
  274.          MOV A,B
  275.          CPL A
  276.          ORL A,21H
  277.          CPL A                    ;判斷是否顯示第一次開關機標志中的小數點
  278.          AJMP ZX
  279. DXD3:    CJNE A,#04H,DXD4
  280.          MOV A,B
  281.          CPL A
  282.          ORL A,22H
  283.          CPL A                    ;判斷是否顯示第二次開關機標志中的小數點
  284.          AJMP ZX
  285. DXD4:    CJNE A,#06H,DXD5
  286.          MOV A,B
  287.          CPL A
  288.          ORL A,23H
  289.          CPL A                    ;判斷是否顯示第三次開關機標志中的小數點
  290.          AJMP ZX
  291. DXD5:    MOV A,B
  292. ZX:      mov p1,a
  293.          clr p0.1
  294.          jb p0.7,dsp2             ;AN5鍵沒有按下,轉dsp2
  295.          acall del1
  296.          jb p0.7,dsp2
  297.          ajmp key5                ;AN5鍵按下,轉key5鍵碼識別
  298. dsp2:         acall dll
  299. d2:         setb p0.1
  300.          mov a,55h                ;顯示分個位
  301.          mov r3,4dh
  302.          cjne r3,#03h,dd5         ;AN3鍵序為4嗎?

  303. dk3:     jb F0,DD5                ;F0為1,顯示
  304.          mov a,#0ffh
  305.          sjmp dd6
  306. dd5:         movc a,@a+dptr
  307. dd6:         mov p1,a
  308.          clr p0.2
  309.          jb p0.7,dsp3
  310.          acall del1
  311.          jb p0.7,dsp3
  312.          ajmp key4               ;AN4鍵按下,轉key4鍵碼識別
  313. dsp3:         acall dll
  314. d3:         setb p0.2
  315.          mov a,54h
  316.          mov r3,4dh
  317.          Cjne r3,#04h,dd7
  318. dk4:     jb F0,DD7
  319.          mov a,#0ffh
  320.          sjmp dd8
  321. dd7:     movc a,@a+dptr
  322. dd8:         mov p1,a
  323.          clr p0.3
  324.          jb p0.7,dsp4
  325.          acall del1
  326.          jnb p0.7,key3          ;AN3鍵按下,轉key3鍵碼識別
  327. dsp4:         acall dll
  328. d4:         setb p0.3
  329.          mov a,53h
  330.          mov r3,4dh
  331.          cjne r3,#05h,dd9
  332. dk5:     jb F0,DD9
  333.          mov a,#0ffh
  334.          sjmp dd10
  335. dd9:         movc a,@a+dptr
  336. DD10:   MOV P1,A

  337.          clr p0.4
  338.          jb p0.7,dsp5
  339.          acall del1
  340.          jnb p0.7,key2          ;AN2鍵按下,轉key2鍵碼識別
  341. dsp5:   acall dll
  342. d5:     setb p0.4
  343.          mov a,52h
  344.          mov r3,4dh
  345.          cjne r3,#06h,dd11
  346. dk6:     jb F0,DD11
  347.          mov a,#0ffh
  348.          sjmp dd12
  349. dd11:         movc a,@a+dptr
  350. dd12:         mov p1,a

  351.          clr p0.5
  352.          jb p0.7,dsp6
  353.          acall del1
  354.          jnb p0.7,key1          ;AN1鍵按下,轉key1鍵碼識別
  355. dsp6:    acall dll
  356. d6:      setb p0.5
  357.          ret
  358. tab:    DB        0C0H                ; 0
  359.         DB        0F9H                ; 1
  360.         DB        0A4H                ; 2
  361.         DB        0B0H                ; 3
  362.         DB        099H                ; 4
  363.         DB        092H                ; 5
  364.         DB        082H                ; 6
  365.         DB        0F8H                ; 7
  366.         DB        080H                ; 8
  367.         DB        090H                ; 9
  368.         DB        088H                ; A
  369.         DB        083H                ; B
  370.         DB        0C6H                ; C
  371.         DB        0A1H                ; D
  372.         DB        086H                ; E
  373.         DB        08EH                ; F
  374. key1:    mov 4bh,#01h           ;保存AN1鍵碼
  375.          ajmp d6
  376. key2:    mov 4bh,#02h
  377.          ajmp d5
  378. key3:    mov 4bh,#03h
  379.          ajmp d4
  380. key4:    mov 4bh,#04h
  381.          ajmp d3
  382. key5:    mov 4bh,#05h
  383.          ajmp d2
  384. keyw:    mov 4bh,#00h             ;鍵等待釋放程序
  385.          lcall disp
  386.          mov a,4bh
  387.          jnz keyw
  388.          lcall disp
  389.          mov a,4bh
  390.          jnz keyw
  391.          ret
  392. DISZH:   MOV 52H,62H         ;時間值送顯存子程序
  393.         MOV 53H,63H
  394.         MOV 54H,64H
  395.         MOV 55H,65H
  396.         MOV 56H,66H
  397.         MOV 57H,67H
  398.         RET
  399. DISZH2: MOV 62H,52H          ;正常時間設置數據裝入子程序
  400.         MOV 63H,53H
  401.         MOV 64H,54H
  402.         MOV 65H,55H
  403.         MOV 66H,56H
  404.         MOV 67H,57H
  405.         RET
  406. DISZH3: MOV A,52H             ;開關機時間設置數據裝入子程序
  407.         SWAP A
  408.         ORL A,53H
  409.         MOV @r0,a
  410.         INC R0
  411.         MOV A,54H
  412.         SWAP A
  413.         ORL A,55H
  414.         MOV @R0,A
  415.         dec r0
  416.         RET
  417. dset:    mov r3,4dh                ;設定子程序
  418.          cjne r3,#01h,dx2          ;AN2鍵序不為1,轉DX2
  419.          mov r4,4bh
  420.          cjne r4,#03h,dx11         ;AN2鍵序為1,但AN3鍵未被按下
  421.          lcall keyw                ;AN2鍵被按下,等待鍵釋放
  422.          inc 57h                   ;秒個位的數值被更改(加1)
  423.          mov r5,57h
  424.          cjne r5,#0ah,dx11         
  425.          mov 57h,#00h
  426. dx11:         ajmp dx
  427. dx2:     mov r3,4dh
  428.          cjne r3,#02h,dx3
  429.          mov r4,4bh
  430.          cjne r4,#03h,dx12
  431.          lcall keyw
  432.          inc 56h
  433.          mov r5,56h
  434.          cjne r5,#07h,dx12         ;使該位(秒十位)的數值可在0--6之間隨意設定
  435.          mov 56h,#00h
  436. dx12:         ajmp dx
  437. dx3:     cjne r3,#03h,dx4
  438.          mov r4,4bh
  439.          cjne r4,#03h,dx13
  440.          lcall keyw
  441.          inc 55h
  442.          mov r5,55h
  443.          cjne r5,#0ah,dx13         
  444.          mov 55h,#00h
  445. dx13:         ajmp dx
  446. dx4:     cjne r3,#04h,dx5
  447.          mov r4,4bh
  448.          cjne r4,#03h,dx14
  449.          lcall keyw
  450.          inc 54h
  451.          mov r5,54h
  452.          cjne r5,#07h,dx14           ;使該位(分十位)的數值可在0--6之間隨意設定
  453.          mov 54h,#00h
  454. dx14:         ajmp dx
  455. dx5:     cjne r3,#05h,dx6
  456.          mov r4,4bh
  457.          cjne r4,#03h,dx15
  458.          lcall keyw
  459.          inc 53h                ;時個位的數值被更改(加1)
  460.         MOV A,52H
  461.         SWAP A
  462.         ORL A,53H
  463.         CLR C
  464.         CJNE A,#24H,DXD6
  465.         AJMP DXD7
  466. DXD6:   JC DXD7
  467.         mov 53h,#00h                ;時數大于24,置時個位為零
  468. DXD7:   mov r5,53h
  469.          cjne r5,#0ah,dx15        ;在時鐘數不大于24的前提下,使該位(時個位)的數值可在0--9之間隨意設定
  470.          mov 53h,#00h
  471. dx15:         ajmp dx
  472. dx6:     cjne r3,#06h,dx
  473.          mov r4,4bh
  474.          cjne r4,#03h,dx16
  475.          lcall keyw                ;AN3按下并釋放,時十位加一

  476.          inc 52h
  477.         MOV A,52H
  478.         SWAP A
  479.         ORL A,53H
  480.         CLR C
  481.         CJNE A,#24H,DX7
  482.         AJMP DX8
  483. DX7:    JC DX8
  484.         MOV 52H,#00H                ;時數大于24,置時十位為零
  485. DX8:    mov r5,52h
  486.          cjne r5,#03h,dx16        ;在時鐘數不大于24的前提下,使該位(時十位)的數值可在0--2之間隨意設定
  487.          mov 52h,#00h
  488. dx16:         ajmp dx
  489. dx:         acall disp    ;調用顯示子程序
  490.          ret
  491. dll:     MOV R7,#01fH
  492. DL1:     MOV R6,#1fH
  493. DL2:     DJNZ R6,DL2
  494.          DJNZ R7,DL1
  495.          RET
  496. DEL1:    MOV R7,#0aH
  497. DEL1A:   MOV R6,#2eH
  498. DEL1B:   DJNZ R6,DEL1B
  499.          DJNZ R7,DEL1A
  500.          RET
  501.          END
復制代碼


Schematic Prints.jpg (117.22 KB, 下載次數: 229)

Schematic Prints.jpg

3路輸出時間控制器源程序.zip

1.16 KB, 下載次數: 55, 下載積分: 黑幣 -5

源程序

評分

參與人數 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:104183 發表于 2016-3-21 15:36 | 只看該作者
謝謝分享,拿走學習去了。
回復

使用道具 舉報

板凳
ID:477512 發表于 2019-2-20 23:50 | 只看該作者
這個電路在2006年《電子報》上發表過,我按照上面的程序試驗一下,不能設置和走時,不知道是怎么回事?望解!
回復

使用道具 舉報

地板
ID:517951 發表于 2020-11-15 14:11 | 只看該作者
強,全匯編
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天堂中文av | 国产精品亚洲二区 | 亚洲高清成人 | 亚洲区在线 | 国产99久久 | 91私密视频 | 国产成人精品一区二区 | 激情视频一区 | 精品国产99 | 午夜大片 | 久久精品播放 | 男女啪啪高潮无遮挡免费动态 | 午夜影院在线观看视频 | 国产精品久久久久久久白浊 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 国产成人精品一区二三区在线观看 | av午夜激情 | www.久久 | 久久精品 | 国产国产精品 | 二区在线观看 | 久久久男人的天堂 | 久久国产精品99久久久大便 | 99国产精品久久久久 | 少妇一级淫片免费放播放 | 亚洲自拍偷拍欧美 | 亚洲视频在线播放 | 欧美久久久久久久久 | 日韩三级在线观看 | 99精品视频在线观看 | 亚洲成人日韩 | 国产一区久久 | 国产伦精品一区二区三区照片91 | 日韩国产在线观看 | 日韩国产黄色片 | 日韩一区二区三区在线看 | 欧美日韩在线观看一区 | 伊人亚洲 | 性高湖久久久久久久久3小时 | 国产精品永久久久久 | 国产99久久久国产精品 |