新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 电动车充电控制器制作

电动车充电控制器制作

作者: 时间:2016-12-01 来源:网络 收藏
几天熬夜控制器终于完工,买别人的要几百块一套自己做只要几十块就能OK,还算是有点价值,不罗嗦直接上代码,依然是以往的风格但注释更加详细,有兴趣的骚年可以参考下


工程文件及hex文件下载:http://www.51hei.com/f/chongdianqia.rar

#include //包含头文件
#include//包函_nop_延时函数的头文件
#define uchar unsigned char//宏定义
#define uint unsigned int//宏定义
//595芯片控制脚定义
sbit SH=P1^7;//HC595移位控制
sbit ST=P1^6;//HC595锁存更新显示
sbit DS=P1^5;//HC595串行数据输入
//输入引脚定义
sbit TB=P1^4; //投币键
sbit shu1=P1^3; //第一组输入选择
sbit shu2=P1^2; //第二组输入选择
sbit shu3=P1^1; //第三组输入选择
sbit shu4=P1^0; //第四组输入选择
//输出引脚定义
sbit out1=P3^0; //第一组输出
sbit out2=P3^1; //第二组输出
sbit out3=P3^2; //第三组输出
sbit out4=P3^3; //第四组输出
//计时用变量
int cou=0; //计数器
int TIME_SS=0;//秒
int TIME_MM=0;//分
int TIME_HH=0;//时
//显示缓存数组,第一个元素为显示数据,后面两个为显示八段码的地址已经初始赋值后面的程序只要维护显示数据元素
char P_HC[4][4][3]={{{0x00,0x00,0x01},{0x00,0x00,0x02},{0x00,0x00,0x04},{0x00,0x00,0x08}},{{0x00,0x00,0x10},{0x00,0x00,0x20},{0x00,0x00,0x40},{0x00,0x00,0x80}},{{0x00,0x01,0x00},{0x00,0x02,0x00},{0x00,0x04,0x00},{0x00,0x08,0x00}},{{0x00,0x10,0x00},{0x00,0x20,0x00},{0x00,0x40,0x00},{0x00,0x80,0x00}}};
//定时器数据数组,分别代表四个输出口所剩时间值单位为分钟
int TIME[4]={0,0,0,0};
//投币器计数器,存储投币数量选择输出口时一个投币值可以增加某一输出口240分钟的定时值
int TOUBI=0;
///////////////////////////////////////////////////
void delay(unsigned char x) //延时函数
{
unsigned char i,j;
for(i = 0;i < x;i++)
for(j = 0;j < 200;j++);

}
///////////////////////////////////////////////////
//高位先入
void sendbyte(char Rdate)//HC595串口输入一个字节
{
char a;
char date=Rdate;
for(a=0;a<8;a++)
{
SH=0;
if(date&0x80)//先将最高位移入
{
DS=1;
SH=1;
}
else
{
DS=0;
SH=1;
}
date=date<<1;//输入的字节位左移
}
}
///////////////////////////////////////////////////
void print(void)
{
//显示函数功能是把显示缓存数组中的数据显示到八段码上
int i,j,k;
for(k=0;k<4;k++)
{
for(j=0;j<4;j++)
{
for(i=0;i<3;i++)
{
sendbyte(P_HC[k][j][i]);
}
ST=0;
_nop_();
_nop_();
ST=1;
}
}
}
///////////////////////////////////////////////////
void P_HC_fuzhi(int x,int y,int z )
{
//显示数组显示数据赋值函数,第一个常数为八段码组别,第二个为八段码位置 ,第三个位赋值数据(0-9)
switch(z)
{
case 0:
P_HC[x][y][0]=0xc0;
break;
case 1:
P_HC[x][y][0]=0xf9;
break;
case 2:
P_HC[x][y][0]=0xa4;
break;
case 3:
P_HC[x][y][0]=0xb0;
break;
case 4:
P_HC[x][y][0]=0x99;
break;
case 5:
P_HC[x][y][0]=0x92;
break;
case 6:
P_HC[x][y][0]=0x82;
break;
case 7:
P_HC[x][y][0]=0xf8;
break;
case 8:
P_HC[x][y][0]=0x80;
break;
case 9:
P_HC[x][y][0]=0x90;
break;
case 10:
P_HC[x][y][0]=0xff;
break;
}

本文引用地址:https://www.eepw.com.cn/article/201612/324243.htm

}


上一页 1 2 下一页

关键词: 电动车充电控制

评论


技术专区

关闭