📄 cdisplay.lst
字号:
C51 COMPILER V7.06 CDISPLAY 06/04/2008 10:36:57 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CDISPLAY
OBJECT MODULE PLACED IN cdisplay.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE cdisplay.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"c8051F320.h"
2 #define uchar unsigned char
3 #define sysclk 24000000
4 #define T2_VAL -(sysclk/12/1000)*1
5 #define T3_VAL -(sysclk/12/1000)*20
6
7 sbit LED_SEL = P1^7;
8 sbit RING = P3^0;
9
10 uchar code seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
11 uchar code dig[]={0x02,0x04,0x08,0x10,0x20,0x01};
12
13 uchar data dd,tmr3_done;
14 uchar data second_count = 50,ring_tmr,second,minute,hour;
15 uchar data disbuf[6];
16 uchar bdata disled = 0x80;
17 sbit LED_RED = disled^6;
18 sbit LED_green = disled^7;
19 bit tmr2_done;
20
21
22 void PORT2_Init(void);
23 void Timer2_Init(void);
24 void Timer3_Init(void);
25 void disp_scan(void);
26 void check_time (void);
27
28 uchar da_adjust(uchar da);
29
30 void PORT2_Init(void)
31 {
32 1 XBR1 = 0xc0;
33 1 P3MDOUT |= 0x01;
34 1 P1MDOUT |= 0x80;
35 1 P2MDOUT |= 0xff;
36 1 RING = 0;
37 1 }
38
39 void Timer2_Init()
40 {
41 1 TMR2L = T2_VAL;
42 1 TMR2H = T2_VAL>>8;//定时器2高字节
43 1 TMR2RLL = T2_VAL;//定时器2重载寄存器低字节
44 1 TMR2RLH = T2_VAL>>8;
45 1 TR2=1;
*** ERROR C202 IN LINE 45 OF CDISPLAY.C: 'TR2': undefined identifier
46 1 }
47
48 void Timer3_Init()
49 {
50 1 TMR3L=T3_VAL;
51 1 TMR3H=T3_VAL>>8;
52 1 TMR3RLL=T3_VAL;
53 1 TMR3RLH=T3_VAL>>8;
54 1 TMR3CN=0x04;//TR3=1
C51 COMPILER V7.06 CDISPLAY 06/04/2008 10:36:57 PAGE 2
55 1 }
56
57 void disp_scan (void)
58 {
59 1 TF2H = 0;
60 1
61 1 P2 = 0;
62 1 LED_SEL = ~LED_SEL;
63 1 P2 = 0xc0;
64 1 LED_SEL = ~LED_SEL;
65 1
66 1 P2=seg[disbuf[dd]];
67 1 LED_SEL = ~LED_SEL;
68 1
69 1 P2 = disled;
70 1 P2 |= dig[dd];
71 1 LED_SEL = ~LED_SEL;
72 1
73 1 if(dd==5) dd=0;
74 1 else dd++;
75 1 tmr2_done =1;
76 1 }
77
78 void check_time(void)
79 {
80 1 TMR3CN &= 0x7f;
81 1 if(second_count != 0) second_count--;
82 1 else
83 1 {
84 2 second_count = 50;
85 2 RING = 1;
86 2 LED_RED = ~LED_RED;
87 2 LED_green = ~LED_green;
88 2 if(second<0x59)
89 2 {
90 3 second++;
91 3 second = da_adjust(second);
92 3 ring_tmr = 5;
93 3 }
94 2 else
95 2 {
96 3 second=0;
97 3 if(minute<0x59)
98 3 {
99 4 minute++;
100 4 minute=da_adjust(minute);
101 4 ring_tmr = 25;
102 4 }
103 3 else
104 3 {
105 4 minute=0;
106 4 ring_tmr=50;
107 4 if(hour<0x24)
108 4 {
109 5 hour++;
110 5 hour=da_adjust(hour);
111 5 }
112 4 else hour=0;
113 4 }
114 3 }
115 2 disbuf[5] = (hour&0xf0)>>4;
116 2 disbuf[4] = hour&0x0f;
C51 COMPILER V7.06 CDISPLAY 06/04/2008 10:36:57 PAGE 3
117 2 disbuf[3] = (minute&0xf0)>>4;
118 2 disbuf[2] = minute&0x0f;
119 2 disbuf[1] = (second&0xf0)>>4;
120 2 disbuf[0] = second&0x0f;
121 2 }
122 1 if(ring_tmr != 0)
123 1 {
124 2 ring_tmr--;
125 2 if(ring_tmr == 0) RING = 0;
126 2 }
127 1 tmr3_done=0;
128 1 }
129
130 uchar da_adjust(uchar da)
131 {
132 1 if((da&0x0f)>9) da += 0x06;
133 1 return (da);
134 1 }
C51 COMPILATION COMPLETE. 0 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -