#include <SH79F1611.h>
#include <stdio.h>
#include "SysClock.h"
#include "EEPROM.h"
#include "Modbus.h"
#include "Timer_Init.h"
#include "Key_Board.h"
#include "Display.h"
#include "Sample_Value.h"
void main()
{
Read_EEPROM(0,sizeof(var),(unsigned char *)&var); //读取E2P中的数据
First_Init_VarStruct(); //结构体赋初值
SysClock_Set(); //设置系统时钟 29.4912MHZ
Key_Init(); //按键初始化
TM1622_Init(); //断码屏驱动芯片初始化
Sample_Init(); //采样部分初始化
Timer_Init(SYSCLK,bot_menu[var.bot]); //系统所用定时器初始化
Modbus_Init(SYSCLK,bot_menu[var.bot]); //Modbus初始化
EA = 1;
while(1)
{
/***20ms扫描一次按键状态***/
if(Key_Scan_20ms >= 20)
{
Key_Scan_20ms = 0;
Key_Scan(); //按键扫描
}
/***100ms跟新一次屏幕***/
if(Screen_Refresh_100ms >= 100)
{
Screen_Refresh_100ms = 0;
Key_Handle_Func(); //按键处理函数
Screen_Display_Func(); //屏幕显示函数
}
/***设置菜单超时计时***/
if(Set_Menu_Timeouy_5s >= 3000)
{
Set_Parameter = 0; //恢复显示状态
Set_Menu_Timeouy_5s = 0; //超时计时清0
PVMENU = RUN; //进入工作模式
}
/***modbus接收一帧数据成功***/
if(Modus_Receive_Ok == 1)
{
Modus_Receive_Ok = 0;
Modus_Handle_Data_Func(); //处理接收到的一帧数据
}
/***读取到一次采样值 对采样值做线性修正***/
if(Sample_Value_ok == 1)
{
Sample_Value_ok = 0;
Handle_Sample_Value_Func(); //处理采样数据
}
/***用户设置数据保存***/
if(User_Save_Flag == 1)
{
User_Save_Flag = 0;
Write_Full_Struct(0); //写数据地址0
}
/***工厂设置数据保存***/
if(Factory_Save_Flag == 1)
{
Factory_Save_Flag = 0;
Write_Full_Struct(256); //写数据地址256
}
}
}
肆:放弃欧洲杯,面向过程的程序设计
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 成长记录-连载(三十六) ——我的第一篇五千字长文,说了什么,你一定想不到 并不是不想每天写公众号,而是之前思考怎...
- 一、别把对方当欠债人 剧中子君,就是把老公当成了欠债的,在老公面前,永远颐指气使,把一个唯唯诺诺的老实人,吓的进退...