?? shizhonglcd.lst
字號:
C51 COMPILER V6.12 SHIZHONGLCD 03/28/2008 14:24:16 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE SHIZHONGLCD
OBJECT MODULE PLACED IN .\shizhonglcd.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE .\shizhonglcd.c DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 unsigned code table[]={0x30,0x31,0x32,0x33,
5 0x34,0x35,0x36,0x37,
6 0x38,0x39};
7 uchar t,h,m,s,a,b,c,d,e,f;
8 sbit RS=P0^2;
9 sbit RW=P0^3;
10 sbit E=P0^4;
11 void delay(uchar x);
12 void init();
13 void display();
14 void fbusy();
15 void wc51r(uchar i);
16 void wc51ddr(uchar j);
17 void chaifen();
18 main()
19 { init();
20 1 while(1)
21 1 {
22 2 chaifen();
23 2 display();
24 2 }
25 1 }
26 void timer() interrupt 1 //時鐘中斷函數
27 {
28 1 TH0=(65536-50000)/256;
29 1 TL0=(65536-50000)%256;
30 1 t++;
31 1 if(t==20)
32 1 {t=0;
33 2 s++;
34 2 if(s==60)
35 2 {s=0;
36 3 m++;
37 3 if(m==60)
38 3 {m=0;
39 4 h++;
40 4 if(h==24)
41 4 h=00;
42 4 }
43 3 }
44 2 }
45 1 }
46 void init()
47 {
48 1 TMOD=0x01;
49 1 TH0=(65536-50000)/256;
50 1 TL0=(65536-50000)%256;
51 1 EA=1;
52 1 ET0=1;
53 1 TR0=1;
54 1 h=14;
55 1 m=24;
C51 COMPILER V6.12 SHIZHONGLCD 03/28/2008 14:24:16 PAGE 2
56 1 wc51r(0x01); //清屏
57 1 wc51r(0x3c); //使用8位數據,顯示兩行,使用5x7的字型
58 1 wc51r(0x0e); //顯示器開,字符不閃爍
59 1 wc51r(0x08); //字符不動,光標自動一格
60 1 wc51r(0x06);
61 1 wc51r(0x82);
62 1 wc51ddr(0x20);
63 1 wc51r(0x83);
64 1 wc51ddr(0x20);
65 1 wc51r(0x84);
66 1 wc51ddr(0x32);
67 1 wc51r(0x85);
68 1 wc51ddr(0x30);
69 1 wc51r(0x86);
70 1 wc51ddr(0x30);
71 1 wc51r(0x88);
72 1 wc51ddr(0x38);
73 1 wc51r(0x89);
74 1 wc51ddr(0x2e);
75 1 wc51r(0x8a);
76 1 wc51ddr(0x30);
77 1 wc51r(0x8b);
78 1 wc51ddr(0x33);
79 1 wc51r(0x8c);
80 1 wc51ddr(0x2e);
81 1 wc51r(0x8d);
82 1 wc51ddr(0x32);
83 1 wc51r(0x8e);
84 1 wc51ddr(0x37);
85 1 }
86 void fbusy() //檢查忙標志
87 {
88 1 RS=0;RW=1;
89 1 E=1;
90 1 while((P2&0x80)==0x80);
91 1 E=0;
92 1 }
93 void wc51r(uchar i) //寫命令函數
94 {
95 1 fbusy();
96 1 E=0;RS=0;RW=0;
97 1 E=1;
98 1 P2=i;
99 1 E=0;
100 1 }
101 void wc51ddr(uchar j) //寫數據函數
102 {
103 1 fbusy();
104 1 E=0;RS=1;RW=0;
105 1 E=1;
106 1 P2=j;
107 1 E=0;
108 1 }
109 void display()
110 {
111 1
112 1 wc51r(0xc0);
113 1 wc51ddr(0x54);
114 1 wc51r(0xc1);
115 1 wc51ddr(0x49);
116 1 wc51r(0xc2);
117 1 wc51ddr(0x4d);
C51 COMPILER V6.12 SHIZHONGLCD 03/28/2008 14:24:16 PAGE 3
118 1 wc51r(0xc3);
119 1 wc51ddr(0x45);
120 1 wc51r(0xc4);
121 1 wc51ddr(0x20);
122 1 wc51r(0xc5);
123 1 wc51ddr(table[e]);
124 1 wc51r(0xc6);
125 1 wc51ddr(table[f]);
126 1 wc51r(0xc7);
127 1 delay(2000);
128 1 wc51ddr(0x3a);
129 1 wc51r(0xc8);
130 1 wc51ddr(table[c]);
131 1 wc51r(0xc9);
132 1 wc51ddr(table[d]);
133 1 wc51r(0xca);
134 1 delay(2000);
135 1 wc51ddr(0x3a);
136 1 wc51r(0xcb);
137 1 wc51ddr(table[a]);
138 1 wc51r(0xcc);
139 1 wc51ddr(table[b]);
140 1 delay(2000);
141 1
142 1 }
143 void chaifen()
144 { a=s/10;
145 1 b=s%10;
146 1 c=m/10;
147 1 d=m%10;
148 1 e=h/10;
149 1 f=h%10;
150 1
151 1 }
152 void delay (uchar x) //延時1ms函數
153 { uchar y,z;
154 1 for(;x>0;x--)
155 1 for(y=2;y>0;y--)
156 1 for(z=248;z>0;z--);
157 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 510 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 ----
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 + -