📄 hello.lst
字号:
C51 COMPILER V8.02 HELLO 11/12/2008 09:35:37 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE HELLO
OBJECT MODULE PLACED IN Hello.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Hello.c ROM(SMALL) OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1 /*------------------------------------------------------------------------------
2 HELLO.C - adapted for the P89LPC932 and the Keil MCB900 Microcontroller Board
3
4 Copyright 1995-2005 Keil Software, Inc.
5 ------------------------------------------------------------------------------*/
6
7 #include <REG916.H> /* special function register declarations */
8 /* for the Philips P89C932 device */
9
10 #include <stdio.h> /* prototype declarations for I/O functions */
11
12 /*
13 const unsigned int LCD_REGS_VAL[19]={
14 0x409D,0x0204,0x0100,0x3000,0x4003,0x000A,0x0021,0x0C00,
15 0x0000,
16 0x0103,0x0301,0x1F0F,0x1F0F,0x0707,0x0307,0x0707,0x0000,0x0004,0x0000
17 };
18 */
19
20 const unsigned int LCD_REGS_VAL[19]={
21 0x409D,0x0204,0x0100,0x3000,0x4003,0x00AA,0x0021,0x0C00,
22 0x0000,/*reg 9 at Instruction Setting not set */
23 0x0103,0x0301,0x1F0F,0x1F0F,0x0707,0x0307,0x0707,0x0000,0x0004,0x0000
24 };
25
26 /* The delay C function is a for loop that
27 needs about 0.2 seconds execution time */
28 static void delay (unsigned int tmp) {
29 1
30 1 unsigned int i;
31 1
32 1 for (i = 0; i < 80*tmp; i++)
33 1 {
34 2 ;
35 2 }
36 1 }
37
38
39 static void spi_init(void)
40 {
41 1 P2M1 = 0x00;
42 1 P2M2 = 0x00;
43 1 SPCTL = 0xD0;//初始化SPI //D3
44 1
45 1 }
46
47 static void spi_send_data(unsigned char tmp)
48 {
49 1
50 1 SPDAT = tmp;
51 1 while((SPSTAT&0x80)==0);
52 1 delay(1);
53 1 }
54
55 static void lcd_set_reg(unsigned char tmp)
C51 COMPILER V8.02 HELLO 11/12/2008 09:35:37 PAGE 2
56 {
57 1 LCD_CS = 0;
58 1 spi_send_data(0x74); //74
59 1 spi_send_data(0x00);
60 1 spi_send_data(tmp);
61 1 LCD_CS = 1;
62 1 }
63
64 static void lcd_set_data(unsigned int tmp)
65 {
66 1 unsigned char data_h;
67 1 unsigned char data_l;
68 1
69 1 data_h = (tmp&0xff00)>>8;
70 1 data_l = tmp&0xff;
71 1
72 1 LCD_CS = 0;
73 1 spi_send_data(0x76); //76
74 1 spi_send_data(data_h);
75 1 spi_send_data(data_l);
76 1 LCD_CS = 1;
77 1 }
78
79 static void lcd_power_up(void)
80 {
81 1
82 1 int i;
83 1
84 1 delay(100);
85 1 lcd_set_reg(9);
86 1 lcd_set_data(0);
87 1
88 1 delay(20);
89 1 lcd_set_reg(9);
90 1 lcd_set_data(0x4000);
91 1 lcd_set_reg(10);
92 1 lcd_set_data(0x2000);
93 1 lcd_set_reg(9);
94 1 lcd_set_data(0x4055);
95 1 delay(100);
96 1
97 1 /* for(i=0;i<19;i++)
98 1 {
99 1 if(i!=8)
100 1 {
101 1 lcd_set_reg(i+1);
102 1 lcd_set_data(LCD_REGS_VAL[i]);
103 1 }
104 1 }
105 1 */
106 1 delay(1000);
107 1 lcd_set_reg(9);
108 1 lcd_set_data(0x4A55);
109 1 lcd_set_reg(5);
110 1 lcd_set_data(0x5003);
111 1 }
*** WARNING C280 IN LINE 82 OF HELLO.C: 'i': unreferenced local variable
112
113
114 /*------------------------------------------------
115 The main C function. Program execution starts
116 here after stack initialization.
C51 COMPILER V8.02 HELLO 11/12/2008 09:35:37 PAGE 3
117 ------------------------------------------------*/
118 void main()
119 {
120 1
121 1 // delay(2000);
122 1
123 1 spi_init();
124 1 LCD_CS = 1;
125 1 delay(10);
126 1 lcd_power_up();
127 1
128 1 while(1)
129 1 {
130 2
131 2
132 2
133 2 // spi_send_data(0x85);
134 2 delay(1);
135 2 // spi_send_data(0x05);
136 2 // lcd_set_reg(0x05);
137 2 }
138 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 190 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 38 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -