📄 hd44780.lst
字号:
C51 COMPILER V7.50 HD44780 09/13/2007 21:34:44 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE HD44780
OBJECT MODULE PLACED IN HD44780.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE HD44780.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3
4 sbit GND_LCD=P1^7;
5 sbit rs=P1^0;
6 sbit rw=P1^1;
7 sbit e=P1^2;
8
9 unsigned char busy(void);
10 void ctrl(unsigned char);
11 void wd_h(unsigned char);
12 void wd_l(unsigned char);
13 unsigned char rd(void);
14 void write(unsigned char);
15 void init(void);
16 void NOP(void);
17
18 void disp(unsigned char);
19
20
21 unsigned int time;
22
23 void int_t0 (void) interrupt 1 {
24 1 TL0=TL0+30;TH0=0xfb;
25 1 time++;
26 1 }
27
28 void wait(unsigned int w){
29 1 time=0;
30 1 while (time<w) {}
31 1 }
32
33
34 void init(void) {
35 1 unsigned char i;
36 1 P1=0;
37 1 for (i=0;i<2;i++) {
38 2 wd_l(0x30);
39 2 wait(5);
40 2 }
41 1 wd_h(0x20);
42 1 ctrl(0x28);
43 1 ctrl(0x8);
44 1 ctrl(3);
45 1 ctrl(6);
46 1 disp(0);
47 1 ctrl(1);
48 1 ctrl(8);
49 1 ctrl(0xe);
50 1 ctrl(0x80);
51 1 }
52
53
54 unsigned char busy(void){
55 1 P1=0;
C51 COMPILER V7.50 HD44780 09/13/2007 21:34:44 PAGE 2
56 1 return(rd());
57 1 }
58
59 unsigned char rd(void) {
60 1 unsigned char dat0,dat1;
61 1 rw=1;
62 1 rs=0;
63 1 P1=P1|0x78;
64 1 e=1;
65 1 dat0=P1;
66 1 e=0;
67 1 e=1;
68 1 dat1=P1;
69 1 P1=0;
70 1 return(((dat0<<1)&0xf0) | ((dat1>>3)&0xf) );
71 1 }
72
73 void ctrl(unsigned char dat){
74 1 while (busy()>0x7f) {};
75 1 rw=rs=0;
76 1 wd_h(dat);
77 1 wd_l(dat);
78 1 }
79 void wd_h(unsigned char dat){
80 1 e=1;
81 1 P1=P1|((dat&0xf0)>>1);
82 1 e=0;
83 1 P1=P1&0x87;
84 1 }
85 void wd_l(unsigned char dat){
86 1 e=1;
87 1 P1=P1|((dat&0xf)<<3);
88 1 e=0;
89 1 P1=0;
90 1 }
91 void write(unsigned char dat) {
92 1 while (busy()>0x7f) {};
93 1 rw=0;
94 1 rs=1;
95 1 wd_h(dat);
96 1 wd_l(dat);
97 1 }
98
99 //===============HD44780读写程序====================================
100 //===================================================
101 void disp(unsigned char i) {
102 1 unsigned char j;
103 1 ctrl(1);
104 1 ctrl(0x80);
105 1 for (j=0;j<6;j++) write(rd[i][j]);
*** ERROR C216 IN LINE 105 OF HD44780.C: subscript on non-array or too many dimensions
106 1 write(' ');
107 1 ctrl(0xc0);
108 1 write('-');
109 1 write('-');
110 1 write('-');
111 1 write('-');
112 1 write('-');
113 1 write('-');
114 1 write('k');
115 1 write('m');
116 1 }
C51 COMPILER V7.50 HD44780 09/13/2007 21:34:44 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -