新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 電動(dòng)車充電控制器制作

電動(dòng)車充電控制器制作

作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
幾天熬夜控制器終于完工,買別人的要幾百塊一套自己做只要幾十塊就能OK,還算是有點(diǎn)價(jià)值,不羅嗦直接上代碼,依然是以往的風(fēng)格但注釋更加詳細(xì),有興趣的騷年可以參考下


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

#include //包含頭文件
#include//包函_nop_延時(shí)函數(shù)的頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int//宏定義
//595芯片控制腳定義
sbit SH=P1^7;//HC595移位控制
sbit ST=P1^6;//HC595鎖存更新顯示
sbit DS=P1^5;//HC595串行數(shù)據(jù)輸入
//輸入引腳定義
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; //第四組輸出
//計(jì)時(shí)用變量
int cou=0; //計(jì)數(shù)器
int TIME_SS=0;//秒
int TIME_MM=0;//分
int TIME_HH=0;//時(shí)
//顯示緩存數(shù)組,第一個(gè)元素為顯示數(shù)據(jù),后面兩個(gè)為顯示八段碼的地址已經(jīng)初始賦值后面的程序只要維護(hù)顯示數(shù)據(jù)元素
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}}};
//定時(shí)器數(shù)據(jù)數(shù)組,分別代表四個(gè)輸出口所剩時(shí)間值單位為分鐘
int TIME[4]={0,0,0,0};
//投幣器計(jì)數(shù)器,存儲(chǔ)投幣數(shù)量選擇輸出口時(shí)一個(gè)投幣值可以增加某一輸出口240分鐘的定時(shí)值
int TOUBI=0;
///////////////////////////////////////////////////
void delay(unsigned char x) //延時(shí)函數(shù)
{
unsigned char i,j;
for(i = 0;i < x;i++)
for(j = 0;j < 200;j++);

}
///////////////////////////////////////////////////
//高位先入
void sendbyte(char Rdate)//HC595串口輸入一個(gè)字節(jié)
{
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;//輸入的字節(jié)位左移
}
}
///////////////////////////////////////////////////
void print(void)
{
//顯示函數(shù)功能是把顯示緩存數(shù)組中的數(shù)據(jù)顯示到八段碼上
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 )
{
//顯示數(shù)組顯示數(shù)據(jù)賦值函數(shù),第一個(gè)常數(shù)為八段碼組別,第二個(gè)為八段碼位置 ,第三個(gè)位賦值數(shù)據(jù)(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;
}

本文引用地址:http://m.butianyuan.cn/article/201612/324243.htm

}


上一頁 1 2 下一頁

關(guān)鍵詞: 電動(dòng)車充電控制

評(píng)論


技術(shù)專區(qū)

關(guān)閉