📄 5110.lst
字号:
C51 COMPILER V8.02 5110 05/04/2002 11:07:14 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 5110
OBJECT MODULE PLACED IN 5110.OBJ
COMPILER INVOKED BY: D:\keil\新建文件夹\C51\BIN\C51.EXE 5110.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<all.h>
3 #include<ziku.h>
4
5 #define uchar unsigned char
6 #define uint unsigned int
7 sbit sce = P2^4; //片选
8 sbit res = P2^3; //复位,0复位
9 sbit dc = P2^2; //1写数据,0写指令
10 sbit sdin = P2^1; //数据
11 sbit sclk = P2^0; //时钟
12
13
14 void delay_1ms(void)//1ms延时函数
15 {
16 1 unsigned int i;
17 1 for (i=0;i<500;i++) ;
18 1 ;
19 1 }
20
21 /*--------------------------------------------
22 LCD_write_byte: 使用SPI接口写数据到LCD
23 输入参数:dt:写入的数据;
24 command :写数据/命令选择;
25 编写日期:20080918
26 ----------------------------------------------*/
27 void LCD_write_byte(unsigned char dt, unsigned char command)
28 {
29 1 unsigned char i;
30 1 sce=0; //片选
31 1 dc=command; //command为1写数据,0写指令
32 1 for(i=0;i<8;i++) //模拟串行口发送数据,高位在前,低位在后
33 1 {
34 2 if(dt&0x80) //按位与,dt
35 2 sdin=1; //数据 最高位为1,发送1
36 2 else
37 2 sdin=0; //最高位为0,发送0
38 2 dt=dt<<1;
39 2 sclk=0;
40 2 sclk=1; //时钟
41 2 }
42 1 dc=1; //1写数据,0写指令
43 1 sce=1;
44 1 sdin=1;
45 1 }
46 /*---------------------------------------
47 LCD_init: 3310LCD初始化
48 编写日期:20080918
49 ----------------------------------------- */
50 void LCD_init(void)
51 {
52 1 res=0; //片选
53 1 delay_1ms();
54 1 res=1;
55 1 LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
C51 COMPILER V8.02 5110 05/04/2002 11:07:14 PAGE 2
56 1 LCD_write_byte(0xd0,0);//设定液晶偏置电压
57 1 LCD_write_byte(0x20,0);//使用基本指令
58 1 LCD_write_byte(0x0C,0);//设定显示模式,正常显示
59 1 }
60 /*-------------------------------------------
61 LCD_set_XY: 设置LCD坐标函数
62 输入参数:X:0-83 Y:0-5
63 编写日期:20080918
64 ---------------------------------------------*/
65 void LCD_set_XY(unsigned char X, unsigned char Y)
66 {
67 1 LCD_write_byte(0x40 | Y, 0);// column
68 1 LCD_write_byte(0x80 | X, 0);// row
69 1 }
70 /*------------------------------------------
71 LCD_clear: LCD清屏函数
72 编写日期:20080918
73 --------------------------------------------*/
74 void LCD_clear(void)
75 {
76 1 unsigned char t;
77 1 unsigned char k;
78 1 LCD_set_XY(0,0);
79 1 for(t=0;t<6;t++)
80 1 {
81 2 for(k=0;k<84;k++)
82 2 {
83 3 LCD_write_byte(0x00,1);
84 3
85 3 }
86 2 }
87 1 }
88 /*---------------------------------------------
89 LCD_write_shu: 显示8(宽)*16(高)点阵列数字字母符号等半角类
90 输入参数:c:显示的字符;
91 编写日期:20080918
92 -----------------------------------------------*/
93 void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
94 {
95 1 unsigned char i;
96 1
97 1 LCD_set_XY(row*8, page);// 列,页
98 1 for(i=0; i<8;i++)
99 1 {
100 2 LCD_write_byte(shuzi[c*16+i],1);
101 2 }
102 1
103 1 LCD_set_XY(row*8, page+1);// 列,页
104 1 for(i=8; i<16;i++)
105 1 {
106 2 LCD_write_byte(shuzi[c*16+i],1);
107 2 }
108 1 }
109 /*---------------------------------------------
110 LCD_write_hanzi: 显示16(宽)*16(高)点阵列汉字等半角类
111 输入参数:c:显示的字符;
112 编写日期:20080918
113 -----------------------------------------------*/
114 void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
115 {
116 1 unsigned char i;
117 1
C51 COMPILER V8.02 5110 05/04/2002 11:07:14 PAGE 3
118 1 LCD_set_XY(row*12, page);// 列,页
119 1 for(i=0; i<12;i++)
120 1 {
121 2 LCD_write_byte(hanzi[c*24+i],1);
122 2 }
123 1
124 1 LCD_set_XY(row*12, page+1);// 列,页
125 1 for(i=12; i<24;i++)
126 1 {
127 2 LCD_write_byte(hanzi[c*24+i],1);
128 2 }
129 1 }
130
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 283 ----
CONSTANT SIZE = 864 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -