⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 public.c

📁 用ADE7169F16单片机实现了单向多费4率电能表
💻 C
字号:
/*************************************
;Ade7169 demo program     
;*************************************
;AUTHOR:        Su RuTong
;DATE:          03 09 2006
;*************************************/


#include "hal.h"
#include "utilities.h"
#include "public.h"



unsigned char data green;
unsigned char data PERIPH_TMP;

void delay(unsigned int tt)
{
	while(tt--) {CLR_WDT();}
}

/******************************************
* 十六进制转BCD码(1字节转换)
******************************************/
unsigned char Hex2BcdChar(unsigned char hex)
{
    return((hex%10)|(((unsigned char)(hex/10))<<4));
}

/******************************************
* BCD码转十六进制(1字节转换)
******************************************/
unsigned char Bcd2HexChar(unsigned char bcd)
{
    return((bcd>>4)*10+(bcd&0x0F));
}

/******************************************
* 十六进制转BCD码
******************************************/
unsigned short Hex2BcdShort(unsigned short hex)
{
    unsigned short temp;
    unsigned short ret;
    unsigned char ii;

    ret=0;
    for(ii=0;ii<4;ii++)
    {
        ret>>=4;
        temp=hex%10;
        temp<<=12;
        ret|=temp;
        hex=hex/10;
    }
    return(ret);
}


/******************************************
* BCD码转十六进制
******************************************/
unsigned short Bcd2HexShort(unsigned short bcd)
{
    unsigned short temp;
    unsigned short ret;
    unsigned char ii;

    ret=0;
    for(ii=0;ii<4;ii++)
    {
        temp=bcd&0xF000;
        temp>>=12;
        ret=ret*10+temp;
        bcd<<=4;
    }
    return(ret);
}

/******************************************
* 十六进制转BCD码
******************************************/
unsigned long Hex2BcdLong(unsigned long hex)
{
    unsigned long temp;
    unsigned long ret;
    unsigned char ii;

    ret=0;
    for(ii=0;ii<8;ii++)
    {
        ret>>=4;
        temp=hex%10;
        temp<<=28;
        ret|=temp;
        hex=hex/10;
    }
    return(ret);
}

/******************************************
* BCD码转十六进制
******************************************/
unsigned long Bcd2HexLong(unsigned long bcd)
{
    unsigned long temp;
    unsigned long ret;
    unsigned char ii;

    ret=0;
    for(ii=0;ii<8;ii++)
    {
        temp=bcd&0xF0000000;
        temp>>=28;
        ret=ret*10+temp;
        bcd<<=4;
    }
    return(ret);
}


unsigned char CalCS(unsigned char idata *ptr,unsigned char len)
{
    unsigned char checksum = 0;
    while(len--)
    {
        checksum += *ptr;
        ptr++;
    }
    return(checksum);
}

void _reserved(void)
{
}

void _mem_set(unsigned char idata *dest,unsigned char dat,unsigned char len)
{
    while(len--)
    {
        *dest=dat;
        dest+=1;
    }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -