📄 smc1602.lst
字号:
C51 COMPILER V8.05a SMC1602 08/08/2007 08:55:15 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE SMC1602
OBJECT MODULE PLACED IN SMC1602.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\SMC1602.c BROWSE INCDIR(.\include;.\include) DEBUG OBJECTEXTEND PRI
-NT(.\SMC1602.lst) OBJECT(SMC1602.obj)
line level source
1 //*************************************************************************************************
2 //* *
3 //* ***************************SMC1602驱动程序************************* *
4 //* *
5 //*************************************************************************************************
6
7
8 //*************************************************************************************************
9 //* *
10 //* ******************************头文件及宏定义************************** *
11 //* *
12 //*************************************************************************************************
13 #include <at89x51.h>
14
15 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<端口设置宏定义>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
16 #define LCDRS P3_5 //寄存器选择信号:
17 // 0--数据寄存器;
18 // 1--指令寄存器。
19
20 #define LCDRW P3_6 //读写信号:
21 // 1--读LCD;
22 // 0--写LCD。
23
24 #define LCDE P3_7 //片选信号,当输入下降沿信号时,
25 //执行指令或传送数据。
26
27 #define LCDPORT P2 //LCD数据接口。
28
29
30
31 //*************************************************************************************************
32 //* *
33 //* ******************************延时函数***************************** *
34 //* *
35 //*************************************************************************************************
36 void vDelay()
37 {
38 1 unsigned int uiCount;
39 1 for(uiCount=0;uiCount<250;uiCount++);
40 1 }
41
42 //*************************************************************************************************
43 //* *
44 //* **************************把1个命令写入LCD************************* *
45 //* *
46 //*************************************************************************************************
47 void vWriteCMD(unsigned char ucCommand)
48 {
49 1 vDelay(); //先延时。
50 1
51 1 LCDE=1; //然后把LCD改为写入命令状态。
52 1 LCDRS=0;
53 1 LCDRW=0;
54 1
C51 COMPILER V8.05a SMC1602 08/08/2007 08:55:15 PAGE 2
55 1 LCDPORT=ucCommand; //再输出命令。
56 1
57 1 LCDE=0; //最后执行命令。
58 1 }
59
60
61 //*************************************************************************************************
62 //* *
63 //* ***************************把1个数据写入LCD************************ *
64 //* *
65 //*************************************************************************************************
66 void vWriteData(unsigned char ucData)
67 {
68 1 vDelay(); //先延时。
69 1
70 1 LCDE=1; //然后把LCD改为写入数据状态。
71 1 LCDRS=1;
72 1 LCDRW=0;
73 1
74 1 LCDPORT=ucData; //再输出数据。
75 1
76 1 LCDE=0; //最后显示数据。
77 1 }
78
79
80
81 //*************************************************************************************************
82 //* *
83 //* **********************把1个字符显示到当前光标处********************* *
84 //* *
85 //*************************************************************************************************
86 void vShowOneChar(unsigned char ucChar)
87 {
88 1 switch(ucChar)
89 1 {
90 2 case ' ': vWriteData(0x20);break;
91 2 case '!': vWriteData(0x21);break;
92 2 case '"': vWriteData(0x22);break;
93 2 case '#': vWriteData(0x23);break;
94 2 case '$': vWriteData(0x24);break;
95 2 case '%': vWriteData(0x25);break;
96 2 case '&': vWriteData(0x26);break;
97 2 case '>': vWriteData(0x27);break;
98 2 case '(': vWriteData(0x28);break;
99 2 case ')': vWriteData(0x29);break;
100 2 case '*': vWriteData(0x2A);break;
101 2 case '+': vWriteData(0x2B);break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -