📄 program.lst
字号:
C51 COMPILER V7.06 PROGRAM 11/18/2007 22:35:48 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE PROGRAM
OBJECT MODULE PLACED IN program.OBJ
COMPILER INVOKED BY: C:\Program Files\KeilC\C51\BIN\C51.EXE program.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<at89x52.h>
2 unsigned char code dispbitcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
3 0x82,0xf8,0x80,0x90,0xff};
4 unsigned char dispbuf[6]; //dispbuf[6]必须大于dispbuf[3] 否则相等时,找到的是地址。//用dispbuf[3]不会显示
5 unsigned int i;
6 unsigned int j;
7 unsigned char getdata;
8 unsigned int temp;
9 unsigned int temp1;
10 unsigned char count;
11 unsigned char d;
12 sbit ST=P3^0;
13 sbit OE=P3^1;
14 sbit EOC=P3^2;
15 sbit CLK=P3^3;
16
17 sbit P10=P1^0;
18 sbit P11=P1^1;
19 sbit P12=P1^2;
20 sbit P13=P1^3;
21 sbit P27=P2^7;
22 void TimeInitial();
23 void Delay(unsigned int i);
24
25 void TimeInitial() //开中断
26 { TMOD=0x10;
27 1 TH1=(65536-200)/256;
28 1 TL1=(65536-200)%256;
29 1 EA=1;
30 1 ET1=1;
31 1 TR1=1;
32 1 }
33 void Delay(unsigned int i) //延时程序
34 {
35 1 unsigned int j;
36 1 for(;i>0;i--)
37 1 {
38 2 for(j=0;j<125;j++)
39 2 {;}
40 2 }
41 1 }
42
43 void Display()
44
45 {
46 1 P2=dispbitcode[dispbuf[3]]; //如果P2=0xff; 第一位不显示,消隐 //显示第一位
47 1 P10=1;
48 1 P11=0;
49 1 P12=0;
50 1 P13=0;
51 1 Delay(10);
52 1 P2=0xff;
53 1
54 1 P2=dispbitcode[dispbuf[2]]; //显示第二位
55 1 P27=0;
C51 COMPILER V7.06 PROGRAM 11/18/2007 22:35:48 PAGE 2
56 1 P10=0;
57 1 P11=1;
58 1 P12=0;
59 1 P13=0;
60 1 Delay(10);
61 1 P2=0xff;
62 1
63 1 P2=dispbitcode[dispbuf[1]];//显示第三位
64 1 P10=0;
65 1 P11=0;
66 1 P12=1;
67 1 P13=0;
68 1 Delay(10);
69 1 P2=0xff;
70 1
71 1 P2=dispbitcode[dispbuf[0]];//显示第四位
72 1 P10=0;
73 1 P11=0;
74 1 P12=0;
75 1 P13=1;
76 1 Delay(10);
77 1 P2=0xff;
78 1
79 1
80 1
81 1 }
82
83 void main()
84 {
85 1 TimeInitial();
86 1 while(1)
87 1 {
88 2 ST=0;
89 2 OE=0;
90 2 ST=1;
91 2 ST=0;
92 2
93 2 while(EOC==0); //如果EOC等于0,一直循环,等待转换结束。转换结束EOC等于1,执行下一步。
94 2 OE=1;
95 2 getdata=P0;
96 2 OE=0;
97 2 temp=getdata*1.0/255*500;
98 2 dispbuf[0]=temp%10;
99 2 dispbuf[1]=temp/10%10;
100 2 dispbuf[2]=temp/100%10;
101 2 dispbuf[3]=temp/1000;
102 2 Display();
103 2
104 2 }
105 1 }
106
107 void t1(void) interrupt 3 using 0
108 {
109 1 TH1=(65536-200)/256;
110 1 TL1=(65536-200)%256;
111 1 CLK=~CLK;
112 1 }
113
114 /*temp==489
115 dispbuf[0]=489%10; 取余运算,结果为9 //个位数运算
116 dispbuf[1]=489/10%10; 489/10 取商运算,结果为48 ; 48%10=8 //十位数运算
117 dispbuf[2]=489/100%10; 489/100 取商运算,结果为4 4%10 取余运算。结果为4
C51 COMPILER V7.06 PROGRAM 11/18/2007 22:35:48 PAGE 3
118 dispbuf[3]=489/1000; 489/1000 取商运算,结果为0
119 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 257 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 17 ----
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 + -