📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 07/19/2007 23:28:51 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <stdio.h>
2 //#include <reg51.h>
3 #include <absacc.h>
4 #include <intrins.h>
5 #include "me.h"
6 #include "hzK.h"
7
8 sbit WATCHDOG = P1^1;//0xB5; //T1
9 sbit RUNLED = P1^0; //T0
10
11
12 /***************一个10ms延时程序************************/
13
14 void delay10ms(unsigned int time)
15 {
16 1 unsigned int i;
17 1 unsigned int j;
18 1 for (i=0;i<time;i++)
19 1 for(j=0;j<1746;j++);
20 1 }
21
22
23 //sbit spk=P1^7;
24
25 #define cmd_reset 0x0a4
26 #define cmd_test 0x0bf
27 #define decode0 0x80
28 #define decode1 0x0c8
29 #define cmd_read 0x15
30 #define undecode 0x90
31 #define rtl_cycle 0x0a3
32 #define rtr_cycle 0x0a2
33 #define rtl_uncyl 0x0a1
34 #define rtr_uncyl 0x0a0
35 #define actctl 0x98
36 #define segon 0x0e0
37 #define segoff 0x0c0
38 #define blinkctl 0x88
39
40 /*
41 文章编号:909----加入日期:2003-12-5
42
43 『关闭窗口』
44
45 CVAVR写的关于12864的程序(ATMage8L/HD61202)(huxiangming)
46
47
48 主程序:
49 */
50 /************************************************************
51 LCD采用HD61202,128x64
52 控制单片机ATMage8L 8MHz
53 2003.12.5 huxiangming.
54 ************************************************************/
55
C51 COMPILER V7.50 MAIN 07/19/2007 23:28:51 PAGE 2
56 //#include <mega8.h>
57 //#include <delay.h>
58 //#include <stdio.h>
59 //#include "hz.h"
60
61
62 /*LCD引脚定义 PB0-7对应LCD DB0-DB7*/
63
64 sbit DI =P2^0; // 数据\指令 选择 DI
65 sbit RW =P2^1; // 读\写 选择
66 sbit E =P2^2; // 读\写使能
67 sbit CS1 =P2^3; // 片选1,低有效(前64列)
68 sbit CS2 =P2^4; // 片选2,低有效(后64列)
69 sbit RST=P2^5; // 复位
70
71 void LCD_NOP(void)
72 {
73 1 unsigned char i;
74 1 for(i=0;i<50;i++);
75 1 }
76
77 void Delay(int x)
78 {
79 1 int i,j;
80 1 for(j=0;j<x;j++)
81 1 {
82 2 for(i=0;i<250;i++);
83 2 }
84 1 }
85
86
87 //LCD左半屏写命令字
88 void LCD_Write_ComL(unsigned char x)
89 {
90 1 LCD_NOP();
91 1 CS1=1; CS2=0;
92 1 DI=0; //0=指令 1=数据
93 1 RW=0; //0=写 1=读
94 1 E=1;
95 1 P0=x;
96 1 LCD_NOP();
97 1 E=0;
98 1 }
99
100 //LCD左半屏写数据
101 void LCD_Write_DatL(unsigned char x)
102 {
103 1 LCD_NOP();
104 1 CS1=1;CS2=0;
105 1 DI=1; //0=指令 1=数据
106 1 RW=0; //0=写 1=读
107 1 E=1;
108 1 P0=x;
109 1 LCD_NOP();
110 1 E=0; //下降沿锁存数据
111 1 }
112
113 //LCD右半屏写命令字
114 void LCD_Write_ComR(unsigned char x)
115 {
116 1 LCD_NOP();
117 1 CS1=0;CS2=1;
C51 COMPILER V7.50 MAIN 07/19/2007 23:28:51 PAGE 3
118 1 DI=0; //0=指令 1=数据
119 1 RW=0; //0=写 1=读
120 1 E=1;
121 1 P0=x;
122 1 LCD_NOP();
123 1 E=0;
124 1 }
125
126 //LCD右半屏写数据
127 void LCD_Write_DatR(unsigned char x)
128 {
129 1 LCD_NOP();
130 1 CS1=0;CS2=1;
131 1 DI=1; //0=指令 1=数据
132 1 RW=0; //0=写 1=读
133 1 E=1;
134 1 P0=x;
135 1 LCD_NOP();
136 1 E=0; //下降沿锁存数据
137 1 }
138
139 //LCD左半屏读状态
140 unsigned char LCD_Read_StaL()
141 {
142 1 unsigned char x;
143 1 CS1=1;CS2=0;
144 1 DI=0; //0=指令 1=数据
145 1 RW=1; //0=写 1=读
146 1 E=1;
147 1 LCD_NOP();
148 1 x=P0;
149 1 E=0;
150 1 return x;
151 1 }
152 //LCD右半屏读状态
153 unsigned char LCD_Read_StaR()
154 {
155 1 unsigned char x;
156 1 CS1=0;CS2=1;
157 1 DI=0; //0=指令 1=数据
158 1 RW=1; //0=写 1=读
159 1 E=1;
160 1 LCD_NOP();
161 1 x=P0;
162 1 E=0;
163 1 return x;
164 1 }
165
166
167 //LCD清屏
168 void LCD_Clr(void)
169 {
170 1 unsigned char i,j;
171 1
172 1 for(j=0;j<8;j++)
173 1 {
174 2 LCD_Write_ComL(0xb8|j);
175 2 LCD_Write_ComL(0x40);
176 2 LCD_Write_ComR(0xb8|j);
177 2 LCD_Write_ComR(0x40);
178 2 for(i=0;i<64;i++)
179 2 {
C51 COMPILER V7.50 MAIN 07/19/2007 23:28:51 PAGE 4
180 3 LCD_Write_DatL(0x00);
181 3 LCD_Write_DatR(0x00);
182 3 }
183 2 }
184 1 }
185
186 //显示8x16字符,位置按8x8一个点来定 x:列坐标 y:行坐标 chrx:显示字符
187 LCD_WrCHr8x16(unsigned char x,unsigned char y,unsigned char chrx)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -