📄 lcd.lst
字号:
C51 COMPILER V8.16 LCD 10/04/2008 14:53:01 PAGE 1
C51 COMPILER V8.16, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.OBJ
COMPILER INVOKED BY: D:\系统开发\keilC51\C51\BIN\C51.EXE LCD.c BROWSE DEBUG OBJECTEXTEND CODE LISTINCLUDE SYMBOLS
line level source
1 /*
2 数码管扫描显示驱动程序
3 */
4
5 #include "config.h"
1 =1 #ifndef _CONFIG_H
2 =1 #define _CONFIG_H
3 =1
4 =1 #include <reg51.h>
1 =2 /*--------------------------------------------------------------------------
2 =2 REG51.H
3 =2
4 =2 Header file for generic 80C51 and 80C31 microcontroller.
5 =2 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
6 =2 All rights reserved.
7 =2 --------------------------------------------------------------------------*/
8 =2
9 =2 #ifndef __REG51_H__
10 =2 #define __REG51_H__
11 =2
12 =2 /* BYTE Register */
13 =2 sfr P0 = 0x80;
14 =2 sfr P1 = 0x90;
15 =2 sfr P2 = 0xA0;
16 =2 sfr P3 = 0xB0;
17 =2 sfr PSW = 0xD0;
18 =2 sfr ACC = 0xE0;
19 =2 sfr B = 0xF0;
20 =2 sfr SP = 0x81;
21 =2 sfr DPL = 0x82;
22 =2 sfr DPH = 0x83;
23 =2 sfr PCON = 0x87;
24 =2 sfr TCON = 0x88;
25 =2 sfr TMOD = 0x89;
26 =2 sfr TL0 = 0x8A;
27 =2 sfr TL1 = 0x8B;
28 =2 sfr TH0 = 0x8C;
29 =2 sfr TH1 = 0x8D;
30 =2 sfr IE = 0xA8;
31 =2 sfr IP = 0xB8;
32 =2 sfr SCON = 0x98;
33 =2 sfr SBUF = 0x99;
34 =2
35 =2
36 =2 /* BIT Register */
37 =2 /* PSW */
38 =2 sbit CY = 0xD7;
39 =2 sbit AC = 0xD6;
40 =2 sbit F0 = 0xD5;
41 =2 sbit RS1 = 0xD4;
42 =2 sbit RS0 = 0xD3;
43 =2 sbit OV = 0xD2;
44 =2 sbit P = 0xD0;
45 =2
46 =2 /* TCON */
C51 COMPILER V8.16 LCD 10/04/2008 14:53:01 PAGE 2
47 =2 sbit TF1 = 0x8F;
48 =2 sbit TR1 = 0x8E;
49 =2 sbit TF0 = 0x8D;
50 =2 sbit TR0 = 0x8C;
51 =2 sbit IE1 = 0x8B;
52 =2 sbit IT1 = 0x8A;
53 =2 sbit IE0 = 0x89;
54 =2 sbit IT0 = 0x88;
55 =2
56 =2 /* IE */
57 =2 sbit EA = 0xAF;
58 =2 sbit ES = 0xAC;
59 =2 sbit ET1 = 0xAB;
60 =2 sbit EX1 = 0xAA;
61 =2 sbit ET0 = 0xA9;
62 =2 sbit EX0 = 0xA8;
63 =2
64 =2 /* IP */
65 =2 sbit PS = 0xBC;
66 =2 sbit PT1 = 0xBB;
67 =2 sbit PX1 = 0xBA;
68 =2 sbit PT0 = 0xB9;
69 =2 sbit PX0 = 0xB8;
70 =2
71 =2 /* P3 */
72 =2 sbit RD = 0xB7;
73 =2 sbit WR = 0xB6;
74 =2 sbit T1 = 0xB5;
75 =2 sbit T0 = 0xB4;
76 =2 sbit INT1 = 0xB3;
77 =2 sbit INT0 = 0xB2;
78 =2 sbit TXD = 0xB1;
79 =2 sbit RXD = 0xB0;
80 =2
81 =2 /* SCON */
82 =2 sbit SM0 = 0x9F;
83 =2 sbit SM1 = 0x9E;
84 =2 sbit SM2 = 0x9D;
85 =2 sbit REN = 0x9C;
86 =2 sbit TB8 = 0x9B;
87 =2 sbit RB8 = 0x9A;
88 =2 sbit TI = 0x99;
89 =2 sbit RI = 0x98;
90 =2
91 =2 #endif
5 =1 #include <stdio.h> //包含标准I/O头文件(其中有printf()函数)
1 =2 /*--------------------------------------------------------------------------
2 =2 STDIO.H
3 =2
4 =2 Prototypes for standard I/O functions.
5 =2 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
6 =2 All rights reserved.
7 =2 --------------------------------------------------------------------------*/
8 =2
9 =2 #ifndef __STDIO_H__
10 =2 #define __STDIO_H__
11 =2
12 =2 #ifndef EOF
13 =2 #define EOF -1
14 =2 #endif
15 =2
16 =2 #ifndef NULL
C51 COMPILER V8.16 LCD 10/04/2008 14:53:01 PAGE 3
17 =2 #define NULL ((void *) 0)
18 =2 #endif
19 =2
20 =2 #ifndef _SIZE_T
21 =2 #define _SIZE_T
22 =2 typedef unsigned int size_t;
23 =2 #endif
24 =2
25 =2 #pragma SAVE
26 =2 #pragma REGPARMS
27 =2 extern char _getkey (void);
28 =2 extern char getchar (void);
29 =2 extern char ungetchar (char);
30 =2 extern char putchar (char);
31 =2 extern int printf (const char *, ...);
32 =2 extern int sprintf (char *, const char *, ...);
33 =2 extern int vprintf (const char *, char *);
34 =2 extern int vsprintf (char *, const char *, char *);
35 =2 extern char *gets (char *, int n);
36 =2 extern int scanf (const char *, ...);
37 =2 extern int sscanf (char *, const char *, ...);
38 =2 extern int puts (const char *);
39 =2
40 =2 #pragma RESTORE
41 =2
42 =2 #endif
43 =2
6 =1 #include <absacc.h>
1 =2 /*--------------------------------------------------------------------------
2 =2 ABSACC.H
3 =2
4 =2 Direct access to 8051, extended 8051 and Philips 80C51MX memory areas.
5 =2 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
6 =2 All rights reserved.
7 =2 --------------------------------------------------------------------------*/
8 =2
9 =2 #ifndef __ABSACC_H__
10 =2 #define __ABSACC_H__
11 =2
12 =2 #define CBYTE ((unsigned char volatile code *) 0)
13 =2 #define DBYTE ((unsigned char volatile data *) 0)
14 =2 #define PBYTE ((unsigned char volatile pdata *) 0)
15 =2 #define XBYTE ((unsigned char volatile xdata *) 0)
16 =2
17 =2 #define CWORD ((unsigned int volatile code *) 0)
18 =2 #define DWORD ((unsigned int volatile data *) 0)
19 =2 #define PWORD ((unsigned int volatile pdata *) 0)
20 =2 #define XWORD ((unsigned int volatile xdata *) 0)
21 =2
22 =2
23 =2 #ifdef __CX51__
=2 #define FVAR(object, addr) (*((object volatile far *) (addr)))
=2 #define FARRAY(object, base) ((object volatile far *) (base))
=2 #define FCVAR(object, addr) (*((object const far *) (addr)))
=2 #define FCARRAY(object, base) ((object const far *) (base))
=2 #else
29 =2 #define FVAR(object, addr) (*((object volatile far *) ((addr)+0x10000L)))
30 =2 #define FCVAR(object, addr) (*((object const far *) ((addr)+0x810000L)))
31 =2 #define FARRAY(object, base) ((object volatile far *) ((base)+0x10000L))
32 =2 #define FCARRAY(object, base) ((object const far *) ((base)+0x810000L))
33 =2 #endif
34 =2
C51 COMPILER V8.16 LCD 10/04/2008 14:53:01 PAGE 4
35 =2 #endif
7 =1
8 =1 #define uchar unsigned char
9 =1 #define uint unsigned int
10 =1
11 =1 #include "uart.h"
1 =2 #ifndef _UART_H
2 =2 #define _UART_H
3 =2
4 =2 //设置主时钟和波特率
5 =2 #define MCLK 11059200L
6 =2 #define BAUD_RATE 9600L
7 =2
8 =2 void UartInit();
9 =2 #endif
12 =1 #include "LM75A.h"
1 =2 #ifndef _LM75A_H
2 =2 #define _LM75A_H
3 =2
4 =2
5 =2 /*
6 =2 函数:Delay()
7 =2 功能:延时1ms~65.536s
8 =2 参数:
9 =2 t>0时,延时(t*0.001)s
10 =2 t=0时,延时65.536s
11 =2 */
12 =2 void Delay(unsigned int t);
13 =2
14 =2 /*
15 =2 功能:系统初始化
16 =2 */
17 =2 void T0Init();
18 =2
19 =2
20 =2 /*
21 =2 函数:LM75A_GetTemp
22 =2 功能:读出LM75A的温度值
23 =2 返回:LM75A温度寄存器的数值(乘以0.125可得到摄氏度值)
24 =2 */
25 =2 int LM75A_GetTemp();
26 =2
27 =2
28 =2 #endif
13 =1 #include "LCD.h"
1 =2 #ifndef _LCD_H
2 =2 #define _LCD_H
3 =2
4 =2
5 =2 #define seg P0
6 =2 #define com P1
7 =2
8 =2 void DispChar(unsigned char x, unsigned char mydata);
9 =2
10 =2 void DispStr( unsigned char *s);
11 =2
12 =2
13 =2 //void DispDotOn(unsigned char x);
14 =2
15 =2 void ByteToStr(unsigned char *s, unsigned char c );
16 =2
17 =2 uchar* DispTemp(int t) ;
C51 COMPILER V8.16 LCD 10/04/2008 14:53:01 PAGE 5
18 =2
19 =2
20 =2 void disp(int t);
21 =2
22 =2
23 =2
24 =2 #endif
14 =1 #include "I2C.h"
1 =2 #ifndef _I2C_H
2 =2 #define _I2C_H
3 =2
4 =2 //模拟I2C总线的引脚定义
5 =2
6 =2 sbit I2C_SCL = P3^4;
7 =2 sbit I2C_SDA = P3^5;
8 =2
9 =2
10 =2 //定义I2C总线时钟的延时值,要根据实际情况修改,取值1~255
11 =2 //SCL信号周期约为(I2C_DELAY_VALUE*4+15)个机器周期
12 =2 #define I2C_DELAY_VALUE 5
13 =2
14 =2
15 =2 //定义I2C总线停止后在下一次开始之前的等待时间,取值1~65535
16 =2 //等待时间约为(I2C_STOP_WAIT_VALUE*8)个机器周期
17 =2 //对于多数器件取值为1即可;但对于某些器件来说,较长的延时是必须的
18 =2 #define I2C_STOP_WAIT_VALUE 1
19 =2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -