1 Star 0 Fork 0

仁矜羽/C52

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.LST 6.63 KB
一键复制 编辑 原始数据 按行查看 历史
仁矜羽 提交于 2021-04-24 20:20 . 2.0电子指南针定版
C51 COMPILER V9.60.0.0 MAIN 04/24/2021 20:12:31 PAGE 1
C51 COMPILER V9.60.0.0, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: E:\Keil_v5\C51\C51\BIN\C51.EXE main.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(.\SRC) DEBUG OBJECTEXTE
-ND TABS(2)
line level source
1 //******************************************************************************/
2 #include "REG52.h"
3 #include "oled.h"
4 #include "qmc.h"
5 #include "GPS.h"
6 #include "includes.h"
7 #include <stdio.h>
8
9 volatile bit UPINFO = 0; //1传输
10 volatile bit CHPAGE = 0; //1测试页
11 volatile bit PAUSE = 1; //1暂停
12 volatile bit RESET = 0; //1修复
13
14 void usartSendstr(char *s)
15 {
16 1 char *ptr = s;
17 1 while( *ptr!= '\0')
18 1 {
19 2 SBUF=*ptr;
20 2 while(!TI);TI=0;
21 2 ptr++;
22 2 }
23 1 SBUF='\r';
24 1 while(!TI);TI=0;
25 1 SBUF='\n';
26 1 while(!TI);TI=0;
27 1 }
28
29
30 void HomePage(void)
31 {
32 1 OLED_ShowCHinese(32,3,8);
33 1 OLED_ShowCHinese(32+16,3,9);
34 1 OLED_ShowCHinese(32+32,3,10);
35 1 OLED_ShowCHinese(32+48,3,11);
36 1 }
37
38 void TaskPage(void)
39 {
40 1 OLED_Clear();
41 1 }
42
43
44 void KEY_Task(void)
45 {
46 1 if(KEY_UPINFO)
47 1 UPINFO = ~UPINFO;
48 1 if(KEY_CHPAGE)
49 1 {
50 2 if(CHPAGE)//测试页
51 2 {
52 3 //测试页进入欢迎页需要暂停系统,停止上传
53 3 UPINFO = 0;
54 3 PAUSE = 1;
C51 COMPILER V9.60.0.0 MAIN 04/24/2021 20:12:31 PAGE 2
55 3 //显示欢迎字符
56 3 OLED_Clear();
57 3 OLED_Clear();
58 3 HomePage();
59 3
60 3 }
61 2 else
62 2 {
63 3 UPINFO = 0;
64 3 PAUSE = 0;
65 3 TaskPage();
66 3 }
67 2 CHPAGE = ~CHPAGE;
68 2 }
69 1
70 1 if(KEY_PAUSE && CHPAGE)
71 1 PAUSE = ~PAUSE;
72 1 if(KEY_RESET)
73 1 RESET = ~RESET;
74 1 delay_ms(20);
75 1 }
76
77 int angle;
78 void QMC_Task(void)
79 {
80 1 // 东(0) 南(1) 西(2) 北(3) 经(4) 纬(5) 度(6)
81 1 u8 lbuf[16] = {'\0'};
82 1 int ret;
83 1 #if 1
84 1 ret=QMC_Read(lbuf);
85 1 ret+=95;
86 1 angle = ret;
87 1 if(ret<=400)
88 1 {
89 2 if(ret>360)
90 2 ret-=360;
91 2 sprintf(lbuf,"%-3d",ret);
92 2 }
93 1 else
94 1 return;
95 1 #else
ret=QMC_Read(lbuf);
#endif
98 1 if(ret<70 && ret>=20)
99 1 {
100 2 OLED_ShowCHinese(0,0,0);
101 2 OLED_ShowCHinese(16,0,3);
102 2 //东北
103 2 }
104 1 else if(ret<110 && ret>=70)
105 1 {
106 2 //东
107 2 OLED_ShowCHinese(0,0,0);
108 2 OLED_ShowCHinese(16,0,7);
109 2 }
110 1 else if(ret<160 && ret>=110)
111 1 {
112 2 //东南
113 2 OLED_ShowCHinese(0,0,0);
114 2 OLED_ShowCHinese(16,0,1);
115 2 }
116 1 else if(ret<200 && ret>=160)
C51 COMPILER V9.60.0.0 MAIN 04/24/2021 20:12:31 PAGE 3
117 1 {
118 2 OLED_ShowCHinese(0,0,1);
119 2 OLED_ShowCHinese(16,0,7);
120 2 }
121 1 else if(ret<250 && ret>=200)
122 1 {
123 2 //
124 2 OLED_ShowCHinese(0,0,2);
125 2 OLED_ShowCHinese(16,0,1);
126 2 }
127 1 else if(ret<290 && ret>=250)
128 1 {
129 2 //
130 2 OLED_ShowCHinese(0,0,2);
131 2 OLED_ShowCHinese(16,0,7);
132 2 }
133 1 else if(ret<340 && ret>=290)
134 1 {
135 2 //
136 2 OLED_ShowCHinese(0,0,2);
137 2 OLED_ShowCHinese(16,0,3);
138 2 }
139 1 else
140 1 {
141 2 //
142 2 OLED_ShowCHinese(0,0,3);
143 2 OLED_ShowCHinese(16,0,7);
144 2 }
145 1 OLED_ShowString(80,0,lbuf,16);
146 1 if(UPINFO)
147 1 {
148 2 //TI = 1;
149 2 //printf("角度:%-3d\r\n", ret);
150 2 usartSendstr(lbuf);
151 2 //TI = 0;
152 2 }
153 1 }
154
155
156 char cnt = 0;
157 int main(void)
158 {
159 1 //矽统1初始化
160 1 P1 = 0X00;
161 1 OLED_Init();
162 1 OLED_Clear();
163 1 GPS_Init();
164 1 QMC_Init();
165 1 HomePage();
166 1 while(1)
167 1 {
168 2 //解析按键
169 2 KEY_Task();
170 2 if(cnt<8)
171 2 cnt++;
172 2 else
173 2 {
174 3 cnt = 0;
175 3 if(!PAUSE)//主任务
176 3 {
177 4 GPS_Read();
178 4 QMC_Task();
C51 COMPILER V9.60.0.0 MAIN 04/24/2021 20:12:31 PAGE 4
179 4 }
180 3 }
181 2 delay_ms(40);
182 2 }
183 1 }
184
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 643 ----
CONSTANT SIZE = 21 ----
XDATA SIZE = 3 18
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yjr_ty/C52.git
git@gitee.com:yjr_ty/C52.git
yjr_ty
C52
C52
master

搜索帮助