📄 3310.lst
字号:
C51 COMPILER V8.12 3310 06/05/2008 22:33:59 PAGE 1
C51 COMPILER V8.12, COMPILATION OF MODULE 3310
OBJECT MODULE PLACED IN 3310.OBJ
COMPILER INVOKED BY: E:\Program Files\Keil\C51\BIN\C51.EXE 3310.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <intrins.h>
3 #include <dat.h>
4 #include <ad.h> //水平寻址下高位
5 #define uchar unsigned char
6 #define uint unsigned int
7 sbit sclk=P0^7;
8 sbit sdin=P0^6;
9 sbit dc =P0^5;
10 sbit sce =P0^4;
11 sbit res =P0^0;
12
13
14 /*往LCD3310写指令,或写数据*/
15 void lcd3310_wr(uchar com,bit k)
16 {
17 1 uchar i;
18 1 sce=0;
19 1 dc=k;
20 1 for(i=0;i<7;i++)
21 1 {
22 2 sclk=0;
23 2 if(com&0x80)
24 2 sdin=1;
25 2 else
26 2 sdin=0;
27 2 com<<=1;
28 2 sclk=1;
29 2 }
30 1 sclk=0;
31 1 if(com&0x80)
32 1 sdin=1;
33 1 else
34 1 sdin=0;
35 1 dc=k;
36 1 sclk=1;
37 1 sce=1;
38 1 }
39
40 /*LCD3310清屏*/
41 void lcd_clc()
42 {
43 1 uint i;
44 1 lcd3310_wr(0x40,0);
45 1 lcd3310_wr(0x80,0);
46 1 for (i=0; i<504; i++)
47 1 lcd3310_wr(0,1); //即往ram中每个单位都写入0
48 1 }
49
50 /*LCD3310初始化*/
51 void lcd_init()
52 {
53 1 // res=0;
54 1 // _nop_();
55 1 res=1;
C51 COMPILER V8.12 3310 06/05/2008 22:33:59 PAGE 2
56 1
57 1 sce=0;
58 1
59 1 lcd3310_wr(0x20,0); /*功能设置:芯片活动,水平寻址,使用基本指令集*/
60 1
61 1 lcd3310_wr(0x0c,0); /*显示配置:0x00空白,0x0a普通模式,0x09开所有显示段,0x0b反转映像模式*/
62 1
63 1 lcd3310_wr(0xcf,0); /*温度控制:0x04 V_lcd温度系数0,0x05 系数1,0x06 系数2,0x07 系数3*/
64 1
65 1 lcd3310_wr(0xb7,0);
66 1
67 1 lcd_clc();
68 1 }
69
70 /*设置坐标*/
71 void setxy(uchar x,uchar y) //输入范围:0<=x<=5; 0<=y<=83
72 {
73 1 lcd3310_wr(0x40|x,0);
74 1 lcd3310_wr(0x80|y,0);
75 1 }
76
77 /*在指定位置写入一个字符*/
78 void wr_char(uchar x,uchar y,uchar ch)
79 {
80 1 uchar i;
81 1 setxy(x,y);
82 1 ch-=32;
83 1 for(i=0;i<6;i++)
84 1 lcd3310_wr(tbl[ch][i],1);
85 1 }
86
87 /*从指定位置开始写入一个字符串*/
88 void wr_string(uchar x,uchar y,uchar *str)
89 {
90 1 uchar i,temp;
91 1 setxy(x,y);
92 1 while(*str)
93 1 {
94 2 temp=(*str)-32;
95 2 for(i=0;i<6;i++)
96 2 lcd3310_wr(tbl[temp][i],1);
97 2 str++;
98 2 }
99 1 }
100
101 /*在指定位置写入一个汉字(12点阵)*/
102 void wr_chinese(uchar x,uchar y,const uchar *chinese) //参数chinese[]为汉字摸
103 {
104 1 uchar i;
105 1 setxy(x,y); //写汉字的上半部
106 1 for(i=0;i<12;i++)
107 1 {
108 2 lcd3310_wr(*chinese,1);
109 2 chinese++;
110 2 }
111 1
112 1 setxy(x+1,y);
113 1 for(i=0;i<12;i++) //写汉字的下半部
114 1 {
115 2 lcd3310_wr(*chinese,1);
116 2 chinese++;
117 2 }
C51 COMPILER V8.12 3310 06/05/2008 22:33:59 PAGE 3
118 1 }
119 /*写一组汉字*/
120 void wr_mulchinese(uchar x,uchar y,const uchar *chinese,uchar count) //count为汉字个数
121 {
122 1 uchar i;
123 1 for(i=0;i<count;i++)
124 1 {
125 2 wr_chinese(x,y,chinese);
126 2 y+=12;
127 2 // x--;
128 2 chinese+=24;
129 2 }
130 1 }
131
132 /*在指定位置开始写入图片 */
133 void draw_map(uchar x,uchar y,uchar *map,
134 uchar kuan,uchar gao)
135 {
136 1 uchar i,n,row;
137 1 if(gao%8==0)
138 1 row=gao/8;
139 1 else
140 1 row=gao/8+1;
141 1 for(n=0;n<row;n++)
142 1 {
143 2 setxy(x,y);
144 2 for(i=0;i<kuan;i++)
145 2 {
146 3 lcd3310_wr(*map,1);
147 3 map++;
148 3 }
149 2 x++;
150 2 }
151 1 }
152
153 /*用于延时n毫秒*/
154 void delay(uint n)
155 {
156 1 uchar m;
157 1 uint i;
158 1 for(i=0;i<n;i++)
159 1 for(m=0;m<200;m++);
160 1 }
161
162 void drawline()
163 {
164 1 uchar i;
165 1 wr_string(0,0,"35^C");
166 1 for(i=24;i<84;i++)
167 1 lcd3310_wr(0x10,1);
168 1
169 1 wr_string(2,0,"15^C") ;
170 1 for(i=24;i<84;i++)
171 1 lcd3310_wr(0x08,1);
172 1 }
173 void main()
174 {
175 1 //{0x00,0x00,0x0f,0x09,0x09,0x0f}, //度(温度)
176 1 uchar i='0';
177 1 uchar k[6]={0x00,0x00,0x0f,0x09,0x09,0x0f};
178 1 lcd_init();
179 1 drawline();
C51 COMPILER V8.12 3310 06/05/2008 22:33:59 PAGE 4
180 1 // wr_mulchinese(3,0,wendu[0],5);
181 1 // wr_mulchinese(5,0,zhuansu[0],5);
182 1 wr_string(3,0,"CurTemp:");
183 1 wr_string(4,0,"CurRev:1000rad/min");
184 1 while(1)
185 1 {
186 2 wr_char(3,54,i);
187 2 wr_string(3,72,"^C");
188 2 delay(1000);
189 2 i++;
190 2 if(i>=10)
191 2 i=0;
192 2 }
193 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 601 ----
CONSTANT SIZE = 1295 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 23
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -