?? 1602lcd_yd.lst
字號:
C51 COMPILER V7.50 1602LCD_YD 02/05/2006 15:23:50 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 1602LCD_YD
OBJECT MODULE PLACED IN 1602LCD_YD.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE 1602LCD_YD.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************
2 /*
3 /*ME300B單片機開發系統演示程序 - LCD1602 移動顯示C
4 /*
5 /* 顯示內容: CHINESE
6 /* NEW YEAR
7 /*
8 /* 顯示方式:
9 /* 1、LCD第一行顯示: CHINESE
10 /* LCD第二行顯示: NEW YEAR
11 /* 2、先將兩行字符寫入DDRAM中,然后從右至左逐字移出顯示。
12 /* 3、在指定位置停留1.6秒后,閃爍2次,清屏。
13 /* 4、反復循環上述顯示方式。
14 /*
15 /* 郵箱: gguoqing@willar.com
16 /* 網站: http://www.willar.com
17 /* 作者: gguoqing
18 /* 時間: 2006/01/23
19 /*
20 /*【版權】COPYRIGHT(C)偉納電子 www.willar.com ALL RIGHTS RESERVED
21 /*【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!
22 /*
23 /*******************************************************************/
24
25 #include <reg51.h>
26 #include <intrins.h>
27
28 #define uchar unsigned char
29 #define uint unsigned int
30
31 sbit LCD_RS = P2^0;
32 sbit LCD_RW = P2^1;
33 sbit LCD_EN = P2^2;
34
35 uchar code dis1[] = {" CHINESE "};
36 uchar code dis2[] = {" NEW YEAR "};
37
38
39 /*******************************************************************/
40 /*
41 /* 延時子程序
42 /*
43 /*******************************************************************/
44
45 void delay(int ms)
46 {
47 1 int i;
48 1 while(ms--)
49 1 {
50 2 for(i = 0; i< 250; i++)
51 2 {
52 3 _nop_();
53 3 _nop_();
54 3 _nop_();
55 3 _nop_();
C51 COMPILER V7.50 1602LCD_YD 02/05/2006 15:23:50 PAGE 2
56 3 }
57 2 }
58 1 }
59
60 /*******************************************************************/
61 /*
62 /*檢查LCD忙狀態
63 /*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數據。
64 /*
65 /*******************************************************************/
66
67 bit lcd_busy()
68 {
69 1 bit result;
70 1 LCD_RS = 0;
71 1 LCD_RW = 1;
72 1 LCD_EN = 1;
73 1 _nop_();
74 1 _nop_();
75 1 _nop_();
76 1 _nop_();
77 1 result = (bit)(P0&0x80);
78 1 LCD_EN = 0;
79 1 return result;
80 1 }
81
82 /*******************************************************************/
83 /*
84 /*寫指令數據到LCD
85 /*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。
86 /*
87 /*******************************************************************/
88
89 void lcd_wcmd(uchar cmd)
90 {
91 1 while(lcd_busy());
92 1 LCD_RS = 0;
93 1 LCD_RW = 0;
94 1 LCD_EN = 0;
95 1 _nop_();
96 1 _nop_();
97 1 P0 = cmd;
98 1 _nop_();
99 1 _nop_();
100 1 _nop_();
101 1 _nop_();
102 1 LCD_EN = 1;
103 1 _nop_();
104 1 _nop_();
105 1 _nop_();
106 1 _nop_();
107 1 LCD_EN = 0;
108 1 }
109
110 /*******************************************************************/
111 /*
112 /*寫顯示數據到LCD
113 /*RS=H,RW=L,E=高脈沖,D0-D7=數據。
114 /*
115 /*******************************************************************/
116
117 void lcd_wdat(uchar dat)
C51 COMPILER V7.50 1602LCD_YD 02/05/2006 15:23:50 PAGE 3
118 {
119 1 while(lcd_busy());
120 1 LCD_RS = 1;
121 1 LCD_RW = 0;
122 1 LCD_EN = 0;
123 1 P0 = dat;
124 1 _nop_();
125 1 _nop_();
126 1 _nop_();
127 1 _nop_();
128 1 LCD_EN = 1;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -