91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 441KB
    文件類型: .rar
    金幣: 2
    下載: 2 次
    發布日期: 2021-05-08
  • 語言: 其他
  • 標簽: 電力系統??

資源簡介

計量電表的系統開發源碼、開發環境為KEIL51、

資源截圖

代碼片段和文件信息

/*數制轉換*/
#include “driver.h“
#include “config.h“
/**************************************
連續區域數據右移位相當于數據除以2的n次方
低位在低地址
輸入: dest? 移位后數據存放位置destination
src 需要移位數據
n 數據長度n<10
bit_n 移位個數
**************************************/
/*void?data_rrf_bit(uint8?*dest?uint8?*src?uint8?n?uint8?bit_n)
{
uint8?buff[10];
uint8?i;

memcpy(buff?src?n);

while(bit_n--)
{
for(i=0;?i {
buff[i] >>=?1;
if(buff[i+1]?&?0x01)
{
buff[i] |=?0x80;
}
}
}
}
*/
/**************************************
BCD加法
二進制加法運算結果采用修正規則進行修正:
(1)如果任何兩個對應位BCD數相加的結果向高一位無進位
若得到的結果小于或等于9則該不需修正;
若得到的結果大于9且小于16時該位進行加6修正。
(2)如果任何兩個對應位BCD數相加的結果向高一位有進位時(即結果大于或等于16)該位進行加6修正.
0x9+0x9=0x12的情況!!
(3)低位修正結果使高位大于9時高位進行加6修正。
**************************************/
uint8?bcd_add(uint8?*DataOneDptr\
uint8?*DataTwoDptr\
uint8?DataLend)
{
uint8 One?Two?Tmp; //中間變量
uint8 i?=?0;
uint16 Sum?=?0; //考慮CY位故取整型

while(DataLend--)? //不能DataLend--或--DataLend
{
One?=?DataOneDptr[i];//取出正確的被加數
Two?=?DataTwoDptr[i];//取出正確的加數
Sum?=?One?+?Two?+?Sum; //二進制求和(注意上次低位向高位的進位)
Tmp?=?(One?&?0xf0)?+?(Two?&?0xf0); //為半進位做準備

if?((Tmp?!=?(Sum?&?0xf0))?||?((Sum?&?0x0f)?>?9))
{
Sum?+=?6; //BCD碼低4位調整
}

if?(Sum?>=?0xa0)
{
Sum?+=?0x60; //BCD碼高4位調整
}
DataOneDptr[i]?=?Sum;//只存入低8位
Sum?>>=?8;//保留高8位做為下次低位向高位的進位
i++;
}
return?Sum;//返回溢出標志(最高1位)
}
/**************************************
內存數據逆序(reverse)
input:??src? 源
n 長度
**************************************/
void mem_reverse(uint8?*src?uint8?n)
{
uint8?temp;
uint8?i;
uint8?*p;
p =?src?+?n?-?1;
i =?n?/?2;
while(i--)
{
n--;
temp =?*src;
*src++ =?*p;
*p-- =?temp;
}
}

/**************************************
單字節hex?-->?bcd
**************************************/
uint8?byte_bin2bcd(uint8?hex)
{
uint8?bcd?=?0;

bcd?=?hex?/?10;
bcd?=?bcd?%?10;
return((bcd?<}

/**************************************
單字節bcd?-->?hex
**************************************/
uint8?byte_bcd2bin(uint8?bcd)
{
return((bcd?>>?4)?*?10?+?(bcd?&?0x0F));
}

void?bin_to_bcd(uint8?*s?uint8?num)
{
??uint8?i;
????for(i?=?0;?i?????{
??????*(s?+?i)?=?((*(s?+?i)?/?10)<<4)?+?(*(s?+?i)?%?10);
????}
}

void?bcd_to_bin(uint8?*s?uint8?num)
{
??uint8?i;
????for(i?=?0;?i?????{
??????*(s?+?i)?=?(*(s?+?i)>>4)?*?10?+?(*(s?+?i)?&?0x0f);
????}
}

/**************************************
根據日期計算星期
input: day?month?year.must?after?2000!
output: week
只能有效計算2000~2099
**************************************/
const?uint8?week[12]?=?{622503514624}; //2000年,每月一號星期,2月后星期減一
uint8?get_time_week(uint8?*day)
{
uint8?ymdi;
d =?byte_bcd2bin(*day++);
m =?byte_bcd2bin(*day++);
y =?byte_bcd2bin(*day);

i =?y+(y>>2)+week[m-1]+d-1;

if((m<3)&&((y&0x03)==0)) //04年之前的1,2月不+1補償
{
i %=?7;
????}
else
{
i =?(i+1)?%?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2350??2009-05-26?07:54??hlj3phase\1.prj

?????文件???????7779??2009-03-13?17:42??hlj3phase\comfun.c

?????文件???????1366??2009-05-23?15:10??hlj3phase\Config.h

?????文件???????1366??2009-04-14?11:07??hlj3phase\Config.h.bak

?????文件?????193939??2009-03-14?10:24??hlj3phase\Debug\Exe\hlj3.d26

?????文件??????16160??2009-03-13?17:42??hlj3phase\Debug\Obj\comfun.r26

?????文件??????60655??2009-03-14?10:23??hlj3phase\Debug\Obj\drv_mcu.r26

?????文件????????332??2009-03-14?10:23??hlj3phase\Debug\Obj\hlj3.pbd

?????文件??????36533??2009-03-13?13:27??hlj3phase\Debug\Obj\lcd.r26

?????文件??????43103??2009-03-13?13:27??hlj3phase\Debug\Obj\meter_sys.r26

?????文件??????88820??2009-03-13?17:42??hlj3phase\Debug\Obj\protocol_hlj.r26

?????文件??????49184??2009-03-14?10:24??hlj3phase\Debug\Obj\tariff.r26

?????文件???????3680??2009-03-13?13:27??hlj3phase\Debug\Obj\user_def.r26

?????文件??????12688??2009-02-04?08:00??hlj3phase\driver.h

?????文件??????31882??2009-05-25?15:08??hlj3phase\drv_mcu.c

?????文件??????31900??2009-05-25?15:03??hlj3phase\drv_mcu.c.bak

?????文件???????2758??2009-05-26?07:54??hlj3phase\e2rom_alloc.h

?????文件???????2775??2008-12-18?13:43??hlj3phase\e2rom_alloc.h.bak

?????文件??????19177??2009-05-25?15:56??hlj3phase\hlj3.dep

?????文件??????12738??2008-12-24?17:07??hlj3phase\hlj3.ewd

?????文件??????48751??2009-05-22?16:58??hlj3phase\hlj3.ewp

?????文件????????158??2008-12-24?16:09??hlj3phase\hlj3.eww

?????文件??????24276??2009-03-16?14:18??hlj3phase\lcd.c

?????文件???????4119??2009-02-04?08:00??hlj3phase\lcd.h

?????文件??????26361??2009-05-26?07:51??hlj3phase\meter_sys.c

?????文件??????26377??2009-04-14?07:53??hlj3phase\meter_sys.c.bak

?????文件??????61698??2009-05-26?07:54??hlj3phase\protocol_hlj.c

?????文件??????61715??2009-04-08?17:17??hlj3phase\protocol_hlj.c.bak

?????文件???????9534??2009-05-26?07:54??hlj3phase\protocol_hlj.h

?????文件???????9551??2009-01-08?13:37??hlj3phase\protocol_hlj.h.bak

............此處省略47個文件信息

評論

共有 條評論