📄 ledchange.lst
字号:
C51 COMPILER V8.02 LEDCHANGE 08/17/2008 09:31:36 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LEDCHANGE
OBJECT MODULE PLACED IN ledchange.OBJ
COMPILER INVOKED BY: C:\Keil\uv3\C51\BIN\C51.EXE ledchange.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"reg52.h"
2 #define unchar unsigned char
3 unsigned int t=0;
4 bit T1s=0;
5 bit T5ms=0;
6 unchar seg[10 ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
7 unchar scan_con[4]={0xfe,0xfd,0xfb,0xf7};
8 //unchar num[]={(t%60)%10,(t%60)/10,(t/60)%10,(t/60)/10};
9
10 /*****初始化T2,5ms中断一次******/
11 void initT2()
12 {
13 1 T2CON=0x04; //自动重装方式
14 1 TH2=0xfc;
15 1 TL2=0x18;
16 1 RCAP2L=0x18;
17 1 RCAP2H=0xfc;
18 1 EA=1;
19 1 ET2=1;
20 1 }
21
22 /******秒加1******/
23 void add()
24 {
25 1 t++;
26 1 if(t==3601)
27 1 {t=0;}
28 1 }
29
30 /***主函数***/
31 void main()
32 {
33 1 //void initT2();
34 1 unchar i;
35 1 initT2();
36 1 while(1)
37 1 {
38 2 if(T1s)
39 2 {
40 3 T1s=0;
41 3 add();
42 3 }
43 2 else if(T5ms)
44 2 {
45 3 T5ms=0;
46 3 P2=scan_con[i];
47 3 //P0=num[i];
48 3 switch(i) //动态扫描
49 3 {
50 4 case 0:{P1=seg[(t%60)%10];break;} //秒个位
51 4 case 1:{P1=seg[(t%60)/10];break;} // 秒十位
52 4 //
53 4 case 2:{P1=seg[(t/60)%10];break;} // 分个位
54 4 case 3:{P1=seg[(t/60)/10];break;} // 分十位
55 4 default:{break;}
C51 COMPILER V8.02 LEDCHANGE 08/17/2008 09:31:36 PAGE 2
56 4 }
57 3 i++;
58 3 if(i==4)i=0; //列扫描归位
59 3 }}}
60
61 /*******T2中断入口**********/
62 void timer2() interrupt 5
63 {
64 1 int s;
65 1 TF2=0;
66 1 T5ms=1;
67 1 s++;
68 1 if(s==300)
69 1 {
70 2 s=0;
71 2 T1s=1;
72 2 }
73 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 230 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 3
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -