⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clock.lst

📁 用89S52进行DS1820温度读取程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
                                                                    页     1
                                                                    07-08-06
                                                                    16:20:10
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

            ;相关知识内容请参阅S51E 文档内容--电子时钟实验。       
            ;这是一个使用单片机实现电子时钟功能的程序,无需扩展.
            ;六个数码管分别显示时,分,秒
            ;使用SW1-SW6键盘分别设定时,分,秒,按键时伴有提示音!
            
                     BUFF_KEY     EQU 21H      ;键盘键
                     BUFF_LED1    EQU 22H      ;数码管显示缓存
                     BUFF_LED2    EQU 23H
                     BUFF_LED3    EQU 24H
                     BUFF_LED4    EQU 25H
                     BUFF_LED5    EQU 26H
                     BUFF_LED6    EQU 27H
                     BUFF_LED_LP  EQU 28H      ;T0键盘显示扫描缓存
                     HOR    EQU   30H           ;小时值缓存
                     MIN    EQU   31H           ;分钟值缓存
                     SEC    EQU   32H           ;秒值缓存
                     F_BEEP     BIT   01H
                     LED_PORT   EQU   P0
                     DIG_PORT   EQU   P2
                     KEY_PORT   EQU   P2
                     SW1        BIT   P2.7
                     SW2        BIT   P2.6
                     SW3        BIT   P2.5
                     SW4        BIT   P2.4
                     SW5        BIT   P2.3
                     SW6        BIT   P2.2
                     BEEP       BIT   P2.0
                     KEY        BIT   P3.3
                    org   000h
0000 020100         JMP   main
                    ORG   00BH
000B 02022D         JMP   T0_INT          
                    ORG   100H
0100 758140 MAIN:   MOV    SP ,#40H
0103 75D000         MOV    PSW,#00H      
0106 787F           MOV    R0,#7FH      ;初始化RAM区, 
0108 7400   CLR_RAM:MOV    A,#00H
010A F6             MOV    @R0,A
010B D8FB           DJNZ   R0,CLR_RAM
010D 85FF90         MOV    P1,0FFH      ;INIT 
0110 85FFA0         MOV    P2,0FFH
0113 85FF80         MOV    P0,0FFH
0116 85FFB0         MOV    P3,0FFH
0119 758921         MOV    TMOD,#21h
011C 758CF0         MOV    TH0,#240     ;T0=4MS
011F 758A60         MOV    TL0,#96
0122 D28C           SETB   TR0
0124 D2A9           SETB   ET0


E:\单片机\SMT-MCU\S51E文档资料\ASM程序\CLOCK.ASM                
 
                                                                    页     2
                                                                    07-08-06
                                                                    16:20:10
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0126 D2AF           SETB   EA 
                   
0128 20B3FD WAIT_KEY:JB    KEY,$       ;等候按键!
012B 30A717          JNB   SW1,SW1_OK
012E 30A638          JNB   SW2,SW2_OK
0131 30A557          JNB   SW3,SW3_OK
0134 30A478          JNB   SW4,SW4_OK
0137 30A305          JNB   SW5,SW5_OKA
013A 30A205          JNB   SW6,SW6_OKA
013D 80E9            JMP   WAIT_KEY
013F 0201D3 SW5_OKA: JMP   SW5_OK         
0142 0201F7 SW6_OKA: JMP   SW6_OK
0145 E530   SW1_OK:  MOV    A,HOR
0147 B41810          CJNE   A,#24,SW1_OVER
014A 753000          MOV    HOR,#00H
014D D201            SETB   F_BEEP
014F C2A0            CLR    BEEP
0151 12021B          LCALL  DEL
0154 D2A0            SETB   BEEP
0156 C201            CLR    F_BEEP
0158 80CE            JMP   WAIT_KEY
015A 0530   SW1_OVER:INC    HOR        ;时加1
015C D201            SETB   F_BEEP 
015E C2A0            CLR    BEEP
0160 12021B          LCALL  DEL
0163 D2A0            SETB   BEEP
0165 C201            CLR    F_BEEP
0167 80BF            JMP   WAIT_KEY
            
0169 E530   SW2_OK:  MOV    A,HOR
016B B40010          CJNE   A,#00,SW2_OVER
016E 753017          MOV    HOR,#23
0171 D201            SETB   F_BEEP
0173 C2A0            CLR    BEEP
0175 12021B          LCALL  DEL
0178 D2A0            SETB   BEEP
017A C201            CLR    F_BEEP
017C 80AA            JMP    WAIT_KEY
017E 1530   SW2_OVER:DEC    HOR        ;时减1
0180 D201            SETB   F_BEEP
0182 C2A0            CLR    BEEP
0184 12021B          LCALL  DEL
0187 D2A0            SETB   BEEP
0189 809D            JMP    WAIT_KEY
            
018B E531   SW3_OK:  MOV    A,MIN
018D B43B10          CJNE   A,#59,SW3_OVER
0190 753100          MOV    MIN,#00H


E:\单片机\SMT-MCU\S51E文档资料\ASM程序\CLOCK.ASM                
 
                                                                    页     3
                                                                    07-08-06
                                                                    16:20:10
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0193 D201            SETB   F_BEEP
0195 C2A0            CLR    BEEP
0197 12021B          LCALL  DEL
019A D2A0            SETB   BEEP
019C C201            CLR    F_BEEP
019E 8088            JMP    WAIT_KEY
01A0 0531   SW3_OVER:INC    MIN        ;分加1
01A2 D201            SETB   F_BEEP
01A4 C2A0            CLR    BEEP
01A6 12021B          LCALL  DEL
01A9 D2A0            SETB   BEEP
01AB C201            CLR    F_BEEP
01AD 2128            JMP    WAIT_KEY
            
01AF E531   SW4_OK:  MOV    A,MIN
01B1 B40010          CJNE   A,#00,SW4_OVER
01B4 75313B          MOV    MIN,#59
01B7 D201            SETB   F_BEEP
01B9 C2A0            CLR    BEEP
01BB 12021B          LCALL  DEL
01BE D2A0            SETB   BEEP
01C0 C201            CLR    F_BEEP
01C2 2128            JMP    WAIT_KEY
01C4 1531   SW4_OVER:DEC    MIN        ;分减1
01C6 D201            SETB   F_BEEP
01C8 C2A0            CLR    BEEP
01CA 12021B          LCALL  DEL
01CD D2A0            SETB   BEEP
01CF C201            CLR    F_BEEP
01D1 2128            JMP    WAIT_KEY
            
01D3 E532   SW5_OK:  MOV    A,SEC
01D5 B43B10          CJNE   A,#59,SW5_OVER
01D8 753200          MOV    SEC,#00H
01DB D201            SETB   F_BEEP
01DD C2A0            CLR    BEEP
01DF 12021B          LCALL  DEL
01E2 D2A0            SETB   BEEP
01E4 C201            CLR    F_BEEP
01E6 2128            JMP    WAIT_KEY
01E8 0532   SW5_OVER:INC    SEC        ;秒加1
01EA D201            SETB   F_BEEP
01EC C2A0            CLR    BEEP
01EE 12021B          LCALL  DEL
01F1 D2A0            SETB   BEEP
01F3 C201            CLR    F_BEEP
01F5 2128            JMP    WAIT_KEY
            


E:\单片机\SMT-MCU\S51E文档资料\ASM程序\CLOCK.ASM                
 
                                                                    页     4
                                                                    07-08-06
                                                                    16:20:10
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

01F7 E532   SW6_OK:  MOV    A,SEC
01F9 B40010          CJNE   A,#00,SW6_OVER
01FC 75303B          MOV    HOR,#59
01FF D201            SETB   F_BEEP
0201 C2A0            CLR    BEEP
0203 12021B          LCALL  DEL
0206 D2A0            SETB   BEEP
0208 C201            CLR    F_BEEP
020A 2128            JMP   WAIT_KEY
020C 1532   SW6_OVER:DEC    SEC        ;时减1
020E D201            SETB   F_BEEP
0210 C2A0            CLR    BEEP
0212 12021B          LCALL  DEL
0215 D2A0            SETB   BEEP
0217 C201            CLR    F_BEEP
0219 2128            JMP   WAIT_KEY
            
            
021B 7D02   DEL:     MOV   R5,#02      ;为演示方便,人为插入的延时
021D 7EC8   DEL01:   MOV   R6,#200
021F 7FC8   DEL02:   MOV   R7,#200
0221 DFFE            DJNZ  R7,$
0223 DEFA            DJNZ  R6,DEL02
0225 DDF6            DJNZ  R5,DEL01
0227 22              RET
            
0228 75F00A BIN_BCD:  MOV  B,#10
022B 84               DIV  AB
022C 22               RET
                  
            ;-------------  T0 INTRRUPT 数码管扫描定时中断---------------------------
022D C0E0   T0_INT:  PUSH   ACC
022F C0D0            PUSH   PSW
0231 758CF0          MOV   TH0,#240               ;T0=4MS
0234 758A60          MOV   TL0,#96
0237 0528            INC    BUFF_LED_LP
0239 E528            MOV    A,BUFF_LED_LP
023B B4FA2C          CJNE   A,#250,CONT_SCAN     ;250*4MS=1S
023E 752800          MOV    BUFF_LED_LP,#00H
0241 0532            INC    SEC
0243 E532            MOV    A,SEC
0245 B43C22          CJNE   A,#60,CONT_SCAN
0248 753200          MOV    SEC,#00H
024B 0531            INC    MIN
024D E531            MOV    A,MIN
024F B43C18          CJNE   A,#60,CONT_SCAN
0252 753100          MOV    MIN,#00H
0255 0530            INC    HOR


E:\单片机\SMT-MCU\S51E文档资料\ASM程序\CLOCK.ASM                
 
                                                                    页     5
                                                                    07-08-06
                                                                    16:20:10
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0257 E530            MOV    A,HOR
0259 B4180E          CJNE   A,#24,CONT_SCAN
025C 753000          MOV    HOR,#00H
025F C2A0            clr    beep
0261 C290            clr    p1.0
0263 12021B          lcall  del
0266 D2A0            setb   beep
0268 D290            setb   p1.0
026A E532   CONT_SCAN:MOV   A,SEC
026C 120228           LCALL  BIN_BCD
026F 85F027           MOV   BUFF_LED6,B
0272 F526             MOV   BUFF_LED5,A
0274 E531             MOV   A,MIN
0276 120228           LCALL  BIN_BCD
0279 85F025           MOV   BUFF_LED4,B
027C F524             MOV   BUFF_LED3,A
027E E530             MOV   A,HOR
0280 120228           LCALL  BIN_BCD
0283 85F023           MOV   BUFF_LED2,B
0286 F522             MOV   BUFF_LED1,A
0288 E528             MOV   A,BUFF_LED_LP
028A 75F006           MOV   B,#06
028D 84               DIV   AB

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -