📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 08/03/2007 04:23:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 #include "reg52.h"
3
4 typedef unsigned char BYTE;
5 typedef unsigned int WORD;
6
7
8 sbit ADC0809_CS=P3^5;
9 sbit ADC0809_EOC=P3^3;
10
11 sbit SMG_EN1=P1^3;
12 sbit SMG_EN2=P1^2;
13 sbit SMG_EN3=P1^1;
14 sbit SMG_EN4=P1^0;
15 #define SMG_DATA P0
16 // 字形表, 为0亮
17 // a_
18 // f|_|b
19 // e|_|c .p
20 // d
21 // 00001101
22 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
23 unsigned char code SMG_TABLE[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x
-86,0x8e};
24
25 /* Function */
26 void Delay_10us(WORD n);
27 void SMG_Display(BYTE SMGNum, BYTE tdata);
28
29 /**********************************************************************
30 * main()
31 /*********************************************************************/
32 void main(void)
33 {
34 1 BYTE rdata=0,i=0;
35 1 BYTE BCD_H=0,BCD_M=0,BCD_L=0;
36 1 BYTE xdata * ptr;
37 1
38 1 float result=0;
39 1 int temp;
40 1
41 1 while(1)
42 1 {
43 2 ADC0809_CS=0;
44 2 *ptr=0xff;
45 2 i=200;
46 2 while(ADC0809_EOC && (i>0))i--;
47 2 rdata=*ptr;
48 2 ADC0809_CS=1;
49 2
50 2 /* BCD_H=(rdata>>4)&0x0f; //get the high half BYTE
51 2 BCD_L=rdata&0x0f; //get the low half BYTE
52 2
53 2 SMG_Display(1,BCD_H);
54 2 SMG_Display(2,BCD_L);
C51 COMPILER V7.06 MAIN 08/03/2007 04:23:00 PAGE 2
55 2 */
56 2 // 显示十进制数据
57 2 result=5*rdata/256.0;
58 2 temp=(int)(100*result+0.5);
59 2 BCD_H=temp/100;
60 2 BCD_M=(temp/10)%10;
61 2 BCD_L=temp%10;
62 2 SMG_Display(2,BCD_H);
63 2 SMG_Display(3,BCD_M);
64 2 SMG_Display(4,BCD_L);
65 2
66 2
67 2 }
68 1 }
69
70
71
72 // write the tdata to the SMGNum
73 void SMG_Display(BYTE SMGNum, BYTE tdata)
74 {
75 1 switch(SMGNum)
76 1 {
77 2 case 1:SMG_EN1=0;break;
78 2 case 2:SMG_EN2=0;break;
79 2 case 3:SMG_EN3=0;break;
80 2 case 4:SMG_EN4=0;break;
81 2 default:break;
82 2 }
83 1 if(SMGNum==2)
84 1 SMG_DATA=SMG_TABLE[tdata]&0x7f;
85 1 else
86 1 SMG_DATA=SMG_TABLE[tdata];
87 1
88 1 Delay_10us(100);
89 1 SMG_EN1=1;SMG_EN2=1;SMG_EN3=1;SMG_EN4=1;
90 1 }
91
92 // delay_ms(WORD n), default use 12M XTAL,others should be modifed.
93 void Delay_10us(WORD n)
94 {
95 1 BYTE i=0;
96 1 for(;n>0;n--)
97 1 for(i=0;i<10;i++);
98 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 278 ----
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 + -