📄 temp.lst
字号:
C51 COMPILER V7.06 TEMP 12/24/2007 19:03:38 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TEMP
OBJECT MODULE PLACED IN Temp.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Temp.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 /*************************************************
3 引用外部函数
4 **************************************************/
5 extern WRBYTES(unsigned masteraddr,unsigned char Ramaddr,char buf[],unsigned char num,bit wr);
6
7 sbit LED_DIG = P1^3;
8 sbit LED_COM = P1^2;
9 unsigned char counter = 0;
10 unsigned int Temp;
11 unsigned char Disbuf[] = {0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a}; //显示初始化,全部消隐
12 unsigned char code DisCode[] = {0x0C0,0xF9,0xA4,0xB0,0x99,0x92,
13 0x82,0xF8,0x80,0x90,0xFF};
14 //共阳极数码管码表,定位在ROM中
15 /********************************
16 显示延时
17 *********************************/
18 void Delay(void)
19 {
20 1 unsigned char i = 200;
21 1 while(i--);
22 1 }
23 /********************************
24 带参数传递的显示程序
25 *********************************/
26 void Display(unsigned char Dat[8])
27 {
28 1 static unsigned char i = 0;
29 1 unsigned LED_Posit = 0x01;
30 1 for(i = 0;i<8;i++)
31 1 {
32 2 if(i==1)
33 2 P0 = DisCode[Dat[i]]&0x7f; //送段选
34 2 else
35 2 P0 = DisCode[Dat[i]]; //送段选
36 2 LED_DIG = 1;
37 2 LED_DIG = 0;
38 2 P0 = LED_Posit; //选通一个数码管
39 2 LED_COM = 1;
40 2 LED_COM = 0;
41 2 Delay();
42 2 P0 = 0; //消隐
43 2 LED_COM = 1;
44 2 LED_COM = 0;
45 2 LED_Posit<<=1;
46 2 }
47 1 }
48
49 /******************************
50 读温度植
51 ********************************/
52 void GetTemp()
53 {
54 1 WRBYTES(0x90,0x00,Disbuf,2,1);
55 1 Temp = Disbuf[0];
C51 COMPILER V7.06 TEMP 12/24/2007 19:03:38 PAGE 2
56 1 Temp<<=8;
57 1 Temp+=Disbuf[1];
58 1 Temp>>=7;
59 1 Temp*=10;
60 1 Temp /= 2;
61 1 Disbuf[2] = Temp/100;
62 1 Disbuf[1] = (Temp%100)/10;
63 1 Disbuf[0] = Temp%10;
64 1
65 1 }
66 /*************************************
67 主函数
68 **************************************/
69 main()
70 {unsigned char i;
71 1 /*TMOD = 0x01;
72 1 TR0 = 1;
73 1 ET0=EA=1;*/
74 1 while(1)
75 1 {
76 2 for(i=0;i<250;i++)
77 2 Display(Disbuf); //必须等待一段时间再读,否则会打断转换
78 2
79 2 GetTemp();
80 2 }
81 1 }
82
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 262 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 4
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 + -