📄 cm160128c.lst
字号:
C51 COMPILER V7.06 CM160128C 11/02/2007 20:16:44 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CM160128C
OBJECT MODULE PLACED IN CM160128C.OBJ
COMPILER INVOKED BY: C:\Program Files\keilc\C51\BIN\C51.EXE CM160128C.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /********************************
2 名称:CM160128液晶显示程序
3 设计:河南科技大学 创达科技 陈仲库
4 设计日期:2007年5月13日晚
5 技术交流:kuzi00@163.com QQ:86828048
6
7 接口说明
8 LCD_CD=P3^5;LCD_WR=P3^6;LCD_RD=P3^7;
9 CE取低电平 直接接GND
10 P2口为数据口 间接方式 控制T6963C
11 *********************************/
12 #include <reg51.h>
13 #include <LCD_ziku.c> //LCD_ziku.c 含有字模
14
15
16 sbit LCD_CE=P3^4;
17 sbit LCD_CD=P3^5;
18 sbit LCD_WR=P3^6;
19 sbit LCD_RD=P3^7;
20
21 #define unint unsigned int
22 void LCD_Busy()
23 {
24 1 unint dat;
25 1 do{
26 2 P2=0xff;
27 2 LCD_CD=1;
28 2 LCD_RD=0;
29 2 dat=P2;
30 2 LCD_RD=1;
31 2 dat=0x03&dat;
32 2 }while(dat!=0x03);
33 1 }
34
35 void LCD_Data(dat)
36 {
37 1 LCD_Busy();
38 1 LCD_CD=0;
39 1 P2=dat;
40 1 LCD_WR=0;
41 1 LCD_WR=1;
42 1 }
43
44 void LCD_Com1(command)//写有 1 个参数命令
45 {
46 1 LCD_Busy();
47 1 LCD_CD=1;
48 1 P2=command;
49 1 LCD_WR=0;
50 1 LCD_WR=1;
51 1 }
52
53 void LCD_Com2(dat, command)//写有 2 个参数命令
54 {
55 1 LCD_Data(dat);
C51 COMPILER V7.06 CM160128C 11/02/2007 20:16:44 PAGE 2
56 1 LCD_Com1(command);
57 1 }
58
59 void LCD_Com3(data1, data2, command)//写有 3 个参数命令
60 {
61 1 LCD_Data(data1);
62 1 LCD_Data(data2);
63 1 LCD_Com1(command);
64 1 }
65
66 void LCD_Clear()//清屏
67 {
68 1 long i;
69 1 LCD_Com3(0x00,0x00,0x24);
70 1 LCD_Com1(0xb0);
71 1 for(i=0;i<20500;i++) LCD_Data(0x00);//160*128
72 1 LCD_Com1(0xb2);
73 1 }
74
75
76 void LCD_Init()//初始化LCD
77 {
78 1 LCD_CD=1;
79 1 LCD_WR=1;
80 1 LCD_RD=1;
81 1 LCD_Com1(0x90);
82 1 LCD_Com3( 0x00,0x00,0x42 );
83 1 LCD_Com3( 0x14,0x00,0x43);
84 1 LCD_Com1(0x80);
85 1 LCD_Com1(0x98);
86 1 LCD_Clear();
87 1 }
88
89 //汉字显示 参数说明LCD_HZ(行点阵数,列点阵,第几个字)行0~127 列 0~159
90 void LCD_HZ(unint x,unint y,unint n)
91 {
92 1 char i;
93 1 long StartAddr;
94 1 StartAddr=x*320+y; //
95 1 for(i=0;i<16;i++)
96 1 {
97 2 LCD_Com3(StartAddr,((StartAddr)/256),0x24);
98 2 LCD_Com2(HZTable [n][i*2] , 0xc0);
99 2 LCD_Com2( HZTable[n][i*2+1], 0xc4);
100 2 StartAddr=StartAddr + 20;
101 2 }
102 1 }
103
104 //显示字母
105 void LCD_Char(char x,char y,char ch)
106 {
107 1 char i, dat;
108 1 int StartAddr;
109 1 StartAddr=x*320+y;
110 1 for(i=0;i<16;i++)
111 1 {
112 2 dat=ASCII816[ch][i];
113 2 LCD_Com3(StartAddr,StartAddr>>8, 0x24);
114 2 LCD_Com2(dat, 0xc4);
115 2 StartAddr=StartAddr + 20;
116 2 }
117 1 }
C51 COMPILER V7.06 CM160128C 11/02/2007 20:16:44 PAGE 3
118
119 void charline(char x,char y ,char n,char m)
120 {
121 1 char i;
122 1 for(i=0;i<m;i++)
123 1 LCD_Char(x,y+i,n+i);
124 1 }
125
126 //显示数字
127 void LCD_No(char x,char y,char ch)
128 {
129 1 char i, dat;
130 1 int StartAddr;
131 1 StartAddr=x*320+y;
132 1 for(i=0;i<16;i++)
133 1 {
134 2 dat=number[ch][i];
135 2 LCD_Com3(StartAddr,StartAddr>>8, 0x24);
136 2 LCD_Com2(dat, 0xc4);
137 2 StartAddr=StartAddr + 20;
138 2 }
139 1 }
140
141 void main(void)
142 {
143 1 char i;
144 1 LCD_CE=0;
145 1 LCD_Init();
146 1
147 1 LCD_HZ(1,5,0); //陈
148 1 LCD_HZ(1,9,1); //仲
149 1 LCD_HZ(1,13,2); //库
150 1
151 1 LCD_HZ(3,0,3);//河南科技大学 机电工程学院
152 1 LCD_HZ(3,2,4);
153 1 LCD_HZ(3,4,5);
154 1 LCD_HZ(3,6,6);
155 1 LCD_HZ(3,8,7);
156 1 LCD_HZ(3,10,8);
157 1 LCD_HZ(3,12,9);
158 1 LCD_HZ(3,14,10);
159 1 LCD_HZ(3,16,11);
160 1 LCD_HZ(3,18,12);
161 1 LCD_HZ(5,7,13);
162 1 LCD_HZ(5,11,14);
163 1 charline(2,4,0,11); //ChenZhongku
164 1 for (i=0;i<10;i++) //在最下行(第8行)显示0123456789 //显示数字
165 1 LCD_No(7,5+i,i);
166 1 while(1)
167 1 {
168 2 };
169 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 949 ----
CONSTANT SIZE = 816 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 25
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V7.06 CM160128C 11/02/2007 20:16:44 PAGE 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -