?? smc1602.lst
字號(hào):
C51 COMPILER V8.05a SMC1602 08/08/2007 23:55:41 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 source\SMC1602.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\SMC160
-2.lst) OBJECT(SMC1602.obj)
line level source
1 //*************************************************************************************************
2 //* *
3 //* ***************************SMC1602驅(qū)動(dòng)程序************************* *
4 //* *
5 //*************************************************************************************************
6
7
8 //*************************************************************************************************
9 //* *
10 //* ******************************頭文件及宏定義************************** *
11 //* *
12 //*************************************************************************************************
13 #include <at89x51.h>
14
15 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<端口設(shè)置宏定義>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
16 #define LCDRS P3_5 //寄存器選擇信號(hào):
17 // 0--數(shù)據(jù)寄存器;
18 // 1--指令寄存器。
19
20 #define LCDRW P3_6 //讀寫(xiě)信號(hào):
21 // 1--讀LCD;
22 // 0--寫(xiě)LCD。
23
24 #define LCDE P3_7 //片選信號(hào),當(dāng)輸入下降沿信號(hào)時(shí),
25 //執(zhí)行指令或傳送數(shù)據(jù)。
26
27 #define LCDPORT P0 //LCD數(shù)據(jù)接口。
28
29
30
31 //*************************************************************************************************
32 //* *
33 //* ******************************延時(shí)函數(shù)***************************** *
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 //* *
45 //* **************************把1個(gè)命令寫(xiě)入LCD************************* *
46 //* *
47 //*************************************************************************************************
48 void vWriteCMD(unsigned char ucCommand)
49 {
50 1 vDelay(); //先延時(shí)。
51 1
52 1 LCDE=1; //然后把LCD改為寫(xiě)入命令狀態(tài)。
53 1 LCDRS=0;
54 1 LCDRW=0;
C51 COMPILER V8.05a SMC1602 08/08/2007 23:55:41 PAGE 2
55 1
56 1 LCDPORT=ucCommand; //再輸出命令。
57 1
58 1 LCDE=0; //最后執(zhí)行命令。
59 1 }
60
61
62 //*************************************************************************************************
63 //* *
64 //* ***************************把1個(gè)數(shù)據(jù)寫(xiě)入LCD************************ *
65 //* *
66 //*************************************************************************************************
67 void vWriteData(unsigned char ucData)
68 {
69 1 vDelay(); //先延時(shí)。
70 1
71 1 LCDE=1; //然后把LCD改為寫(xiě)入數(shù)據(jù)狀態(tài)。
72 1 LCDRS=1;
73 1 LCDRW=0;
74 1
75 1 LCDPORT=ucData; //再輸出數(shù)據(jù)。
76 1
77 1 LCDE=0; //最后顯示數(shù)據(jù)。
78 1 }
79
80
81
82 //*************************************************************************************************
83 //* *
84 //* **********************把1個(gè)字符顯示到當(dāng)前光標(biāo)處********************* *
85 //* *
86 //*************************************************************************************************
87 void vShowOneChar(unsigned char ucChar)
88 {
89 1 switch(ucChar)
90 1 {
91 2 case ' ': vWriteData(0x20);break;
92 2 case '!': vWriteData(0x21);break;
93 2 case '"': vWriteData(0x22);break;
94 2 case '#': vWriteData(0x23);break;
95 2 case '$': vWriteData(0x24);break;
96 2 case '%': vWriteData(0x25);break;
97 2 case '&': vWriteData(0x26);break;
98 2 case '>': vWriteData(0x27);break;
99 2 case '(': vWriteData(0x28);break;
100 2 case ')': vWriteData(0x29);break;
101 2 case '*': vWriteData(0x2A);break;
102 2 case '+': vWriteData(0x2B);break;
103 2 case '-': vWriteData(0x2D);break;
104 2 case '.': vWriteData(0x2E);break;
105 2 case '/': vWriteData(0x2F);break;
106 2 case '=': vWriteData(0x3D);break;
107 2 case '<': vWriteData(0x3E);break;
108 2 case '?': vWriteData(0x3F);break;
109 2 case '^': vWriteData(0x5E);break;
110 2 case ':': vWriteData(0x3A);break;
111 2
112 2 case '0': vWriteData(0x30);break;
113 2 case '1': vWriteData(0x31);break;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -