📄 123.lst
字号:
C51 COMPILER V8.12 123 04/11/2009 13:46:01 PAGE 1
C51 COMPILER V8.12, COMPILATION OF MODULE 123
OBJECT MODULE PLACED IN 123.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 123.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include<math.h>
3
4 #define uchar unsigned char
5 #define uint unsigned int
6 #define DATA_PORT P0 //定义数据端口
7 #define PI 3.1415
8
9 sbit BUSY=P3^4;
10 sbit REQ=P3^5;
11 sbit RESET=P3^6;
12 sbit P10=P1^0;
13
14 uchar i=0x08;
15 uchar n=2,A=1;
16
17 /******LCD初始化***********/
18 void lcd_init()
19 {
20 1 BUSY=1;
21 1 REQ=0;
22 1 RESET=1;
23 1 }
24
25 /********写数据************/
26 void wr_lcd(uchar dat)
27 {
28 1 while(BUSY);
29 1 DATA_PORT=dat;
30 1 REQ=1;
31 1 while(BUSY);
32 1 REQ=0;
33 1 }
34
35 /******写指令与地址*******/
36 void wr_zhiling(uchar com,uchar addr_x,uchar addr_y)
37 {
38 1 wr_lcd(com);
39 1 wr_lcd(addr_x);
40 1 wr_lcd(addr_y);
41 1 }
42 void delay(uint z)
43 {
44 1 uint x;
45 1 uchar y;
46 1 for(x=z;x>0;x--)
47 1 for(y=110;y>0;y--);
48 1 }
49
50
51 void display_biankuang()
52 {
53 1 uchar i,j,k,l;
54 1 for(i=0x90;i<0xc0;i++) //边框横
55 1 {
C51 COMPILER V8.12 123 04/11/2009 13:46:01 PAGE 2
56 2 wr_zhiling(0xf2,i,0x00);
57 2 wr_zhiling(0xf2,i,0x3f);
58 2 }
59 1 for(j=0x01;j<0x3f;j++) //边框竖
60 1 {
61 2 wr_zhiling(0xf2,0x90,j);
62 2 wr_zhiling(0xf2,0xbf,j);
63 2 }
64 1
65 1 for(k=0x08;k<0x3c;k++) //坐标纵轴
66 1 {
67 2 wr_zhiling(0xf2,0x08,k);
68 2 }
69 1 for(l=0x09;l<0x89;l++) //坐标横轴
70 1 {
71 2 wr_zhiling(0xf2,l,0x1f);
72 2 }
73 1
74 1
75 1
76 1
77 1 }
78 void zuobiao_data(uchar k) //在液晶上绘点 ,绘上半部分
79 {
80 1 uchar a;
81 1 a=k;
82 1 wr_zhiling(0xf2,i,0x1f-a);
83 1 }
84 void zuobiao_data1(uchar k) //绘下半部分
85 {
86 1 uchar b;
87 1 b=k;
88 1 wr_zhiling(0xf2,i,0x20+b); //0x20的正确设置,下半部分终于出了波形
89 1 }
90
91 void display_data()
92 {
93 1 uchar c,k;
94 1 uint j;
95 1 float a;
96 1 while(1)
97 1 { P10=~P10; //小灯亮
98 2 for(j=0;j<=1;)
99 2 {
100 3 a=A*sin(n*2*PI*j/360);
101 3 if(a>=0) //当sinx为正时,绘上半部分点
102 3 {
103 4 c=(uchar)(100*a);
104 4 k=c/5; //纵坐标每个格,值为0.05
105 4 zuobiao_data(k);
106 4 j=j+3;
107 4 i=i+0x01;
108 4 // delay(100);
109 4
110 4 }
111 3 if (a<0) //当sinx为负时,绘下半部分点
112 3 {
113 4
114 4 a=-a; //转换为正数,好运算
115 4 c=(uchar)(100*a);
116 4 k=c/5;
117 4 zuobiao_data1(k);
C51 COMPILER V8.12 123 04/11/2009 13:46:01 PAGE 3
118 4 j=j+3;
119 4 i=i+0x01;
120 4 //delay(100);
121 4
122 4
123 4 }
124 3 }
125 2 i=0x08; //一个大循环后,x置回起始点
126 2 wr_lcd(0xf4); //清屏
127 2 display_biankuang(); //边框
128 2
129 2 }
130 1 }
131
132
133
134 void main()
135 {
136 1
137 1 lcd_init();
138 1 wr_lcd(0xf4);
139 1 display_biankuang();
140 1 display_data();
141 1 while(1);
142 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 458 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 8
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 + -