📄 display.lst
字号:
C51 COMPILER V8.02 DISPLAY 03/17/2008 18:36:34 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN display.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE display.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 * 程序功能 : 中央运算单元测试 LCD 现实单元
3 *
4 * 应用软件 : KEIL C
5 *
6 * 版 本 : KEIL 8.02
7 *
8 * 硬 件 : STC89C58RD+
9 *
10 * 创建时间 : 2007-09-28
11 *
12 * 创 建 人 : 吕坤
13 *
14 ********************************************************************/
15 /* 说 明 :
16
17 这里已经定义好了lcd的数据输出针脚,现在默认是使用P0口,如果需要修改,请打开diaplay.h文件自行修改
18 外部调用时可以使用以下方法:
19 例:
20 charadds(123); LCD显示 123
21 WriteDataLCD('-') LCD现实 -
22 WriteCommandLCD(0XC0); 将光标指定到第二行第一个字符处开始显示
23 WriteCommandLCD(0X06); 将光标指定到第一行第一个字符处开始显示
24 WriteCommandLCD(0x01); 显示清屏
25 */
26 #include<reg52.h>
27 #include<math.h>
28
29 #define LCD_Data P1 //LCD数据与控制线
30
31 sbit LCD_RS=P2^2; //液晶控制
32 sbit LCD_RW=P2^1; //液晶写入
33 sbit LCD_E=P2^0; //液晶使能
34
35 unsigned int place[6];
36
37
38
39
40 void Delay5Ms(void); //命令延时程序
41 void LCDInit(void); //LCD初始化程序
42 void charadds(unsigned int a) ; //将整形数据拆解成char数组并送显
43 void WriteDataLCD(unsigned char WDLCD); //想LCD发送数据
44 void WriteCommandLCD(unsigned char WCLCD); //向LCD发送命令
45 /********************LCD初始化**********************/
46
47 void LCDInit(void)
48 {
49 1 LCD_Data = 0x00;
50 1 WriteCommandLCD(0x38);
51 1 Delay5Ms();
52 1 WriteCommandLCD(0x38); //显示模式设置,开始要求每次检测忙信号
53 1 WriteCommandLCD(0x08); //关闭显示
54 1 WriteCommandLCD(0x06); // 显示光标移动设置
55 1 WriteCommandLCD(0x01); //显示清屏
C51 COMPILER V8.02 DISPLAY 03/17/2008 18:36:34 PAGE 2
56 1 WriteCommandLCD(0x0C); // 显示开及光标设置
57 1 }
58
59 /********************LCD命令执行********************/
60
61 void WriteCommandLCD(unsigned char WCLCD)
62 {
63 1 Delay5Ms();
64 1 LCD_Data = WCLCD;
65 1 LCD_RS = 0;
66 1 LCD_RW = 0;
67 1 LCD_E = 1;
68 1 Delay5Ms();
69 1 LCD_E = 0;
70 1 }
71
72 /********************LCD数据发送********************/
73
74 void WriteDataLCD(unsigned char WDLCD)
75 {
76 1 Delay5Ms();
77 1 LCD_Data = WDLCD;
78 1 LCD_RS = 1;
79 1 LCD_RW = 0;
80 1 LCD_E = 1;
81 1 Delay5Ms();
82 1 LCD_E = 0;
83 1 }
84
85 /********************延时***************************/
86
87 void Delay5Ms(void)
88 {
89 1 unsigned int TempCyc = 3000;
90 1 for(;TempCyc>0;TempCyc--);
91 1 }
92
93 /********************整形转char型并送显**************/
94
95 void charadds(unsigned int a)
96 {
97 1 unsigned long c,p=0;
98 1 if(a==0)
99 1 {
100 2 WriteDataLCD('0');
101 2 return ;
102 2 }
103 1 c=a/1000000000;
104 1 if(c!=0)
105 1 {
106 2 WriteDataLCD(c+0x30); //将转换后的数字送入LCD显示
107 2 p=1;
108 2 }
109 1 c=(a%1000000000)/100000000;
110 1 if(c!=0 || p==1)
111 1 { //将转换后的数字送入LCD显示
112 2 WriteDataLCD(c+0x30); //c+30 是为了使LCD现实字符型的数字符号,这里将个位数字转换成了asc码
113 2 p=1;
114 2 }
115 1 c=(a%100000000)/10000000;
116 1 if(c!=0 || p==1)
117 1 {
C51 COMPILER V8.02 DISPLAY 03/17/2008 18:36:34 PAGE 3
118 2 WriteDataLCD(c+0x30); //将转换后的数字送入LCD显示
119 2 p=1;
120 2 }
121 1 c=(a%10000000)/1000000;
122 1 if(c!=0 || p==1)
123 1 { //将转换后的数字送入LCD显示
124 2 WriteDataLCD(c+0x30);
125 2 p=1;
126 2 }
127 1 c=(a%1000000)/100000;
128 1 if(c!=0 || p==1)
129 1 {
130 2 WriteDataLCD(c+0x30); //将转换后的数字送入LCD显示
131 2 p=1;
132 2 }
133 1 c=(a%100000)/10000;
134 1 if(c!=0 || p==1)
135 1 {
136 2 WriteDataLCD(c+0x30); //将转换后的数字送入LCD显示
137 2 p=1;
138 2 }
139 1 c=(a%10000)/1000;
140 1 if(c!=0 || p==1)
141 1 {
142 2 WriteDataLCD(c+0x30); //将转换后的数字送入LCD显示
143 2 p=1;
144 2 }
145 1 c=(a%1000)/100;
146 1 if(c!=0 || p==1)
147 1 {
148 2 WriteDataLCD(c+0x30); //将转换后的数字送入LCD显示
149 2 p=1;
150 2 }
151 1 c=(a%100)/10;
152 1 if(c!=0 || p==1)
153 1 {
154 2 WriteDataLCD(c+0x30); //将转换后的数字送入LCD显示
155 2 }
156 1 c=a%10+0x30;
157 1 WriteDataLCD(c); //将转换后的数字送入LCD显示
158 1 }
159
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 920 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 12
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 + -