📄 yejing.lst
字号:
C51 COMPILER V7.50 YEJING 04/10/2008 22:19:37 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE YEJING
OBJECT MODULE PLACED IN .\obj\yejing.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE src\yejing.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\yejing.lst) OBJECT(.\obj
-\yejing.obj)
line level source
1 /**************************************************************************
2 文件名:YEJING.C
3 功能:在指定位置显示单个字符,字符串,汉字和数值
4 编程者:0
5 时间:
6 **************************************************************************/
7 /**********************文件包含*******************************************/
8 #include <reg51.h>
9 #include <intrins.h>//////用到_nop_();///////
10 #include <math.h>////用到取绝对值/////
11 #include "yejing.h"
12
13 /**********************变量定义 **********************************/
14 #define Busy 0x80
15
16 #define DataPort P1 /* 定义LCD模块数据端口 */
17 sbit RS = P3^6; /* 定义LCD模块控制引脚,可根据需要进行修改 */
18 sbit RW = P3^5;
19 sbit E = P3^4;
20
21 //#define DataPort P0 /* 定义LCD模块数据端口 */
22 //sbit RS = P3^7; /* 定义LCD模块控制引脚,可根据需要进行修改 */
23 //sbit RW = P3^6;
24 //sbit E = P3^5;
25
26
27 //code uchar array4[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e,0x2b,0x2d};
28 // 0 1 2 3 4 5 6 7 8 9 . + - //
29 //上面用{}的方式定义数组在程序中不容易处理,并且要查字符的代码值,很复杂//////
30 //code char array1[]="我爱马海莉! %";////数组结束一定要检查是否需要加空格接着才有%作为结束标志/////
31 //code char array2[]="我爱汪亲朋! %";////数组结束一定要检查是否需要加空格接着才有%作为结束标志/////
32 //code char array3[]="welcome!%";////数组结束一定要检查是否需要加空格接着才有%作为结束标志/////
33 code char array4[]="0123456789.+- %";//数组结束一定要检查是否需要加空格接着才有%作为结束标志//////
34 ///////此处不要轻易改动//////
35 code char array5[]="数值超范围! %";////数组结束一定要检查是否需要加空格接着才有%作为结束标志/////
36 //code char array6[]="";//
37 /****************************** 短延时函数 ******************************/
38 void Delay5Ms(void)
39 {
40 1 uint i = 5552;
41 1 while(i--);
42 1 }
43
44 /****************************** 长延时函数 ******************************/
45 void Delay400Ms(void)
46 {
47 1 uchar i = 5;
48 1 uint j;
49 1 while(i--)
50 1 {
51 2 j=7269;
52 2 while(j--);
53 2 };
54 1 }
C51 COMPILER V7.50 YEJING 04/10/2008 22:19:37 PAGE 2
55
56 /****************************** 读忙状态函数 ****************************
57 * 功能:在正常读写操作之前检测LCD模块的忙状态,
58 * DB7 = 0:LCD控制器空闲;DB7 = 1:LCD控制器忙
59 *************************************************************************/
60 void WaitForEnable( void )
61 {
62 1 DataPort = 0xff;
63 1 RS =0;
64 1 RW = 1;
65 1 _nop_();
66 1 E = 1;
67 1 _nop_();
68 1 _nop_();
69 1 while( DataPort & Busy );////如果Busy的值为1,则一直在此处等待,直到为0/////
70 1 E = 0;
71 1 }
72
73 /****************************** 命令写入函数 ****************************
74 * 功能:向LCD模块写入命令字符CMD,
75 * 若 AttribC = 1 检测忙信号,若 AttribC = 0 不检测忙信号
76 ************************************************************************/
77 void LcdWriteCommand(uchar CMD,uchar AttribC)
78 {
79 1 if (AttribC) WaitForEnable(); ///检测忙信号/////
80 1 RS = 0;
81 1 RW = 0;
82 1 _nop_();
83 1 DataPort = CMD; /// 将命令字符送往数据口 ///
84 1 _nop_();
85 1 E = 1;
86 1 _nop_();
87 1 _nop_();
88 1 E = 0;
89 1 }
90
91 /**************************** 光标定位函数 ******************************
92 * 功能: 将显示光标定位到posx,posy坐标处
93 ************************************************************************/
94 /*void LocateXY( char posx,char posy)
95 {
96 uchar temp;
97 temp = posx & 0x0f;////????//////
98 // posy &= 0x01;
99 switch(posy)
100 {
101 case 0: temp+=0x80;
102 break;
103 case 1: temp+=0xc0;
104 break;
105 case 2: temp+=0x94;
106 break;
107 case 3: temp+=0xd4;
108 break;
109 default: break;
110 }
111 LcdWriteCommand(temp,1);///要检测忙信号/////
112 }*/
113 /**************************** 光标定位函数 ******************************
114 * 功能: 将显示光标定位到posx,posy坐标处
115 ************************************************************************/
116 void LocateXY( char posx,char posy)
C51 COMPILER V7.50 YEJING 04/10/2008 22:19:37 PAGE 3
117 {
118 1 uchar temper;////temper为在哪行哪个位置显示的液晶的命令值//////
119 1 temper = posx & 0x07;//对于HD44780、YLF12232F液晶的第一行为00-07/////
120 1 ///////第二行为10-17//////////
121 1 posy &= 0x01;//////液晶只有两行, posy 的值只能为0和1//////
122 1 if ( posy )temper |= 0x10;////如果为第二行,temp的值为90-97/////
123 1 temper |= 0x80; ////如果为第一行,temp的值为80-87/////
124 1 LcdWriteCommand(temper,1);///要检测忙信号/////
125 1 }
126 /***************************** 显示字符写入函数 ***************************
127 * 功能:在当前光标位置显示一个字符
128 **************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -