📄 guangdian.lst
字号:
C51 COMPILER V6.12 GUANGDIAN 11/17/2008 11:38:25 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE GUANGDIAN
OBJECT MODULE PLACED IN .\guangdian.OBJ
COMPILER INVOKED BY: D:\Program Files\keil_2\C51\BIN\C51.EXE .\guangdian.c DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <absacc.h>
3 #include <intrins.h>
4 #define uint unsigned int
5 #define uchar unsigned char
6 #define D_PORT P1
7 sbit RS=P3^0;
8 sbit RW=P3^1;
9 sbit E=P3^2;
10 //sbit GD=P3^3;
11
12 sbit dj=P2^7;
13 sbit s1=P2^0;
14 sbit s2=P2^1;
15 sbit s3=P2^2;
16 //#define LCD_BUS P1
17 uchar i,j,ren;
18 uchar code table0[]="2008-11-12--WED";
19 uchar code table1[]="22: 58: 55";
20
21 void wait_free()
22 {
23 1 unsigned char retb;
24 1
25 1 do{
26 2 D_PORT=0xff;
27 2 RS=0;
28 2 RW=1;
29 2 E=1;
30 2 retb=D_PORT;
31 2
32 2 E=0;
33 2 }while((retb&0x80)!=0);
34 1 }
35
36 void write_commm(unsigned char cmd_dat,bit cd)
37 {
38 1 wait_free();
39 1
40 1 if(cd)RS=1;
41 1 else RS=0;
42 1 RW=0;
43 1 E=1;
44 1 D_PORT=cmd_dat;
45 1 E=0;
46 1 }
47
48 void delay(unsigned int t)
49 { unsigned int i,j;
50 1 for(i=0;i<t;i++)
51 1 for(j=0;j<10;j++)
52 1 ;
53 1 }
54
55 void hzkdis(unsigned char code *s)
C51 COMPILER V6.12 GUANGDIAN 11/17/2008 11:38:25 PAGE 2
56 { while(*s>0)
57 1 { write_commm(*s,1);
58 2 s++;
59 2 delay(500);
60 2 }
61 1 }
62
63
64 void lcdreset()
65 {
66 1
67 1 delay(2000);
68 1 write_commm(0x30,0); //选择基本指令集
69 1 write_commm(0x30,0); //选择8bit数据流
70 1 delay(5);
71 1 write_commm(0x0c,0); //开显示(无游标、不反白)
72 1 delay(5);
73 1 write_commm(0x01,0); //清除显示,并且设定地址指针为00H
74 1 delay(5);
75 1 write_commm(0x06,0); //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
76 1 }
77 void init()
78 {
79 1
80 1 //GD=0;
81 1 EA=1;
82 1 EX1=1;
83 1 // TMOD=0x90;
84 1 // TMOD=0x11;
85 1 //TH1=(65536-65534)/256;
86 1 // TL1=(65536-65534)%256;
87 1 IE1=1;
88 1 ET1=1;
89 1 IT1=1;
90 1 TR1=0;
91 1
92 1
93 1 }
94
95
96
97 void main()
98 {
99 1 init();
100 1 lcdreset();
101 1 delay(1000);
102 1 write_commm((0x80),0);
103 1 for(i=0;i<=16;i++)
104 1 {
105 2 write_commm(table0[i],1);delay(200);
106 2 }
107 1 delay(1000);
108 1
109 1 write_commm((0x90),0); delay(200);
110 1 for(j=0;j<9;j++)
111 1 {
112 2 write_commm(table1[j],1);delay(200);
113 2 }
114 1 delay(1000);
115 1
116 1 write_commm(0x0f,0);//开光标显示
117 1 write_commm(0x98,0);
C51 COMPILER V6.12 GUANGDIAN 11/17/2008 11:38:25 PAGE 3
118 1 hzkdis("设计创新研究室!"); delay(5000);
119 1 write_commm(0x0c,0);//关光标
120 1 while(1)
121 1 { ;
122 2 /* if(GD==1)
123 2 {
124 2 write_commm((0x88+3),0);delay(100);
125 2 ren++;
126 2 if(ren==10)ren=0;
127 2 write_commm((0x30+ren),1);
128 2 }
129 2 */
130 2
131 2 }
132 1
133 1 }
134
135
136 void exter1() interrupt 2
137 {
138 1 write_commm((0x88+3),0);delay(100);
139 1 ren++;
140 1 if(ren==10)ren=0;
141 1 write_commm((0x30+ren),1);
142 1
143 1
144 1 }
145 void timer1() interrupt 3
146 {
147 1
148 1 /* TH1=(65536-50000)/256;
149 1 TL1=(65536-50000)%256;
150 1
151 1 write_commm((0x88+3),0);delay(100);
152 1 ren++;
153 1 if(ren==10)ren=0;
154 1 write_commm((0x30+ren),1);
155 1 */
156 1 write_commm((0x88+3),0);delay(100);
157 1 ren++;
158 1 if(ren==10)ren=0;
159 1 write_commm((0x30+ren),1);
160 1
161 1
162 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 468 ----
CONSTANT SIZE = 43 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 2
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 + -