?? w_cfx.lst
字號:
C51 COMPILER V8.09 W_CFX 05/08/2009 22:43:30 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE W_CFX
OBJECT MODULE PLACED IN w_cfx.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE w_cfx.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <absacc.h>
2 #include <reg51.h>
3 #include <stdarg.h>
4 #include <stdio.h>
5 #include <math.h>
6 #define ulong unsigned long
7 #define uint unsigned int
8 #define uchar unsigned char
9 extern void w_dot(uchar x,uchar y,bit f);//繪點子程序
10
11 //0<K<1,y大的在終點
12 void wzx1(uchar xs1,uchar ys1,uchar xe1,uchar ye1,bit f)//
13 {
14 1 uchar xs,ys,xe,ye;
15 1 int err=0;
16 1 xs=xs1;ys=ys1;xe=xe1;ye=ye1;
17 1 w_dot(xs,ys,f);
18 1 while(xs<xe)
19 1 {
20 2 if(err<0)
21 2 {
22 3 w_dot(++xs,ys,f);
23 3 err+=ye-ys;
24 3 }
25 2 else
26 2 {
27 3 w_dot(++xs,++ys,f);
28 3 err+=ye-ys-(xe-xs);
29 3 }
30 2 }
31 1 }
32
33 //K>1,ye>ys
34 void wzx2(uchar xs1,uchar ys1,uchar xe1,uchar ye1,bit f)//
35 {
36 1 uchar xs,ys,xe,ye;
37 1 int err=0;
38 1 xs=xs1;ys=ys1;xe=xe1;ye=ye1;
39 1 w_dot(xs,ys,f);
40 1 while(ys<ye)
41 1 {
42 2 if(err<0)
43 2 {
44 3 w_dot(++xs,++ys,f);
45 3 err+=ye-ys-(xe-xs);
46 3 }
47 2 else
48 2 {
49 3 w_dot(xs,++ys,f);
50 3 err+=-(xe-xs);
51 3 }
52 2 }
53 1 }
54
55 //-1<K<0,ye>ys
C51 COMPILER V8.09 W_CFX 05/08/2009 22:43:30 PAGE 2
56 void wzx3(uchar xs1,uchar ys1,uchar xe1,uchar ye1,bit f)
57 {
58 1 uchar xs,ys,xe,ye;
59 1 int err=0;
60 1 xs=xs1;ys=ys1;xe=xe1;ye=ye1;
61 1 w_dot(xs,ys,f);
62 1 while(xs>xe)
63 1 {
64 2 if(err<0)
65 2 {
66 3 w_dot(--xs,ys,f);
67 3 err+=ye-ys;
68 3 }
69 2 else
70 2 {
71 3 w_dot(--xs,++ys,f);
72 3 err+=ye-ys-abs(xe-xs);
73 3 }
74 2 }
75 1 }
76
77 //K<-1,ye>ys
78 void wzx4(uchar xs1,uchar ys1,uchar xe1,uchar ye1,bit f)
79 {
80 1 uchar xs,ys,xe,ye;
81 1 int err=0;
82 1 xs=xs1;ys=ys1;xe=xe1;ye=ye1;
83 1 w_dot(xs,ys,f);
84 1 while(ys<ye)
85 1 {
86 2 if(err<0)
87 2 {
88 3 w_dot(--xs,++ys,f);
89 3 err+=ye-ys-abs(xe-xs);
90 3 }
91 2 else
92 2 {
93 3 w_dot(xs,++ys,f);
94 3 err+=-abs(xe-xs);
95 3 }
96 2 }
97 1 }
98 //*************直線***************ye>=ys
99 void wzx(uchar xs1,uchar ys1,uchar xe1,uchar ye1,bit f)
100 {
101 1 float k=(float)(ye1-ys1)/(float)(xe1-xs1);
102 1 if(0<=k && k<=1) wzx1(xs1,ys1,xe1,ye1,f);
103 1 else if(k>1) wzx2(xs1,ys1,xe1,ye1,f);
104 1 else if(-1<=k && k<0) wzx3(xs1,ys1,xe1,ye1,f);
105 1 else wzx4(xs1,ys1,xe1,ye1,f);
106 1 }
107 //**************長方形********************
108 void wcfx(uchar x0,uchar y0,uchar l,uchar h,bit f)
109 {
110 1 wzx(x0,y0,x0+l,y0,f);//1→
111 1 wzx(x0+l,y0,x0+l,y0+h,f);//2↓
112 1 wzx(x0,y0+h,x0+l,y0+h,f);//3→
113 1 wzx(x0,y0,x0,y0+h,f);//4↓
114 1 }
115
116
117
C51 COMPILER V8.09 W_CFX 05/08/2009 22:43:30 PAGE 3
118
119
120
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1080 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 52
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 6
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -