有偿!求大神帮忙简化一下程序。

博主在寻求大神帮助简化一个光伏电子工程的单片机控制器程序,涉及到ADC控制、串口通信、显示功能和模式判断等多个方面。
摘要由CSDN通过智能技术生成

有偿!求大神帮忙简化一下程序。
必当重谢!
是一个光伏电子工程的一个单片机控制器的程序,自己想了好久就是没有头绪,求大神点拨一下
在这里插入代码片#include <STC15F2K60S2.H>
#include “stdio.h”
#include “intrins.h”

typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;

#define ADC_POWER 0x80 //ADC电源控制位
#define ADC_FLAG 0x10 //ADC完成标志
#define ADC_START 0x08 //ADC起始控制位
#define ADC_SPEEDLL 0x00 //540个时钟
#define ADC_SPEEDL 0x20 //360个时钟
#define ADC_SPEEDH 0x40 //180个时钟
#define ADC_SPEEDHH 0x60 //90个时钟

sbit en485 = P1^6;

sbit kbti = P2^0;
sbit kbto = P2^1;
sbit D11 = P2^4;
sbit D10 = P2^5;
sbit D9 = P2^6;
sbit endis = P2^7;

sbit c15v = P3^2;
sbit c15vo = P3^3;
sbit k15vo = P3^4;
sbit k15vi = P3^5;
sbit c12v = P3^6;
sbit cbt12v = P3^7;

sbit s0 = P4^1;
sbit s1 = P4^2;
sbit s2 = P4^3;
sbit s3 = P4^4;

u8 disnum = 0;
u8 BCDtab[4] = 0;
u8 distab[18] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80,0x00
};

u8 ZR_mode;
u8 temp[8];
u8 ZR_temp[3];
u8 FG_mode = 1;
u8 ZR_state = 0;
u8 Screen_num = 0;
u8 Modbus_state = 0;

u16 F_volt = 0;
u16 G_volt = 0;
u16 SC_volt = 0;
u16 Bat_volt = 0;
u16 time_count = 0;
u16 Wind_speed = 0;

void display(void)
{
s0 = 0;
s1 = 0;
s2 = 0;
s3 = 0;
if(disnum == 0)
{
s0 = 1;
}
else if(disnum == 1)
{
s1 = 1;
}
else if(disnum == 2)
{
s2 = 1;
}
else if(disnum == 3)
{
s3 = 1;
}
P0 = BCDtab[disnum];
disnum++;
if(disnum >= 4) disnum = 0;
}

void Data_show(u16 indata,u8 p_s)
{
u8 i;
for(i = 0;i < 4;i++)
{
BCDtab[3-i] = distab[indata%10];
indata /= 10;
}
if(p_s < 4)
{
BCDtab[p_s] |= 0x80;
}
}

void Timer0In

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值