📄 new2.lst
字号:
C51 COMPILER V8.05a NEW2 05/03/2009 10:33:51 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE NEW2
OBJECT MODULE PLACED IN new2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE new2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h> //包括一个52标准内核的头文件
2 #include<absacc.h>
3 #include<stdlib.h>
4 #include <intrins.h> /*used for _nop_() function*/
5
6 sbit SDATA_595 =P0^0 ;/*串行数据输入*/
7 sbit SCLK_595 = P0^1;/*移位时钟脉冲*/
8 sbit RCK_595 =P0^2 ; /*输出锁存器控制脉冲*/
9 sbit YELLOW=P2^0; //黄色
10 sbit ALARM=P2^1; //报警
11 sbit RED=P2^2; //红色
12
13 bit b_flash;
14
15 //#define TM_second XBYTE[0xFE00]
16 //#define TM_minute XBYTE[0xFE02]
17 //#define TM_hour XBYTE[0xFE04]
18 #define TM_week XBYTE[0xFE06]
19 #define TM_day XBYTE[0xFE07]
20 #define TM_month XBYTE[0xFE08]
21 #define TM_year XBYTE[0xFE09]
22 #define REG_A XBYTE[0xFE0A]
23 #define REG_B XBYTE[0xFE0B]
24 #define REG_C XBYTE[0xFE0C]
25 #define REG_D XBYTE[0xFE0D]
26 #define RAM_114 XBYTE[0xFE0e]
27
28 #define uchar unsigned char
29 #define uint unsigned int
30 #define ulong unsigned long
31 #define WriteDeviceAddress 0xa0 //定义器件在IIC总线中的写地址
32 #define ReadDviceAddress 0xa1 //器件在IIC总线中的读地址
33
34 sbit SCL=P1^6; //定义IIC器件串行总线
35 sbit SDA=P1^7; //定义IIC器件串行总线
36
37 unsigned char Temp;
38 unsigned char Dis_Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /*0~9的共阴极段码表*/
39 unsigned char Dis_Date[5];
40 unsigned char CarID =2134 ;
41 int countv;
42 int count,countv;
43 int counter;
44 uchar bdata dat;
45
46
47
48
49
50
51 void DelayMs(unsigned int number) //延时函数
52 {
53 1 unsigned char temp;
54 1 for(;number!=0;number--)
55 1 {
C51 COMPILER V8.05a NEW2 05/03/2009 10:33:51 PAGE 2
56 2 for(temp=112;temp!=0;temp--) ;
57 2 }
58 1 }
59
60
61
62 ///}
63 /***************************
64 初始化(定时器0为定时器,定时器1为计数器)
65 ***************************/
66 void Init()
67 {
68 1
69 1
70 1 TMOD=0x51;
71 1
72 1 TL0 = -50000%256;
73 1 TH0 = -50000/256; //2.5ms定时
74 1
75 1 TR0 = 1; //"T0运行控制"
76 1 ET0 = 1; //1"定时器0中断允许"
77 1 TR1 = 1; //"T1运行控制"
78 1
79 1 TH1=TL1=0;
80 1 EA=1; //总中断允许
81 1 counter=0; //计数器清零
82 1 }
83
84 //*延时子程序void Delay(unsinged char data i)*/
85 void Delay(unsigned char i)
86 {
87 1 while(--i);
88 1
89 1 }
90
91
92 void UPdate( )
93 {
94 1 float data temp2;//定义存放计算得到的速度值
95 1 uchar i,ch;
96 1 int TM_hour=15;
97 1 int TM_minute=30;
98 1
99 1
100 1
101 1
102 1 temp2=3.6*3*0.4*counter;
103 1
104 1 Temp=(unsigned int)temp2;//强制转型
105 1
106 1 Dis_Date[5]=Temp%10;
107 1 Dis_Date[4]=Temp/10;
108 1 Dis_Date[3]=TM_minute%10;
109 1 Dis_Date[2]=TM_minute/10;
110 1 Dis_Date[1]=TM_hour%10;
111 1 Dis_Date[0]=TM_hour/10;
112 1
113 1 if(Temp>35)
114 1 {
115 2 YELLOW=0; //黄色
116 2 ALARM=1; //报警
117 2 RED=1; //红色
C51 COMPILER V8.05a NEW2 05/03/2009 10:33:51 PAGE 3
118 2
119 2 }
120 1 else if((Temp)>20&&(Temp<35))
121 1 {
122 2 YELLOW=1; //黄色
123 2 ALARM=1; //报警
124 2 RED=0; //红色
125 2 }
126 1 else
127 1 {};
128 1
129 1
130 1
131 1 }
*** WARNING C280 IN LINE 95 OF NEW2.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 95 OF NEW2.C: 'ch': unreferenced local variable
132 /*写数据到74HC595函数*/
133 void WR_595(unsigned char data num2 )
134 {
135 1 unsigned char data count1;
136 1
137 1 for(count1=0;count1<=7;count1++)
138 1 {
139 2 num2<<=1; /*右移位*/
140 2 SDATA_595=CY;
141 2 _nop_();
142 2 _nop_();
143 2 SCLK_595=0;
144 2 _nop_();
145 2 _nop_();
146 2 SCLK_595=1; /*产生上生沿*/
147 2
148 2 }
149 1
150 1 }
151
152 /****************************************************************/
153 /*更新74HC595输出数据函数void Out_595(void)*/
154 void Out_595(void)
155 {
156 1 RCK_595=0;
157 1 _nop_();
158 1 _nop_();
159 1 RCK_595=1; /*上升沿锁存数据*/
160 1
161 1
162 1 }
163
164 void Led_Drive(void)
165 {
166 1 int i;
167 1 for(i=0;i<=5;i++)//一次输出六位
168 1 {
169 2 WR_595(Dis_Tab[Dis_Date[i]]);
170 2 }
171 1
172 1 Out_595();
173 1 Delay(1000);
174 1
175 1 TL1=0;
176 1
177 1 }
C51 COMPILER V8.05a NEW2 05/03/2009 10:33:51 PAGE 4
178 /****************************************************************/
179 main()
180 {
181 1
182 1 Init();
183 1 YELLOW=0;
184 1 ALARM=0;
185 1 RED=0;
186 1 while(1)
187 1 {
188 2
189 2
190 2
191 2 }
192 1
193 1
194 1 }
195 void Time0 (void) interrupt 1
196 {
197 1
198 1 uchar scan;
199 1
200 1 TR0=0;
201 1 Delay(1000);
202 1 scan++;
203 1 if(scan==20)
204 1 { scan = 0;
205 2 counter=TL1;
206 2 UPdate();
207 2 Led_Drive();
208 2 }
209 1
210 1 TL0 = -50000%256;
211 1 TH0 = -50000/256; //2.5ms定时
212 1 TR0=1;
213 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 357 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 7
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -