?? main.lst
字號:
C51 COMPILER V7.07 MAIN 03/29/2008 16:25:47 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 /************************芯普電子51單片機學習板*************************/
3 /************************************程序詳解************************************/
4 //將1602液晶的1-16腳對應插上位于學習板左上的1602的插針J14的1-16腳,
5 //板上注釋了第一腳的位置,位于最右邊
6 //編譯執行,下載程序,
7 //
8
9 #include <AT89X52.H>
10 #define uchar unsigned char
11 #define uint unsigned int
12 #define dat_delay 200
13 #define dat_port P0 //1602液晶數據接口,由跳線跳接
14 #define com_port P2 //1602液晶控制接口,由跳線跳接
15
16 sbit rs=com_port^0;
17 sbit rw=com_port^1;
18 sbit lcden=com_port^2;
19
20 uchar table1[]="SIMPLE SN51A_1.1";
21 uchar table2[]="GOOD LUCK TO YOU";
22
23 void delay(uint x)
24 {
25 1 uint a,b;
26 1 for(a=x;a>0;a--)
27 1 for(b=10;b>0;b--);
28 1 }
29
30 void delay1(uint x)
31 {
32 1 uint a,b;
33 1 for(a=x;a>0;a--)
34 1 for(b=600;b>0;b--);
35 1 }
36
37 void write_com(uchar com) ////1602液晶控制函數
38 {
39 1
40 1 rs=0;
41 1 rw=0;
42 1 // lcden=0;
43 1 dat_port=com;
44 1 delay(dat_delay );
45 1 lcden=1;
46 1 delay(dat_delay );
47 1 lcden=0;
48 1
49 1 }
50
51 void write_date(uchar dat) ////1602液晶寫數據函數
52 {
53 1
54 1 rs=1;
55 1 rw=0;
C51 COMPILER V7.07 MAIN 03/29/2008 16:25:47 PAGE 2
56 1 dat_port=dat;
57 1 // lcden=0;
58 1 delay(dat_delay );
59 1 lcden=1;
60 1 delay(dat_delay );
61 1 lcden=0;
62 1
63 1 }
64
65 void init1602() //1602液晶初始化函數
66 {
67 1
68 1 write_com(0x38); //液晶顯示方式設置
69 1 delay(dat_delay );
70 1 // write_com(0x0f); //光標開 閃爍
71 1 write_com(0x0c); //光標不開 不閃爍
72 1 delay(dat_delay );
73 1 write_com(0x06); //數據指針順序設置
74 1 delay(dat_delay );
75 1 write_com(0x01); //液晶屏幕清屏命令
76 1 delay(dat_delay );
77 1 }
78
79
80
81 void main()
82 {
83 1 uchar a=0;
84 1 init1602(); //初始化1602液晶
85 1 //1602液晶顯示器地址:第一行從0X80開始--0X81-0X82---...0X8F
86 1 // :第二行從0XC0開始--0XC1-0XC2---...0XCF
87 1
88 1 write_com(0x80);//從第一行第一個字符顯示"IMPLE SN51A_1.1"
89 1 delay(dat_delay );//#define dat_delay 200
90 1 for(a=0;a<16;a++)
91 1 {
92 2 write_date(table1[a]);
93 2 delay(dat_delay );
94 2 }
95 1
96 1 write_com(0xc0);//從第二行第一個字符顯示"GOOD LUCK TO YOU"
97 1 delay(dat_delay );
98 1 for(a=0;a<16;a++)
99 1 {
100 2 write_date(table2[a]);
101 2 delay(dat_delay );
102 2 }
103 1
104 1 delay1(300);
105 1
106 1
107 1 for(a=0;a<40;a++) //循環移位//左移16之后再移3個空位從右邊出來
108 1 {
109 2 write_com(0x18); //左移位指令
110 2 delay1(20);
111 2 }
112 1
113 1 while(1);
114 1
115 1 }
116
C51 COMPILER V7.07 MAIN 03/29/2008 16:25:47 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 211 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 34 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -