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

📄 clock.lst

📁 十五个关于AT89S51的源代码
💻 LST
字号:
A51 MACRO ASSEMBLER  CLOCK                                                                08/27/2007 21:37:42 PAGE     1


MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN clock.OBJ
ASSEMBLER INVOKED BY: E:\Program files\Keil\C51\BIN\A51.EXE clock.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                       2     ;
                       3     ;实例七:时钟  clock  
                       4     ;
                       5     ;现象:当系统上电复位时,时钟开始走时
                       6     ;
                       7     ;作者:杨欣,刘长焕,张延强  电路飞翔网    eedesign@163.com
                       8     ;
                       9     ;                               http://www.circuitfly.com
                      10     ;
                      11     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                      12     
                      13     
0000                  14                     ORG             00H                             ; 起始地址00H
0000 800B             15                     JMP             MAIN                            ; 跳转到MAIN
000B                  16                     ORG             0BH                             ; Timer 0中断向量地址
000B 801D             17                     JMP             TIM0                            ; 跳转到TIM0
                      18     
                      19                     ; 这里是主程序段,使能中断、装载计数初始值等
000D                  20     MAIN:
000D 75A882           21                     MOV             IE, #82H                        ; 使能Timer 0中断
0010 758901           22                     MOV             TMOD, #01H                      ; 使用Timer 0工作在模式1下
0013 758CF0           23                     MOV             TH0, #0F0H                      ; 装载计数初始值,每4ms中断
                             一次
0016 758A60           24                     MOV             TL0, #60H                       ; 
0019 7800             25                     MOV             R0, #00H                        ; Timer 0的中断计数器
001B 753000           26                     MOV             30H, #00H                       ; 秒的计数器
001E 753100           27                     MOV             31H, #00H                       ; 分的计数器
0021 753200           28                     MOV             32H, #00H                       ; 时的计数器
0024 7900             29                     MOV             R1, #00H                        ; 6位七段数码管扫描计数器
0026 D28C             30                     SETB            TR0                             ; 启动Timer 0中断
                      31                     
0028 80FE             32                     JMP             $
                      33             
                      34                     ; 这里是Timer 0中断服务子程序,用于秒、分、时计时及扫描显示
002A                  35     TIM0:           
002A C0E0             36                     PUSH            ACC                             ; ACC压栈
002C B8FA36           37                     CJNE            R0, #250, SCAN                  ; 如果R0≠250,即不到1秒,

⌨️ 快捷键说明

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