给出主函数的主要流程步骤:#include "system.h" #include "lcd12864_st7920.h" #include "delay.h" #include <stdio.h> #include "18b20.h" sbit buzzer = P1^3 ; sbit yeweiG =P1^0; sbit yeweiD =P1^1; unsigned char xdata dis0[16];//定义显示区域临时存储数组 unsigned char xdata dis1[16]; unsigned char xdata dis2[16]; unsigned char xdata dis3[16]; unsigned char i; unsigned char ReadTempFlag;//定义读时间标志 int temp1; //温度读取值 float temperature; unsigned long time_20ms=0; //定时器计数 float Sudu =0; //速度值 unsigned int PluNum = 0; //脉冲数 unsigned int disPlu = 0; //脉冲数 bit dealSuduFlag =0; //处理速度标志 float xdata juli=0; //距离 bit disFlag =0;//更新显示 unsigned char yeweiFlag = 'N';//液位标志 void main(void) { Init_Timer0(); //定时器0初始化 UART_Init(); DelayMs(200); //延时有助于稳定 Init_ST7920(); //初始化 ClrScreen(); buzzer =1; // sprintf(dis0,"20%02d-%02d-%02d ",(int)time_buf1[1],(int)time_buf1[2],(int)time_buf1[3],(int)time_buf1[7]);//年月日周 // LCD_PutString(0,1,dis0,16);//显示第时间 // // sprintf(dis0,"%02d:%02d:%02d ",(int)time_buf1[4],(int)time_buf1[5],(int)time_buf1[6]);//时分秒 // LCD_PutString(0,2,dis0,16);//显示第时间 // // LCD_PutString(0,3,"起:5元 3元/km ",16); //固定显示价格 // LCD_PutString(0,4,"实际价格",8); // uartSendStr("ready ok !",10); // Ds1302_Write_Time(); while(1) { if(dealSuduFlag == 1) { Sudu=(float)PluNum0.23.6/2; //m/s 20个脉冲为1圈 3s时间进行检测 disPlu = PluNum/2; //转速 PluNum=0; dealSuduFlag=0; juli = juli+Sudu0.2; //公里 } if(disFlag==1) //显示 { disFlag=0; //标志位清零 ReadTempFlag++; //读取温度计时 if(ReadTempFlag >= 3) { ReadTempFlag=0; temp1=ReadTemperature(); //读取温度 temperature=(float)temp10.0625; //温度值转换 } if((yeweiG == 0)&&(yeweiD == 0))//上下液位有水 { yeweiFlag = 'H'; } sprintf(dis0,"液位 %c ",yeweiFlag);//打印 LCD_PutString(0,1,dis0,16);//显示 sprintf(dis1,"温度 %4.1fC 40 ",temperature);//打印 LCD_PutString(0,2,dis1,16);//显示 if((Sudu>1.5)||(temperature>40)||(yeweiFlag=='L')) //异常情况 {buzzer = !buzzer;} } } }
时间: 2023-12-11 12:02:49 浏览: 30
1. 引入所需头文件:system.h、lcd12864_st7920.h、delay.h、stdio.h、18b20.h;
2. 定义引脚及变量:定义蜂鸣器、液位传感器引脚,定义显示区域临时存储数组、温度读取标志、温度读取值、速度值、脉冲数、距离、更新显示标志、液位标志;
3. 初始化定时器0、串口;
4. 清空 LCD 显示屏;
5. 进入无限循环;
6. 如果处理速度标志为1,则计算速度、脉冲数、距离,处理速度标志清零;
7. 如果更新显示标志为1,则更新 LCD 显示,包括液位、温度、异常情况等;
8. 循环结束,回到第5步。
相关问题
.\System\delay.h(4): error: #20: identifier "uint32_t" is undefined
这个错误是由于在您的代码中未包含正确的头文件导致的。"uint32_t" 是一个 C/C++ 中定义的无符号 32 位整数类型。要解决这个问题,您需要包含正确的头文件。
在 C++ 中,您可以包含 `<cstdint>` 头文件来引入这个类型的定义。请确保在使用 "uint32_t" 之前包含了该头文件。
示例代码:
```cpp
#include <cstdint>
// 使用 uint32_t
uint32_t myVariable;
```
如果您在 C 代码中遇到这个问题,您可以使用 `<stdint.h>` 头文件来引入 "uint32_t" 的定义。
示例代码:
```c
#include <stdint.h>
// 使用 uint32_t
uint32_t myVariable;
```
请注意,不同的编译器可能对头文件的命名有所不同,但这些头文件都应该包含 "uint32_t" 的定义。如果您使用的是其他特定的库或框架,可能还需要包含其他头文件或库来解决这个错误。
#include "cmsis_version.h" ..\SYSTEM\delay\delay.c: 0 warnings, 1 error compiling stm32f1xx_ll_usb.c... ..\core\core_cm3.h(63): error: #5: cannot open source input file "cmsis_version.h": No such file or directory
这个错误提示说找不到 "cmsis_version.h" 这个头文件,可能是库文件路径或者头文件路径没有设置正确。您需要确认您的开发环境是否正确安装了 CMSIS 库,并且正确设置了库文件路径和头文件路径。
如果您已经安装了 CMSIS 库,可以尝试在代码中添加以下语句:
```c
#include "path/to/cmsis_version.h"
```
其中 "path/to/" 是 CMSIS 库的安装路径。如果您不知道 CMSIS 库的安装路径,可以在开发环境中搜索该文件,找到其绝对路径。
另外,您还需要确认您的开发环境是否正确设置了编译选项。在编译选项中,需要将 CMSIS 库路径添加到库文件路径和头文件路径中。具体操作方法可以参考您所使用的开发环境的文档。