📄 prog.lst
字号:
C51 COMPILER V8.05a PROG 10/08/2008 13:23:20 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE PROG
OBJECT MODULE PLACED IN D:\单片机软件\挂钟\PROG.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\单片机软件\挂钟\PROG.C DB SB OE
line level source
1 #include "reg51.h"
2 #include "math.h"
3 #include "string.h"
4 #include "intrins.h"
5 #define uchar unsigned char
6 #define high 1/* 高电平 */
7 #define low 0 /* 低电平 */
8 //sbit Dat4094=P1^4;/* 4094A数据*/
9 // sbit En=P1^5; /* 使能 */
10 sbit ESS=P1^6;//数据脚
11 sbit clk=P1^3;//时钟
12 sbit storge=P1^1;//锁存
13 //uchar code LED_acess[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//LED段码0,1,2,3,4,5,6,7,8
-,9
14 uchar code LED_acess[10]={0x04,0x1f,0x22,0x0a,0x19,0x48,0x40,0x1e,0x00,0x08};//LED段码0,1,2,3,4,5,6,7,8,9
15 uchar idata a[6];
16 uchar time_NUM;
17 //uchar s ;
18 long int time_con;
19 long int time_T;
20 bit flag;
21 //函数申明
22 void Clock(void);
23 // void Sclock(void);
24 void Delay(uchar us);/*延时 us 微秒*/
25 void SendDate(uchar dat1);
26 void Init(void);
27 void show(void);
28 void Delay(uchar us)/*延时函数*/
29 {
30 1 uchar time;
31 1 for(time=us;time>0;time--);
32 1 }
33
34 void Clock(void) /*时钟上升沿函数*/
35 {
36 1 clk=low;
37 1 Delay(2);
38 1 clk=high;
39 1 Delay(2);
40 1 }
41 //void Sclock(void) /*锁存时钟上升沿函数*/
42 //{
43 // sclk=low;
44 // Delay(2);
45 // sclk=high;
46 // Delay(2);
47 //}
48 void SendData(uchar dat1) /*给74HC595发数据函数*/
49 {
50 1 uchar numBIT;
51 1 for(numBIT=0;numBIT<8;numBIT++)
52 1 {
53 2 if(dat1&0x80)
54 2 ESS=low;
C51 COMPILER V8.05a PROG 10/08/2008 13:23:20 PAGE 2
55 2
56 2 else
57 2 ESS=high;
58 2 dat1= _crol_(dat1,1);
59 2 Clock();
60 2 }
61 1 }
62
63
64 void show(void) /*调LED显屏显示函数*/
65 {
66 1 uchar num;
67 1 storge=low;
68 1 for(num=0;num<6;num++)
69 1 {
70 2 if(flag)
71 2 SendData(LED_acess[a[num]]|0x80);
72 2 else
73 2 SendData(LED_acess[a[num]]);
74 2 }
75 1 storge=high;
76 1 }
77 void Time0(void) interrupt 1 using 0 /*定时器0中断*/
78 {
79 1 EA=0;
80 1 TH0=0x3c;/*五十毫秒*/
81 1 TL0=0xb0;
82 1 time_NUM++;
83 1 EA=1;
84 1
85 1 }
86
87
88 void Init(void) /*初始化函数*/
89 {
90 1 // WDTRST=0x1e;
91 1 IE=IE|0x82;
92 1 TMOD=TMOD|0x01;
93 1 TH0=0x3c;/*五十毫秒*/
94 1 TL0=0xb0;
95 1 TR0=1;
96 1 time_con=57600;
97 1 show();
98 1 P0=0Xfe;
99 1
100 1 /* CHPENR=0x87;
101 1 CHPENR=0x59;
102 1 CHPCON=CHPCON|0x10;
103 1 CHPENR=0X00; 片外存储器使能*/
104 1
105 1
106 1 }
107 void mul_time(void)
108 {
109 1 time_con++;
110 1 time_T=time_con;
111 1 a[5]=time_T%10;
112 1 time_T=time_T/10;
113 1 a[4]=time_T%6;
114 1 time_T=time_T/6;
115 1 a[3]=time_T%10;
116 1 time_T=time_T/10;
C51 COMPILER V8.05a PROG 10/08/2008 13:23:20 PAGE 3
117 1 a[2]=time_T%6;
118 1 time_T=time_T/6;
119 1 a[1]=time_T%10;
120 1 a[0]=time_T/10;
121 1 }
122 void main(void) /*主函数*/
123 {
124 1 Init();
125 1 while(1)
126 1 {
127 2 if(time_NUM>=20)
128 2 {
129 3 time_NUM=0;
130 3 mul_time();
131 3 flag=!flag;
132 3 }
133 2 show();
134 2 }
135 1 }
136
137
138
139
140
C51 COMPILER V8.05a PROG 10/08/2008 13:23:20 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
time_NUM . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
_SendData. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
dat1 . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
numBIT . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
Init . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
storge . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
flag . . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
clk. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0093H 1
Time0. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
show . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
num. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
LED_acess. . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 10
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
time_con . . . . . . . . . . . . . . . PUBLIC DATA LONG 0001H 4
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
a. . . . . . . . . . . . . . . . . . . PUBLIC IDATA ARRAY 0000H 6
mul_time . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
time_T . . . . . . . . . . . . . . . . PUBLIC DATA LONG 0005H 4
ESS. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0096H 1
Clock. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_Delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
us . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
time . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 394 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
IDATA SIZE = 6 ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -