?? lcm.lst
字號:
C51 COMPILER V8.02 LCM 06/09/2007 19:54:48 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LCM
OBJECT MODULE PLACED IN LCM.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE LCM.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //***********************************************************************
2 // 液晶控制芯片ST7920驅動源文件 *
3 // *
4 //硬件連接說明: *
5 // *
6 // RS(CS) ----------------------------- P3^1 *
7 // R/W(STD) ----------------------------- P3^4 *
8 // E(SCLK) ----------------------------- P3^5 *
9 // PSB ----------------------------- P0^1 *
10 // RST ----------------------------- P0^0 *
11 // DB0 ----------------------------- P1^0 *
12 // DB1 ----------------------------- P1^1 *
13 // DB2 ----------------------------- P1^2 *
14 // DB3 ----------------------------- P1^3 *
15 // DB4 ----------------------------- P1^4 *
16 // DB5 ----------------------------- P1^5 *
17 // DB6 ----------------------------- P1^6 *
18 // DB7(BUSY) ----------------------------- P1^7 *
19 // *
20 //***********************************************************************
21
22 #include <reg52.h>
23 #include<intrins.h>
24 #include<string.h>
25 #define uchar unsigned char
26 #define uint unsigned int
27
28 #define COUNT 0x10
29
30 //每行的首地址,基于RT12864-4M型液晶
31 #define LINE_ONE_ADDRESS 0x80
32 #define LINE_TWO_ADDRESS 0x90
33 #define LINE_THREE_ADDRESS 0x88
34 #define LINE_FOUR_ADDRESS 0x98
35
36 //基本指令集預定義
37 #define DATA 1 //數據位
38 #define COMMAND 0 //命令位
39 #define CLEAR_SCREEN 0x01 //清屏
40 #define ADDRESS_RESET 0x02 //地址歸零
41 #define BASIC_FUNCTION 0x30 //基本指令集
42 #define EXTEND_FUNCTION 0x34 //擴充指令集
43
44 //擴展指令集預定義
45 #define AWAIT_MODE 0x01 //待命模式
46 #define ROLLADDRESS_ON 0x03 //允許輸入垂直卷動地址
47 #define IRAMADDRESS_ON 0x02 //允許輸入IRAM地址
48 #define SLEEP_MODE 0x08 //進入睡眠模式
49 #define NO_SLEEP_MODE 0x0c //脫離睡眠模式
50 #define GRAPH_ON 0x36 //打開繪圖模式
51 #define GRAPH_OFF 0x34 //關閉繪圖模式
52
53
54 //并行位定義
55 sbit RS=P3^1;
C51 COMPILER V8.02 LCM 06/09/2007 19:54:48 PAGE 2
56 sbit RW=P3^4;
57 sbit E= P3^5;
58 sbit BUSY=P1^7;
59
60 //控制位定義
61 sbit PSB = P2^3; //串并選擇信號
62 sbit RST = P2^5; //復位信號
63
64
65 uchar code Tab1[]="北京信息科技大學";//顯示在第一行
66 uchar code Tab2[]="信息與通信工程系";//顯示在第二行
67 uchar code Tab3[]="電子信息工程專業";//顯示在第三行
68 uchar code Tab4[]="全國電子設計大賽";//顯示在第四行
69 uchar code Tab5[]={0x54,0xf4};
70
71 //*******************************************
72 //*函數名稱:void Parallel_Check_Busy(void) *
73 //*函數功能:并行方式查忙 *
74 //*形式參數:無 *
75 //*形參說明:無 *
76 //*返回參數:無 *
77 //*使用說明:無 *
78 //*******************************************
79 void Parallel_Check_Busy(void)
80 {
81 1 bit temp;
82 1 P1 = 0xff; //輸入前置1
83 1 RS = 0; //指令
84 1 RW = 1; //讀模式
85 1 do
86 1 {
87 2 E = 1; //使能
88 2 temp = BUSY;
89 2 E = 0;
90 2 }
91 1 while(temp);//等待不忙
92 1 }
93
94
95 //************************************************************************************
96 //*函數名稱:void Parallel_Write_LCD( bit b_Data_Command , unsigned char uc_Content ) *
97 //*函數功能:并行模式向LCD發送數據或指令 *
98 //*形式參數:bit b_Data_Command , unsigned char uc_Content *
99 //*形參說明:數據或指令的標志位,指令或數據的內容 *
100 //*返回參數:無 *
101 //*使用說明:無 *
102 //************************************************************************************
103 void Parallel_Write_LCD( bit b_Data_Command , unsigned char uc_Content )
104 {
105 1 Parallel_Check_Busy();
106 1 if(b_Data_Command)
107 1 {
108 2 RS = 1; //數據
109 2 RW = 0; //寫模式
110 2 }
111 1 else
112 1 {
113 2 RS = 0; //指令
114 2 RW = 0; //寫模式
115 2 }
116 1 P1=uc_Content;//數據放到P1口上
117 1 E = 1;
C51 COMPILER V8.02 LCM 06/09/2007 19:54:48 PAGE 3
118 1 _nop_();//很重要
119 1 _nop_();
120 1 _nop_();
121 1 E = 0;
122 1 }
123
124
125 //********************************************
126 //*函數名稱:uc_Parallel_Read_LCD_Data *
127 //*函數功能:并行讀LCD數據 *
128 //*形式參數:無 *
129 //*形參說明:無 *
130 //*返回參數:讀回的數據 *
131 //*使用說明:無 *
132 //********************************************
133 uchar uc_Parallel_Read_LCD_Data(void)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -