欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
用單片機(jī)對(duì)機(jī)械式電度表進(jìn)行改進(jìn) 附源程序
[打印本頁]
作者:
風(fēng)158
時(shí)間:
2018-8-11 13:45
標(biāo)題:
用單片機(jī)對(duì)機(jī)械式電度表進(jìn)行改進(jìn) 附源程序
電動(dòng)車是吃得多才能跑的遠(yuǎn),為方便測(cè)試電動(dòng)車電瓶的容量,前段時(shí)間在某寶入手了一個(gè)機(jī)械式電度表,到手只有十幾元。不過便宜沒好貨,這貨經(jīng)常停走。檢查發(fā)現(xiàn)是機(jī)械計(jì)數(shù)器阻力太大造成的。于是采用單片機(jī)對(duì)其進(jìn)行改進(jìn),改進(jìn)思路是用單片機(jī)記錄電度表的光耦輸出脈沖,轉(zhuǎn)換成電度數(shù)用數(shù)碼管顯示出來。另外還分時(shí)顯示了充電器功率(瓦數(shù))和充電時(shí)間(小時(shí)數(shù))。程序見附件。
電度表改進(jìn).jpg
(266.34 KB, 下載次數(shù): 57)
下載附件
2018-8-11 13:44 上傳
單片機(jī)源程序如下:
#define MAIN_Fosc 11059200L //定義主時(shí)鐘
//#include<reg52.h>
#include "STC15Fxxxx.H"
#define uchar unsigned char
#define uint unsigned int
sbit COUNT_IN=P3^2;
unsigned code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
#define DataPort P1;
sbit led1=P3^4;
sbit led2=P3^5;
sbit led3=P3^6;
sbit led4=P3^7;
unsigned long count;
unsigned long kwh;
unsigned int w,h;
float s;
bit flag;
void init()
{
IT0=1; //INT0負(fù)跳變觸發(fā)
TMOD=0x01;//定時(shí)器工作于方式1
TH0=0x3c; //50ms
TL0=0xb0;
EA=1; //CPU開中斷總允許
ET0=1;//開定時(shí)中斷
EX0=1;//開外部INTO中斷
TR0=1;//啟動(dòng)定時(shí)
}
//========================================================================
// 函數(shù): void Delayms(unsigned int ms)
// 描述: 延時(shí)函數(shù)。
// 參數(shù): ms,要延時(shí)的ms數(shù), 這里只支持1~65535ms. 自動(dòng)適應(yīng)主時(shí)鐘.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 備注:
//========================================================================
void Delayms(unsigned int ms)
{
unsigned int i;
do{
i = MAIN_Fosc / 13000;
while(--i) ; //14T per loop
}while(--ms);
}
//**********************************************
void EXINT0() interrupt 0
{
// kwh=kwh+.000625;
count++; //累計(jì)電度表輸出脈沖個(gè)數(shù)
}
void time0() interrupt 1
{
TH0=0x3c;
TL0=0xb0; //50ms(實(shí)測(cè)每次循環(huán)52.9514ms,使用STC15W408AS內(nèi)部時(shí)鐘,11.0592Mhz,環(huán)境溫度29℃)
s=s+.0529514; //累計(jì)秒數(shù)
}
void display_SMG_kwh(void)
{
P1=table[kwh/1000];
led1= 0;
Delayms(5);
led1 = 1;
P1=table[kwh%1000/100]&0x7f;
led2 = 0;
Delayms(5);
led2 = 1;
P1=table[kwh%100/10];
led3 = 0;
Delayms(5);
led3 = 1;
P1=table[kwh%10];
led4 = 0;
Delayms(5);
led4 = 1;
}
void display_SMG_w(void)
{
P1=table[w%10000/1000];
led1= 0;
Delayms(5);
led1 = 1;
P1=(table[w%1000/100]);
led2 = 0;
Delayms(5);
led2 = 1;
P1=table[w%100/10];
led3 = 0;
Delayms(5);
led3 = 1;
P1=table[w%10];
led4 = 0;
Delayms(5);
led4 = 1;
}
void display_SMG_h(void)
{
P1=0x8b;
// P1=table[h/1000];
led1= 0;
Delayms(5);
led1 = 1;
P1=table[h%1000/100];
led2 = 0;
Delayms(5);
led2 = 1;
P1=table[h%100/10]&0x7f;
led3 = 0;
Delayms(5);
led3 = 1;
P1=table[h%10];
led4 = 0;
Delayms(5);
led4 = 1;
}
void main()
{
unsigned char a;
init();
while(1)
{
for(a=0;a<=50;a++)
{
kwh=count*.0625; //用電度數(shù)=電度表閃燈次數(shù)*.000625kwh/1000*100,(2位小數(shù))
display_SMG_kwh();
}
for(a=0;a<=50;a++)
{
w=kwh*1000*3600/s; //用電瓦數(shù)=累計(jì)千瓦時(shí)*1000*3600/累計(jì)秒數(shù)
display_SMG_w();
}
for(a=0;a<=50;a++)
{
h=s/360; //用電小時(shí)數(shù)=累計(jì)秒數(shù)/3600*10,(1位小數(shù))
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
STC15W408AS+電度表smg4.rar
(47.84 KB, 下載次數(shù): 17)
2018-8-11 13:45 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
zmc419
時(shí)間:
2022-11-2 09:37
請(qǐng)介紹的再詳細(xì)些,多上些圖。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1