欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 基于51單片機(jī)匯編語言的時(shí)鐘仿真及程序,實(shí)現(xiàn)校時(shí)功能 [打印本頁]

作者: huxiaoyu    時(shí)間: 2018-3-25 15:47
標(biāo)題: 基于51單片機(jī)匯編語言的時(shí)鐘仿真及程序,實(shí)現(xiàn)校時(shí)功能
基于51單片機(jī)的時(shí)鐘仿真及程序,實(shí)現(xiàn)校時(shí)功能
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)匯編語言源程序如下:
  1. ORG  0000H
  2. LJMP  START
  3. ORG  000BH     ;定時(shí)器/計(jì)數(shù)器T0中斷程序入口
  4. LJMP  INTT0
  5. ////////////////////////////////////////////////////////
  6. START:  MOV  R0,#70H
  7.                 MOV  R7,#0CH
  8. INIT:   MOV  @R0,#00H
  9.                 INC  R0
  10.                 DJNZ  R7,INIT        ;清空70H-7CH中的內(nèi)容,用于存儲(chǔ)時(shí)間的各位數(shù)
  11.                 MOV  72H,#10
  12.                 MOV  75H,#10          ;數(shù)碼管顯示中間的橫杠,取TAB中的第11個(gè)代碼
  13.                 MOV  TMOD,#01H                 ;定時(shí)器方式
  14.                 MOV  TL0,#0B0H                  ;初值設(shè)定
  15.                 MOV  TH0,#03CH
  16.                 SETB  EA                                ;開中斷,啟動(dòng)
  17.                 SETB  ET0
  18.                 SETB  TR0
  19. START1:        LCALL  SCAN
  20.                 LCALL  KEYSCAN
  21.                 SJMP  START1

  22. DL1MS:        MOV  R6,#14H            ;延時(shí)1MS子程序
  23. DL1:        MOV  R7,#19H
  24. DL2:        DJNZ  R7,DL2
  25.                 DJNZ  R6,DL1
  26.                 RET

  27. DL20MS:        MOV R1,#20
  28. DL3:    LCALL DL1MS                    ;延時(shí)20MS子程序
  29. DL4:    DJNZ R1,DL2
  30.                 RET
  31. //////////////////////////////////////////////////////               
  32.        ;數(shù)碼管顯示程序
  33. SCAN:        MOV  A,78H       ;取秒的個(gè)位給70H,十位給71H
  34.                 MOV  B,#0AH
  35.                 DIV  AB
  36.                 MOV  71H,A
  37.                 MOV  70H,B
  38.                 MOV  A,79H                 ;取分的個(gè)位給73H,十位給74H
  39.                 MOV  B,#0AH
  40.                 DIV  AB
  41.                 MOV  74H,A
  42.                 MOV  73H,B
  43.                 MOV  A,7AH                 ;取時(shí)的個(gè)位給76H,十位給77H
  44.                 MOV  B,#0AH
  45.                 DIV  AB
  46.                 MOV  77H,A
  47.                 MOV  76H,B
  48.                 MOV  R1,#70H     ;從70H-77H循環(huán)掃描顯示
  49.                 MOV  R5,#80H
  50.                 MOV  R3,#08H

  51. SCAN1:        MOV  A,R5
  52.                 MOV  P2,A                  ;位碼賦給P2
  53.                 MOV  A,@R1                  ;從70H儲(chǔ)存的秒的個(gè)位開始掃描,通過查表將段碼賦給P0
  54.                 MOV  DPTR,#TAB
  55.                 MOVC  A,@A+DPTR
  56.                 MOV  P0,A

  57.                 MOV  A,R5
  58.                 LCALL  DL1MS
  59.                 INC  R1
  60.                 MOV  A,R5
  61.                 RR  A                           ;位碼右移一位
  62.                 MOV  R5,A
  63.                 DJNZ  R3,SCAN1           ;8次一個(gè)循環(huán)
  64.                 MOV  P2,#00H
  65.                 MOV  P0,#0FFH
  66.                 RET
  67. TAB:DB  0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
  68.                 ;“0~9”,“-”的共陽極字段碼


  69. INTT0:        PUSH  ACC                 ;定時(shí)器/計(jì)數(shù)器T0中斷服務(wù)程序
  70.                 PUSH  PSW
  71.                 CLR  ET0
  72.                 CLR  TR0
  73.                 MOV  TL0,#0B0H             ;重裝初值
  74.                 MOV  TH0,#03CH
  75.                 SETB  TR0
  76.                 INC  7BH             ;50ms緩沖單元
  77.                 MOV  A,7BH
  78.                 CJNE  A,#14H,OUTT0         ;計(jì)滿20次50ms單元清零,秒單元加一
  79.                 MOV  7BH,#00       
  80.                 INC  78H ;
  81.                 MOV  A,78H                         ;78H存秒單元
  82.                 CJNE  A,#3CH,OUTT0         ;秒計(jì)滿60次,分單元加一,秒單元清零
  83.                 MOV  78H,#00
  84.                 INC  79H        ;
  85.                 MOV  A,79H                         ;79H存分單元
  86.                 CJNE  A,#3CH,OUTT0   ;分計(jì)滿60次,時(shí)單元加一,分單元清零
  87.                 MOV  79H,#00
  88.                 INC  7AH                 ;7AH存時(shí)單元
  89.                 MOV  A,7AH
  90.                 CJNE  A,#18H,OUTT0         ;時(shí)單元滿24清零
  91.                 MOV  7AH,#00
  92. OUTT0:
  93.                 SETB  ET0
  94.                 pop  psw
  95.                 pop  acc
  96.                 RETI
  97. //////////////////////////////////////////////////////////
  98.         ;按鍵處理程序
  99. KEYSCAN:JNB  P1.0,KEYSCAN0
  100.                 JNB  P1.1,KEYSCAN1
  101.                 JNB  P1.2,KEYSCAN2
  102. KEYOUT:        RET
  103. KEYSCAN0:     LCALL  DL20MS            ;防按鍵抖動(dòng)程序
  104.              JB  P1.0,KEYOUT
  105. WAIT0:        JNB  P1.0,WAIT0                ;k1是高電平則順序執(zhí)行,每按一次循環(huán)一下7CH計(jì)數(shù)加一
  106.                  INC  7CH
  107.                     MOV  A,7CH
  108.                  CLR  TR0
  109.                   CLR  ET0
  110.                  CJNE  A,#03H,KEYOUT        ;按三次則繼續(xù)計(jì)時(shí),按不到三次則跳轉(zhuǎn)
  111.                  MOV  7CH,#00
  112.                  SETB  TR0
  113.                  SETB  ET0
  114.                  SJMP  KEYOUT
  115. KEYSCAN1:     LCALL  DL20MS
  116.              JB  P1.1,KEYOUT
  117. WAIT1:              JNB  P1.1,WAIT1           ;按k2值加一
  118.                  MOV  A,7CH
  119.                  CJNE  A,#02H,KSCAN11        ;判斷k1,按一次則跳轉(zhuǎn)到時(shí)值調(diào)整,按兩次則順序執(zhí)行分值調(diào)整
  120.                  INC  79H                        ;分值加一
  121.                  MOV  A,79H
  122.                  CJNE  A,#3CH,KEYOUT   ;若分值到60,則清零
  123.                  MOV  79H,#00
  124.                  SJMP  KEYOUT
  125. KSCAN11:    INC  7AH                 ;小時(shí)加一
  126.                  MOV  A,7AH
  127.                  CJNE  A,#18H,KEYOUT   ;若小時(shí)滿24,則清零
  128. ……………………

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

所有資料51hei提供下載:
時(shí)鐘程序.zip (50.17 KB, 下載次數(shù): 42)







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1