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