📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 08/08/2008 10:07:06 PAGE 1
C51 COMPILER V8.02, 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 /*************************************************************
2 程序名称:示波器OSC
3 功 能:示波器上显示汉字字符(可移动) PS2 串口调试
4 日 期:2008.7.19
5 *************************************************************/
6 #include <at89x51.h>
7 //#include<reg52.h> //这里调用reg52.h文件PS2无法用 ????
8 #include"zifu.h"
9 #include"PS2.h"
10 //#include"chuankou.h"
11
12 #define uint unsigned int
13 #define uchar unsigned char
14
15 #define XDATALINE P1 //0832输出
16 #define YDATALINE P2
17
18 sbit ZLocation = P3^5;
19 unsigned char Key_code;
20 //void put_date(unsigned dat);
21
22 unsigned char tabx[10];
23 unsigned char taby[10];
24 unsigned char Scale = 2;
25 unsigned char XOffset =0;
26 unsigned char YOffset =0;
27 char XAdd=0;
28 char YAdd=0;
29
30 /***********************************************************
31 函数名称:
32 函数功能:确定x坐标
33 入口参数:
34 出口参数:
35 备 注: 120x120
36 ***********************************************************/
37 void XLocation( unsigned char X )
38 {
39 1 XDATALINE = X;
40 1 }
41 /***********************************************************
42 函数名称:
43 函数功能:确定y坐标
44 入口参数:
45 出口参数:
46 备 注: 120x120
47 ***********************************************************/
48 void YLocation( unsigned char Y )
49 {
50 1
51 1 YDATALINE = Y;
52 1 }
53
54 /***********************************************************
55 函数名称:
C51 COMPILER V8.02 MAIN 08/08/2008 10:07:06 PAGE 2
56 函数功能: 延时
57 入口参数:
58 出口参数:
59 备 注:
60 ***********************************************************/
61 /*void Delay( unsigned int t )
62 {
63 while(t--);
64 }
65 */
66 /***********************************************************
67 函数名称:
68 函数功能:绘一个点
69 入口参数:
70 出口参数:
71 备 注:
72 ***********************************************************/
73 void DisPoint(unsigned char x,unsigned char y)
74 {
75 1 ZLocation = 1;
76 1 XLocation(x);
77 1 YLocation(y);
78 1 ZLocation = 0;
79 1 }
80
81 /***********************************************************
82 函数名称:
83 函数功能: 显示一个8x16的字符
84 入口参数:
85 出口参数:
86 备 注:
87 ***********************************************************/
88 void Dis8x16Char (unsigned x, unsigned y,unsigned m)
89 {
90 1 unsigned char i,j,k;
91 1 switch(flag)
92 1 {
93 2 case 1:
94 2 YAdd=YAdd-4; //上移四个单位
95 2 break;
96 2 case 2:
97 2 YAdd=YAdd+4; //下移四个单位
98 2 break;
99 2 case 3:
100 2 XAdd=XAdd-4; //左移
101 2 break;
102 2 case 4:
103 2 XAdd=XAdd+4; //右移
104 2 break;
105 2 }
106 1 for(k=0;k<2;k++) //K=0 显示在上8列 K=1 显示在下8列
107 1 for(i=0;i<8;i++)
108 1 for(j=0;j<8;j++)
109 1 {
110 2 if((ZIMU[m+j+8*k]>>i)&0x01)
111 2 {
112 3 DisPoint(x+(j*Scale)+XOffset,(y+(8*k+i)*Scale)+YOffset);
113 3 }
114 2 else
115 2 {
116 3 ZLocation = 1;
117 3 }
C51 COMPILER V8.02 MAIN 08/08/2008 10:07:06 PAGE 3
118 2 }
119 1
120 1 flag=0;
121 1 }
122
123 /***********************************************************
124 函数名称:
125 函数功能: 显示一个16x16的字符
126 入口参数:
127 出口参数:
128 备 注:
129 ***********************************************************/
130 void Dis16x16Char(unsigned x,unsigned y,unsigned char *zifu)
131 {
132 1 unsigned char i,j,k;
133 1 for(k=0;k<2;k++)
134 1 for(i=0;i<8;i++)
135 1 for(j=0;j<16;j++)
136 1 {
137 2 if((zifu[j+16*k]>>i)&0x01)
138 2 {
139 3 DisPoint(x+(j*Scale)+XOffset,(y+(8*k+i)*Scale)+YOffset);
140 3 }
141 2 else
142 2 {
143 3 ZLocation = 1;
144 3 }
145 2 }
146 1 }
147
148 /***********************************************************
149 函数名称:
150 函数功能:主函数
151 入口参数:
152 出口参数:
153 备 注:
154 ***********************************************************/
155 void main( void )
156 {
157 1 // uart_rest();
158 1 IT0 = 0; //设外部中断0为低电平触发
159 1 EA = 1;
160 1 EX0 = 1; //开中断
161 1
162 1 while(1)
163 1 {
164 2 Dis8x16Char(192+XAdd,128+YAdd,Key_code);
165 2 Dis16x16Char(0+64, 128,huan);
166 2 Dis16x16Char(32+64,128,ying);
167 2 Dis16x16Char(64+64,128,luo);
168 2 Dis16x16Char(96+64,128,tao);
169 2 Dis8x16Char(192+XAdd,128+YAdd,Key_code);
170 2
171 2 if (BF)
172 2 {
173 3 Decode(KeyV);
174 3
175 3 }
176 2 else
177 2 EA = 1; //开中断
178 2
179 2 }
C51 COMPILER V8.02 MAIN 08/08/2008 10:07:06 PAGE 4
180 1
181 1
182 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 672 ----
CONSTANT SIZE = 871 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 32 17
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 + -