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

QQ登錄

只需一步,快速開始

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

基于AT89S52單片機(jī)數(shù)字鐘的仿真設(shè)計(jì)(匯編語(yǔ)言程序)

  [復(fù)制鏈接]
ID:273403 發(fā)表于 2018-1-11 15:44 | 顯示全部樓層 |閱讀模式
基于AT89S52單片機(jī)數(shù)字鐘的設(shè)計(jì)
新人不好的話原諒啊
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.jpg
0.jpg
單片機(jī)匯編語(yǔ)言源程序如下:
  1. ORG 0000H
  2. LJMP MAIN
  3. ORG 000BH
  4. LJMP DINGSHI
  5. ORG 001BH
  6. LJMP TIAOSHI
  7. STYLE BIT  P3.0                       ;模式健
  8. PLUS  BIT  P3.1          ;加鍵
  9. MINUS BIT  P3.2                       ;減鍵
  10. SHI   EQU  30H                       ;時(shí)針
  11. FEN   EQU  31H          ;分針
  12. MIAO  EQU  32H                       ;鈔針
  13. MAIN:
  14.   MOV   SHI  , #00H
  15.   MOV   FEN        , #00H
  16.   MOV   MIAO , #00H
  17.   MOV   33H,#00H                    ;時(shí)鐘掃描
  18.   MOV   34H,#00H                    ;分鐘掃描
  19.   MOV   35H,#00H                    ;秒鐘掃描
  20.   MOV   36H,#00H                    ;時(shí)鐘掃描計(jì)數(shù)
  21.   MOV   37H,#00H                    ;時(shí)鐘掃描閃爍
  22.   MOV   38H,#00H                    ;分鐘掃描計(jì)數(shù)
  23.   MOV   39H,#00H                    ;分鐘掃描閃爍
  24.   MOV   3AH,#00H                    ;秒鐘掃描計(jì)數(shù)
  25.   MOV   3BH,#00H                    ;秒鐘掃描閃爍
  26.   MOV   3CH,#00H                    ;定時(shí)
  27.   MOV   3DH,  #00H                  ;模式
  28.   MOV   40H,  #00H        ;消抖
  29.   MOV   SP,   #50H        ;堆棧指針
  30.   MOV   DPTR, #TABLE                ;查找表首地址
  31.   MOV   TH0,  #(65535-20000)/256         ;定時(shí)器初值
  32.   MOV   TL0,  #(65535-20000) MOD 256
  33.   MOV   TH1,  #(65535-20000)/256
  34.   MOV   TL1,  #(65535-20000) MOD 256
  35.   MOV   TMOD, #11H                  ;定時(shí)器工作方式設(shè)置,T0,T0設(shè)置為方式一
  36.   SETB  PT0                                  ;設(shè)置T0為高優(yōu)先級(jí)
  37.   SETB  ET0                                  ;開定時(shí)器中斷
  38.   SETB  ET1
  39.   SETB  TR0                                  ;啟動(dòng)定時(shí)器
  40.   SETB  TR1
  41.   SETB  EA                                  ;開總中斷
  42. DISPLAY:
  43.   MOV   A,  33H                          
  44.   CJNE  A,#00,X1                         ;判斷時(shí)針是否掃描
  45.   MOV   P2, #7FH                         ;選通數(shù)碼管時(shí)鐘的十位
  46.   MOV   A,  SHI
  47.   MOV   B,  #10
  48.   DIV   AB                                  ;把時(shí)針的十位個(gè)位分離
  49.   MOVC   A, @A+DPTR                  ;把時(shí)針的十位放在累加器A中
  50.   MOV   P1,A                                  ;顯示時(shí)針的十位
  51.   LCALL         DELAY                          ;延時(shí)
  52.   MOV  P2,#0BFH                          ;選通時(shí)針的個(gè)位
  53.   MOV   A,  B
  54.   MOVC  A,@A+DPTR
  55.   MOV  P1,A
  56.   LCALL  DELAY
  57.   MOV  A,  37H
  58.   CJNE A,#01,X3                                    ;判斷是否閃爍
  59. X1:
  60.   INC 36H
  61.   MOV  A,   36H
  62.   CJNE A,#10,X2
  63.   MOV  33H, #00
  64. X2:
  65.   CJNE A,#20,X3
  66.   MOV  36H, #00
  67.   MOV  33H, #01
  68. X3:                                    
  69.   MOV  P2, #0DFH                               ;顯示分隔符
  70.   MOV  A,  #40H
  71.   MOV  P1, A
  72.   LCALL DELAY
  73.   MOV  A,  34H                                ;分針的顯示
  74.   CJNE A,#00,F1
  75.   MOV  P2, #0EFH
  76.   MOV A,  FEN
  77.   MOV B,  #10
  78.   DIV AB
  79.   MOVC  A,  @A+DPTR
  80.   MOV  P1, A
  81.   LCALL DELAY
  82.   MOV  P2,  #0F7H
  83.   MOV  A,  B
  84.   MOVC A,  @A+DPTR
  85.   MOV  P1, A
  86.   LCALL DELAY
  87.   MOV  A,  39H
  88.   CJNE A,#01H ,F3
  89. F1:
  90.   INC 36H
  91.   MOV  A, 36H
  92.   CJNE A,#10, F2
  93.   MOV  34H,  #00H
  94. F2:
  95.   CJNE A,#20H,F3
  96.   MOV  36H, #00H
  97.   MOV  34H, #01H
  98. F3:
  99.   MOV  P2,  #0FBH                               ;顯示分隔符
  100.   MOV  A,   #40H
  101.   MOV  P1,  A
  102.   LCALL  DELAY
  103.   MOV  A,35H
  104.   CJNE A,#00H ,M1
  105.   MOV  P2, #0FDH                                ;秒針的顯示
  106.   MOV  A,  MIAO
  107.   MOV  B,  #10
  108.   DIV  AB
  109.   MOVC A,  @A+DPTR
  110.   MOV  P1, A
  111.   LCALL DELAY
  112.   MOV  P2, #0FEH
  113.   MOV  A,  B
  114.   MOVC A,  @A+DPTR
  115.   MOV  P1, A
  116.   LCALL DELAY
  117.   MOV  A,  3BH
  118.   CJNE A,#01,M3
  119. M1:
  120.   INC  3AH
  121.   MOV  A,  3AH
  122.   CJNE A,#10,M2
  123.   MOV  35H, #00H
  124. M2:
  125.   CJNE A,#20H,M3
  126.   MOV  3AH,  #00H
  127.   MOV  35H,  #01H
  128. M3:
  129.    LJMP  DISPLAY

  130. DINGSHI:
  131.    PUSH  ACC
  132.    PUSH  PSW
  133.    MOV   TH0, #(65535-20000)/256                   ;定時(shí)器賦初值
  134.    MOV   TL0, #(65535-20000) MOD 256
  135.    INC   3CH
  136.    MOV   A, 3CH
  137.    CJNE  A,#50,J1                        ;判斷是否為一秒,若為一秒順序執(zhí)行,否發(fā)生跳轉(zhuǎn)
  138.    MOV   3CH, #00H                                   ;定時(shí)次數(shù)清零
  139.    INC   MIAO                                 ;秒針加一
  140.    MOV   A,  MIAO
  141.    CJNE  A,#60, J1                                    ;判斷是否為一分
  142.    MOV   MIAO, #00                                     ;秒針清零
  143.    INC   FEN                                            ;分針加一
  144.    MOV   A,   FEN
  145.    CJNE  A,#60,J1                                     ;判斷是否為一時(shí)
  146.    MOV   FEN, #00H                                     ;分針清零
  147.    INC   SHI                                             ;時(shí)針加一
  148.    MOV   A,   SHI
  149.    CJNE  A,#24,J1                                     ;判斷是否溢出
  150.    MOV   SHI, #00H                                     ;時(shí)針清零
  151. J1:
  152.    CLR  ET0
  153.    POP  ACC
  154.    POP  PSW
  155.    SETB ET0
  156.    RETI
  157. TIAOSHI:
  158.    PUSH ACC
  159.    PUSH PSW
  160.    MOV  TH1,  #(65535-20000)/256                       ;定時(shí)器賦初值
  161.    MOV  TL1,  #(65535-20000) MOD 256
  162.    JB  STYLE,  G1                                       ;判斷模式鍵是否按下
  163.    INC 40H                                         ;清抖
  164.    MOV A, 40H                                 
  165.    CJNE A,#10,G1
  166.    JB STYLE ,G1                                       ;模式鍵真的被按下
  167.    MOV 40H,#00
  168.    INC 3DH                                                ;模式鍵加一
  169.    MOV A,  3DH
  170.    CJNE A,#01,A1                                        ;判斷是否為模式一
  171.    MOV  33H,#01                                         ;時(shí)針掃描判斷
  172.    MOV  37H,#01                                         ;時(shí)針掃描閃爍判斷
  173. A1:CJNE A,#02,A2                                         ;模式是否為二
  174.    MOV  33H,#00
  175.    MOV  37H,#00
  176.    MOV  34H,#01
  177.    MOV  39H,#01
  178. A2:CJNE A,#03,A3                                    ;模式是否為三
  179.    MOV  34H,#00
  180.    MOV  39H,#00
  181.    MOV  35H,#01
  182.    MOV  3BH,#01
  183. A3:CJNE A,#04,G1                               ;模式是否為四,為四正常走時(shí)
  184.    MOV  3DH,#00
  185.    MOV  35H,#00
  186.    MOV  3BH,#00
  187. G1:JB   PLUS,B1                                ;判斷加鍵是否按下
  188.    INC 40H                                        ;消抖
  189.    MOV A, 40H
  190.    CJNE A,#11,B1
  191.    JB PLUS ,B1
  192.    MOV 40H,#00
  193.    MOV  A,3DH
  194.    CJNE A,#01,C1                        ;若為模式一,時(shí)針加一
  195.    INC SHI
  196.    MOV A, SHI
  197.    CJNE A,#24,B1
  198.    MOV  SHI,#00
  199. C1: CJNE  A,#02,C2                        ;若為模式二,分針加一
  200.   INC  FEN
  201.   MOV  A,FEN
  202.   CJNE A,#60, B1
  203.   MOV  FEN,  #00
  204. C2:CJNE  A,#03,B1                        ;若為模式三,秒針加一
  205.   INC  MIAO
  206.   MOV  A, MIAO
  207.   CJNE A,#60,B1
  208.   MOV  MIAO,#00
  209. B1:JB  MINUS,E1                           ;判斷減鍵是否按下
  210.   INC 40H                                   ;清抖
  211.   MOV A, 40H
  212.   CJNE A,#12,E1
  213.   JB MINUS ,E1
  214.   MOV 40H,#00
  215.   MOV A,  3DH
  216.   CJNE A,#01,Q1                                ;若為模式一,時(shí)針減一
  217.   MOV A,  SHI
  218.   CJNE A,#00,Q2                                ;判斷時(shí)針是否為0
  219.   MOV  SHI, #23
  220.   LJMP E1
  221. Q2:DEC SHI                                        ;時(shí)針減一
  222.   LJMP E1
  223. ……………………

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

所有資料51hei提供下載:
基于AT89S52單片機(jī)數(shù)字鐘的設(shè)計(jì).zip (90.66 KB, 下載次數(shù): 93)


評(píng)分

參與人數(shù) 2黑幣 +54 收起 理由
qjzyx + 4 贊一個(gè)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:266116 發(fā)表于 2018-1-12 21:58 | 顯示全部樓層
看了一下,電路精簡(jiǎn),改天下個(gè)玩玩!
回復(fù)

使用道具 舉報(bào)

ID:290363 發(fā)表于 2018-3-11 13:01 | 顯示全部樓層
謝謝樓主!很實(shí)用。。
回復(fù)

使用道具 舉報(bào)

ID:291837 發(fā)表于 2018-3-15 08:54 | 顯示全部樓層
正需要這個(gè),謝謝分享!
回復(fù)

使用道具 舉報(bào)

ID:347467 發(fā)表于 2019-11-13 13:21 | 顯示全部樓層

謝謝樓主!很實(shí)用。!
回復(fù)

使用道具 舉報(bào)

ID:851189 發(fā)表于 2020-11-30 14:45 來(lái)自手機(jī) | 顯示全部樓層
最上面的藍(lán)屏的led名稱是什么啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表