📄 lcd12887_1.lst
字号:
10 unsigned char Set; //调整值
11
12
13 /*--------------------------------------------------------------*/
14 //延时200ms 函数定义
15 void delay200ms(void)
16 {
17 1 unsigned char i,j,k;
18 1 for(i=201;i>0;i--)
19 1 for(j=32;j>0;j--)
20 1 for(k=14;k>0;k--);
21 1 }
22
23
24 /*--------------------------------------------------------------*/
25 //延时5000+0us 函数定义
26 void delay5ms(void)
27 {
C51 COMPILER V7.06 LCD12887_1 10/26/2008 21:45:08 PAGE 10
28 1 unsigned char i,j;
29 1 for(i=185;i>0;i--)
30 1 for(j=12;j>0;j--);
31 1 }
32
33
34 /*--------------------------------------------------------------*/
35 //键盘扫描
36 void Keysan(void) //P0_0切换键,P0_1数值加,P0_1数值减
37 {
38 1 if(P0_0 == 0)
39 1 {
40 2 delay5ms();
41 2 if(P0_0 == 0) k++;
42 2 if(k == 7) k = 0;
43 2 }
44 1 if(P0_1 == 0) {delay5ms(); if(P0_1 == 0) Set++;}
45 1 if(P0_2 == 0) {delay5ms(); if(P0_2 == 0) Set--;}
46 1 switch(k)
47 1 {
48 2 case 0: DS12887_SetTime(DS12887_Second, Set); if(Set > 59 || Set < 0) Set = 0; break;
49 2 case 1: DS12887_SetTime(DS12887_Minute, Set); if(Set > 59 || Set < 0) Set = 0; break;
50 2 case 2: DS12887_SetTime(DS12887_Hour , Set); if(Set > 24 || Set < 0) Set = 0; break;
51 2 case 3: DS12887_SetTime(DS12887_Day , Set); if(Set > 31 || Set < 0) Set = 0; break;
52 2 case 4: DS12887_SetTime(DS12887_Month , Set); if(Set > 12 || Set < 0) Set = 0; break;
53 2 case 5: DS12887_SetTime(DS12887_Year , Set);break;
54 2 default: break;
55 2 }
56 1 }
57
58 /*--------------------------------------------------------------*/
59 //主函数
60 void main(void)
61 {
62 1
63 1 SYSTEMTIME CurrentTime;
64 1 lcd_init();
65 1 DS12887_Init();
66 1
67 1 lcd_pos(0,0);
68 1 prints("Date:");
69 1 lcd_pos(0,1);
70 1 prints("Time:");
71 1 k = 6; //不改变时间
72 1 while(1)
73 1 {
74 2 DS12887_GetTime(&CurrentTime);
75 2 DateToStr(&CurrentTime);
76 2 TimeToStr(&CurrentTime);
77 2 lcd_pos(6,0);
78 2 prints(CurrentTime.DateString);
79 2 lcd_pos(6,1);
80 2 prints(CurrentTime.TimeString);
81 2 delay200ms();
82 2 Keysan();
83 2 }
84 1 }
85
C51 COMPILER V7.06 LCD12887_1 10/26/2008 21:45:08 PAGE 11
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION lcd_busy (BEGIN)
; SOURCE LINE # 36
; SOURCE LINE # 37
0000 ?C0003:
; SOURCE LINE # 38
; SOURCE LINE # 39
0000 C2B6 CLR ep
; SOURCE LINE # 40
0002 C2B4 CLR rs
; SOURCE LINE # 41
0004 D2B5 SETB rw
; SOURCE LINE # 42
0006 75A0FF MOV io,#0FFH
; SOURCE LINE # 43
0009 D2B6 SETB ep
; SOURCE LINE # 44
000B 00 NOP
; SOURCE LINE # 45
000C 20A7F1 JB bz,?C0003
; SOURCE LINE # 46
000F C2B6 CLR ep
; SOURCE LINE # 47
0011 22 RET
; FUNCTION lcd_busy (END)
; FUNCTION _lcd_wcmd (BEGIN)
; SOURCE LINE # 52
;---- Variable 'cmd' assigned to Register 'R7' ----
; SOURCE LINE # 53
; SOURCE LINE # 54
0000 120000 R LCALL lcd_busy
; SOURCE LINE # 55
0003 C2B4 CLR rs
; SOURCE LINE # 56
0005 C2B5 CLR rw
; SOURCE LINE # 57
0007 D2B6 SETB ep
; SOURCE LINE # 58
0009 8FA0 MOV io,R7
; SOURCE LINE # 59
000B C2B6 CLR ep
; SOURCE LINE # 60
000D 22 RET
; FUNCTION _lcd_wcmd (END)
; FUNCTION _lcd_wdat (BEGIN)
; SOURCE LINE # 65
;---- Variable 'Data' assigned to Register 'R7' ----
; SOURCE LINE # 66
; SOURCE LINE # 67
0000 120000 R LCALL lcd_busy
; SOURCE LINE # 68
0003 D2B4 SETB rs
; SOURCE LINE # 69
0005 C2B5 CLR rw
; SOURCE LINE # 70
0007 D2B6 SETB ep
; SOURCE LINE # 71
0009 8FA0 MOV io,R7
C51 COMPILER V7.06 LCD12887_1 10/26/2008 21:45:08 PAGE 12
; SOURCE LINE # 72
000B C2B6 CLR ep
; SOURCE LINE # 73
000D 22 RET
; FUNCTION _lcd_wdat (END)
; FUNCTION _lcd_pos (BEGIN)
; SOURCE LINE # 78
;---- Variable 'x' assigned to Register 'R6' ----
0000 AE07 MOV R6,AR7
; SOURCE LINE # 79
; SOURCE LINE # 80
0002 EE MOV A,R6
0003 300004 R JNB y,?C0007
0006 44C0 ORL A,#0C0H
0008 8002 SJMP ?C0067
000A ?C0007:
; SOURCE LINE # 81
000A 4480 ORL A,#080H
000C ?C0067:
000C FF MOV R7,A
000D 120000 R LCALL _lcd_wcmd
; SOURCE LINE # 82
0010 ?C0009:
0010 22 RET
; FUNCTION _lcd_pos (END)
; FUNCTION _prints (BEGIN)
; SOURCE LINE # 97
;---- Variable 'string' assigned to Register 'R1/R2/R3' ----
; SOURCE LINE # 98
0000 ?C0010:
; SOURCE LINE # 99
0000 120000 E LCALL ?C?CLDPTR
0003 FF MOV R7,A
0004 600C JZ ?C0012
0006 120000 R LCALL _lcd_wdat
0009 7401 MOV A,#01H
000B 29 ADD A,R1
000C F9 MOV R1,A
000D E4 CLR A
000E 3A ADDC A,R2
000F FA MOV R2,A
0010 80EE SJMP ?C0010
; SOURCE LINE # 100
0012 ?C0012:
0012 22 RET
; FUNCTION _prints (END)
; FUNCTION lcd_init (BEGIN)
; SOURCE LINE # 105
; SOURCE LINE # 106
; SOURCE LINE # 107
0000 7F38 MOV R7,#038H
0002 120000 R LCALL _lcd_wcmd
; SOURCE LINE # 108
0005 7F06 MOV R7,#06H
0007 120000 R LCALL _lcd_wcmd
; SOURCE LINE # 109
000A 7F0C MOV R7,#0CH
000C 120000 R LCALL _lcd_wcmd
; SOURCE LINE # 110
C51 COMPILER V7.06 LCD12887_1 10/26/2008 21:45:08 PAGE 13
000F 7F01 MOV R7,#01H
0011 020000 R LJMP _lcd_wcmd
; FUNCTION lcd_init (END)
; FUNCTION _DS12887_Write (BEGIN)
; SOURCE LINE # 62
;---- Variable 'Value' assigned to Register 'R5' ----
;---- Variable 'Address' assigned to Register 'R7' ----
; SOURCE LINE # 63
; SOURCE LINE # 64
0000 C2B0 CLR DS_AS
; SOURCE LINE # 65
0002 D2B2 SETB DS_DS
; SOURCE LINE # 66
0004 D2B1 SETB DS_RW
; SOURCE LINE # 67
0006 D2B0 SETB DS_AS
; SOURCE LINE # 68
0008 8F90 MOV DS_DAT,R7
; SOURCE LINE # 69
000A C2B0 CLR DS_AS
; SOURCE LINE # 70
000C C2B1 CLR DS_RW
; SOURCE LINE # 71
000E 8D90 MOV DS_DAT,R5
; SOURCE LINE # 72
0010 D2B1 SETB DS_RW
; SOURCE LINE # 73
0012 D2B0 SETB DS_AS
; SOURCE LINE # 74
0014 22 RET
; FUNCTION _DS12887_Write (END)
; FUNCTION _DS12887_Read (BEGIN)
; SOURCE LINE # 79
;---- Variable 'Address' assigned to Register 'R7' ----
; SOURCE LINE # 80
; SOURCE LINE # 82
0000 C2B0 CLR DS_AS
; SOURCE LINE # 83
0002 D2B2 SETB DS_DS
; SOURCE LINE # 84
0004 D2B1 SETB DS_RW
; SOURCE LINE # 85
0006 D2B0 SETB DS_AS
; SOURCE LINE # 86
0008 8F90 MOV DS_DAT,R7
; SOURCE LINE # 87
000A C2B0 CLR DS_AS
; SOURCE LINE # 88
000C C2B2 CLR DS_DS
; SOURCE LINE # 89
000E 7590FF MOV DS_DAT,#0FFH
; SOURCE LINE # 90
;---- Variable 'DS_RDAT' assigned to Register 'R7' ----
0011 AF90 MOV R7,DS_DAT
; SOURCE LINE # 91
0013 D2B2 SETB DS_DS
; SOURCE LINE # 92
0015 D2B0 SETB DS_AS
; SOURCE LINE # 93
; SOURCE LINE # 94
C51 COMPILER V7.06 LCD12887_1 10/26/2008 21:45:08 PAGE 14
0017 ?C0015:
0017 22 RET
; FUNCTION _DS12887_Read (END)
; FUNCTION DS12887_Init (BEGIN)
; SOURCE LINE # 99
; SOURCE LINE # 100
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -