📄 12864.lst
字号:
C51 COMPILER V9.00 12864 08/26/2013 16:22:34 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN 12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864.c BROWSE DEBUG OBJECTEXTEND
line level source
*** WARNING C500 IN LINE 1 OF 12864.C: LICENSE ERROR (R201: INVALID LICENSE ID CODE (LIC))
1 #include<reg52.h>
2 #include"12864.h"
3 #include"const.h"
4 void delay(uint us) //delay time
5 {
6 1 uint i;
7 1 for (i=1;i<=3;i++)
8 1 while(us--);
9 1 }
10 void SendByte(uchar Dbyte)
11 {
12 1 uchar i;
13 1 for(i=0;i<8;i++)
14 1 {
15 2 SCLK = 0;
16 2 Dbyte=Dbyte<<1;
17 2 SID = CY;
18 2 SCLK = 1;
19 2 SCLK = 0;
20 2 }
21 1 }
22 uchar ReceiveByte(void)
23 {
24 1 uchar i,temp1,temp2;
25 1 temp1 = 0;
26 1 temp2 = 0;
27 1 for(i=0;i<8;i++)
28 1 {
29 2 temp1=temp1<<1;
30 2 SCLK = 0;
31 2 SCLK = 1;
32 2 SCLK = 0;
33 2 if(SID)
34 2 temp1++;
35 2 }
36 1 for(i=0;i<8;i++)
37 1 {
38 2 temp2=temp2<<1;
39 2 SCLK = 0;
40 2 SCLK = 1;
41 2 SCLK = 0;
42 2 if(SID)
43 2 temp2++;
44 2 }
45 1 return ((0xf0&temp1)+(0x0f&temp2));
46 1 }
47 void CheckBusy( )
48 {
49 1 do SendByte(0xfc);
50 1 while(0x80&ReceiveByte());
51 1 }
52 void Lcd_WriteCmd(uchar Cbyte )
53 {
54 1 CheckBusy();
C51 COMPILER V9.00 12864 08/26/2013 16:22:34 PAGE 2
55 1 SendByte(0xf8); //11111,RW(0),RS(0),0
56 1 SendByte(0xf0&Cbyte); //高四位
57 1 SendByte(0xf0&Cbyte<<4); //低四位(先执行<<)
58 1 }
59 void Lcd_WriteData(uchar Dbyte )
60 {
61 1 CheckBusy();
62 1 SendByte(0xfa); //11111,RW(0),RS(1),0
63 1 SendByte(0xf0&Dbyte); //高四位
64 1 SendByte(0xf0&Dbyte<<4); //低四位(先执行<<)
65 1 }
66 void Lcd_pos(uchar X,uchar Y) //行列确定
67 {
68 1 uchar pos;
69 1 if(X==0)
70 1 X=0X80;
71 1 else if(X==1)
72 1 X=0X90;
73 1 else if(X==2)
74 1 X=0X88;
75 1 else if(X==3)
76 1 X=0x98;
77 1 pos=X+Y;
78 1 Lcd_WriteCmd(pos);
79 1 }
80 void Lcd_Init(void)
81 {
82 1 Lcd_WriteCmd(0x30); //选择基本指令集
83 1 delay(1);
84 1 Lcd_WriteCmd(0x0c); //开显示(无游标、不反白)
85 1 delay(1);
86 1 Lcd_WriteCmd(0x01); //清除显示,并且设定地址指针为00H
87 1 delay(20);
88 1 }
89 void Lcd_Display()
90 {
91 1 uchar num;
92 1 Lcd_pos(0,0);
93 1 while(table[num]!='\0')
94 1 {
95 2 Lcd_WriteData(table[num]);
96 2 num++;
97 2 // delay(1);
98 2 }
99 1 num=0;
100 1 Lcd_pos(1,0);
101 1 while(table1[num]!='\0')
102 1 {
103 2 Lcd_WriteData(table1[num]);
104 2 num++;
105 2 // delay(1);
106 2 }
107 1 num=0;
108 1 Lcd_pos(2,0);
109 1 while(table[num]!='\0')
110 1 {
111 2 Lcd_WriteData(table2[num]);
112 2 num++;
113 2 // delay(1);
114 2 }
115 1 num=0;
116 1 Lcd_pos(3,0);
C51 COMPILER V9.00 12864 08/26/2013 16:22:34 PAGE 3
117 1 while(table[num]!='\0')
118 1 {
119 2 Lcd_WriteData(table3[num]);
120 2 num++;
121 2 // delay(1);
122 2 }
123 1 // Lcd_pos(0,4);
124 1 }
125
126 void Lcd_display_shu(uint S)
127 {
128 1 uint a,b,c,d;
129 1 d=S%10;
130 1 c=S/10%10;
131 1 b=S/100%10;
132 1 a=S/1000%10;
133 1 Lcd_pos(0,3);
134 1 Lcd_WriteData(a+0x30); //0x30就是将变量的转换,如果没有这个显示的结果会是a,并且,改变a的值的时候,不
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -