?? main.lst
字號:
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:49:28 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN MAIN.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE MAIN.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;*****************************************************
2 ;
3 ; This programme is for study Ver1.0.0 beta
4 ; The main control programe
5 ;This programme must be run in 12MHz standard settings
6 ; Designer: cqmcu.com
7 ; Copyright 2007 koiistudio
8 ;
9 ;*****************************************************
10
11 ;*****************************************************
12 ;參數定義
13 ;*****************************************************
14
0095 15 beep bit p1.5 ;蜂鳴器引腳
0008 16 digital_bit equ 08h ;顯示位
0009 17 keys_byte equ 09h ;按鍵字節
000A 18 digital_flash_time equ 0ah ;閃爍計時
000B 19 digital_flash_bit equ 0bh ;閃爍位
000C 20 aleart_data equ 0ch ;時間報警字節(連續兩字節)
000E 21 aleart_byte equ 0eh ;報警設置字節
0010 22 digital_byte equ 10h ;顯存首址,連續8字節為顯存
0020 23 date_data equ 20h ;時鐘數據首地址
24
25 ;*****************************************************
26 ;主程序
27 ;*****************************************************
28
0000 29 org 0000h
0000 802E 30 jmp start
31
000B 32 org 000bh
000B A142 33 jmp time_int
34
0013 35 org 0013h
0013 41E5 36 jmp keys_int
37
0030 38 org 0030h
0030 758000 39 start: mov p0,#0
0033 75900F 40 mov p1,#0fh
0036 75A000 41 mov p2,#0
0039 75B0FF 42 mov p3,#0ffh
43
003C 758160 44 mov sp,#60h ;堆棧地址
003F 787F 45 mov r0,#7fh ;Clear the ram
0041 E4 46 clr a
0042 F6 47 main_clear0: mov @r0,a
0043 D8FD 48 djnz r0,main_clear0
49
0045 750801 50 mov digital_bit,#1
51
0048 780C 52 mov r0,#aleart_data ;默認的報警時間
004A 7600 53 mov @r0,#00h ;分
004C 08 54 inc r0
004D 7607 55 mov @r0,#07h ;時
56
004F 31CD 57 call timer_set
0051 512B 58 call iicread
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:49:28 PAGE 2
0053 D2A8 59 setb ex0
0055 D2AA 60 setb ex1
0057 D2AF 61 setb ea
0059 1183 62 call beep1
005B 310E 63 main_wait: call digital
005D E509 64 mov a,keys_byte
005F B40002 65 cjne a,#0,keysmanagement
0062 80F7 66 jmp main_wait
67
0064 7117 68 keysmanagement: call keys_management
0066 750900 69 mov keys_byte,#0
0069 80F0 70 jmp main_wait
71
72 ;*****************************************************
73 ;子程序文件載入
74 ;*****************************************************
75
76 ;*****************************************************
77 ;時間報警校驗程序
78 ;*****************************************************
79
006B 7420 80 aleart_check: mov a,#date_data
006D 2403 81 add a,#3
006F F8 82 mov r0,a
0070 790C 83 mov r1,#aleart_data
0072 E6 84 mov a,@r0
0073 FB 85 mov r3,a
0074 E7 86 mov a,@r1
0075 B5030A 87 cjne a,03h,aleart_check_ret
0078 08 88 inc r0
0079 09 89 inc r1
007A E6 90 mov a,@r0
007B FB 91 mov r3,a
007C E7 92 mov a,@r1
007D B50302 93 cjne a,03h,aleart_check_ret
0080 11BD 94 call beep3
0082 22 95 aleart_check_ret: ret
96
97 ;*****************************************************
98 ;短鳴一聲
99 ;*****************************************************
100
0083 751F04 101 beep1: mov 1fh,#04h
0086 D295 102 setb beep
0088 12010E 103 beep1_1: lcall digital
008B 12010E 104 lcall digital
008E 12010E 105 lcall digital
0091 12010E 106 lcall digital
0094 12010E 107 lcall digital
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -