📄 time6.lst
字号:
C51 COMPILER V8.02 TIME6 04/04/2009 14:49:15 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TIME6
OBJECT MODULE PLACED IN time6.OBJ
COMPILER INVOKED BY: D:\keil c51\C51\BIN\C51.EXE time6.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*********************************************************************/
2 //
3 // 采用8位LED动态扫描时钟演示程序
4 // cdz 2009.4.4
5 /*********************************************************************/
6 //使用12MHZ晶振,P0口输出段码,P2口作列扫描,用共阳LED数码管
7 //
8 #include <reg51.h>
9 code char dis_7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
10 /* 共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" */
11 code char scan_con[6]={0x04,0x08,0x10,0x20,0x40,0x80}; // 列扫描控制字
12 data char disdata[6]={0x00,0x00,0x00,0x00,0x00,0x00};//计时单元数据初值,共6个
13 data char dis[6]={0x00,0x00,0x00,0x00,0x00,0x00};//显示单元数据,共6个数据
14 data char con1s=0x00; //1秒定时用
15
16 /****************/
17 //1毫秒延时程序//
18 /***************/
19 delay1ms(int t)
20 {
21 1 int i,j;
22 1 for(i=0;i<t;i++)
23 1 for(j=0;j<120;j++) ;
24 1 }
25
26 /***********/
27 //扫描程序//
28 /**********/
29 scan()
30 {
31 1 char k;
32 1 for(k=0;k<6;k++)
33 1 {
34 2 P2=scan_con[k];P0=dis_7[dis[k]];delay1ms(1);P2=0x00;
35 2 }
36 1 }
37 /*************/
38 //初始化程序//
39 /*************/
40 clearmen()
41 {
42 1 int i;
43 1 for(i=0;i<6;i++)
44 1 {
45 2 dis[i]=disdata[i];}
46 1 TH0=0x3C;TL0=0xB0;// ;50MS定时初值(T0计时用)
47 1 TMOD=0x01;ET0=1;TR0=1;EA=1;
48 1 }
49 /**********/
50 //主程序//
51 /*********/
52 main()
53 {
54 1 clearmen();
55 1 while(1)
C51 COMPILER V8.02 TIME6 04/04/2009 14:49:15 PAGE 2
56 1 {
57 2 scan();
58 2 }
59 1 }
60
61 /********************/
62 //1秒中断处理程序 //
63 /*******************/
64 void time_intt0(void) interrupt 1
65 {
66 1 TH0=0x3C;TL0=0xB0;
67 1 con1s++;
68 1 if(con1s==20)
69 1 {
70 2 con1s=0x00;
71 2 disdata[0]++;
72 2 if(disdata[0]>=10)
73 2 {
74 3 disdata[0]=0;disdata[1]++;
75 3 if(disdata[1]>=6)
76 3 {
77 4 disdata[1]=0;disdata[2]++;
78 4 if(disdata[2]>=10)
79 4 {
80 5 disdata[2]=0;disdata[3]++;
81 5 if(disdata[3]>=6)
82 5 {
83 6 disdata[3]=0;disdata[4]++;
84 6 if(disdata[4]>=10)
85 6 {
86 7 disdata[4]=0;disdata[5]++;
87 7 }
88 6 if(disdata[5]==2 )
89 6 {
90 7 if(disdata[4]==4)
91 7 {
92 8 disdata[4]=0;disdata[5]=0;
93 8 }
94 7 }
95 6 }
96 5 }
97 4 }
98 3 }
99 2 dis[0]=disdata[0];dis[1]=disdata[1];dis[2]=disdata[2];
100 2 dis[3]=disdata[3];dis[4]=disdata[4];dis[5]=disdata[5];
101 2 }
102 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 276 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -