📄 text1.lst
字号:
C51 COMPILER V8.02 TEXT1 06/05/2008 12:41:06 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <intrins.h>
3 #include <ad.h>
4 #include <dat.h>
5 #define uchar unsigned char
6 #define uint unsigned int
7
8 sbit sclk=P0^7; //要有实现滚屏的函数
9 sbit sdin=P0^6;
10 sbit dc =P0^5;
11 sbit sce =P0^4;
12 sbit res =P0^0;
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 unsigned int 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 lcd3310_init()
52 {
53 1 // res=0;
54 1 // _nop_();
55 1 res=1;
C51 COMPILER V8.02 TEXT1 06/05/2008 12:41:06 PAGE 2
56 1
57 1 sce=0;
58 1
59 1 lcd3310_wr(0x20,0);
60 1 lcd3310_wr(0xB7,0);
61 1
62 1 lcd3310_wr(0x20,0);
63 1 lcd3310_wr(0x0c,0);
64 1
65 1 lcd_clc();
66 1 }
67
68 /*设置坐标*/
69 void setxy(uchar x,uchar y) //输入范围:0<=x<=5; 0<=y<=83
70 {
71 1 lcd3310_wr(0x40|x,0);
72 1 lcd3310_wr(0x80|y,0);
73 1 }
74 /*写汉字,采用12点阵
75 ch为字模,x,y屏幕位置*/
76 void wr_chinese(const uchar *ch,uchar x,uchar y)
77 {
78 1 uchar i;
79 1 setxy(x,y);
80 1 for(i=0;i<12;i++)
81 1 {
82 2 lcd3310_wr(*ch,1);
83 2 ch++;
84 2 }
85 1 setxy(x+1,y);
86 1 for(i=0;i<12;i++)
87 1 {
88 2 lcd3310_wr(*ch,1);
89 2 ch++;
90 2 }
91 1 }
92 void wr_char (const uchar *ch,uchar x,uchar y)
93 {
94 1 uchar i;
95 1 setxy(x,y);
96 1 for(i=0;i<6;i++)
97 1 {
98 2 lcd3310_wr(*ch,1);
99 2 ch++ ;
100 2 }
101 1 }
102 void delay(uint n) //延时n毫秒
103 {
104 1 uchar m;
105 1 uint i;
106 1 for(i=0;i<n;i++)
107 1 for(m=0;m<200;m++);
108 1 }
109 /*转轮动画*/
110 void circle(const uchar *ch,uchar x,uchar y)
111 {
112 1 uchar i;
113 1 setxy(x,y);
114 1 for(i=0;i<32;i++)
115 1 {
116 2 lcd3310_wr(*ch,1);
117 2 ch++;
C51 COMPILER V8.02 TEXT1 06/05/2008 12:41:06 PAGE 3
118 2 }
119 1 }
120 void draw_map(uchar x,uchar y,uchar *map,
121 uchar kuan,uchar gao)
122 {
123 1 uchar i,n,row;
124 1 if(gao%8==0)
125 1 row=gao/8;
126 1 else
127 1 row=gao/8+1;
128 1 for(n=0;n<row;n++)
129 1 {
130 2 setxy(x,y);
131 2 for(i=0;i<kuan;i++)
132 2 {
133 3 lcd3310_wr(*map,1);
134 3 map++;
135 3 }
136 2 x++;
137 2 }
138 1 }
139 /*滚屏“杭州电子科技大学”
140 void gunping()
141 {
142 char i,j;
143 for(i=0;i<8;i++)
144 {
145 for(j=i;j>=0;j--)
146 {
147 wr_chinese(hanzi[j],1,12*(i-j));
148 delay(100);
149 if((12*(i-j))==72)
150 break;
151 }
152 }
153 for(i=1;i<7;i++)
154 {
155 lcd_clc();
156 for(j=7;j>=0;j--)
157 {
158 wr_chinese(hanzi[j],1,12*(i+7-j));
159 delay(100);
160 if((i+7-j)==6)
161 break;
162 }
163 }
164 } */
165
166 void main()
167 {
168 1 lcd3310_init();
169 1
170 1 draw_map(0,0,nBitmapDot,48,48);
171 1 while(1) ;
172 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 364 ----
CONSTANT SIZE = 1552 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V8.02 TEXT1 06/05/2008 12:41:06 PAGE 4
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 + -