久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4352|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

用單片機(jī)對機(jī)械式電度表進(jìn)行改進(jìn) 附源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
電動車是吃得多才能跑的遠(yuǎn),為方便測試電動車電瓶的容量,前段時間在某寶入手了一個機(jī)械式電度表,到手只有十幾元。不過便宜沒好貨,這貨經(jīng)常停走。檢查發(fā)現(xiàn)是機(jī)械計數(shù)器阻力太大造成的。于是采用單片機(jī)對其進(jìn)行改進(jìn),改進(jìn)思路是用單片機(jī)記錄電度表的光耦輸出脈沖,轉(zhuǎn)換成電度數(shù)用數(shù)碼管顯示出來。另外還分時顯示了充電器功率(瓦數(shù))和充電時間(小時數(shù))。程序見附件。


單片機(jī)源程序如下:
  1. #define MAIN_Fosc                11059200L        //定義主時鐘
  2. //#include<reg52.h>
  3. #include        "STC15Fxxxx.H"
  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. sbit COUNT_IN=P3^2;
  7. unsigned code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  8. #define   DataPort P1;
  9. sbit led1=P3^4;
  10. sbit led2=P3^5;
  11. sbit led3=P3^6;
  12. sbit led4=P3^7;

  13. unsigned long count;
  14. unsigned long  kwh;
  15. unsigned int w,h;
  16. float s;
  17. bit flag;

  18. void init()
  19. {
  20.    IT0=1;        //INT0負(fù)跳變觸發(fā)        
  21.    TMOD=0x01;//定時器工作于方式1
  22.    TH0=0x3c;          //50ms
  23.    TL0=0xb0;
  24.    EA=1; //CPU開中斷總允許
  25.    ET0=1;//開定時中斷
  26.    EX0=1;//開外部INTO中斷
  27.    TR0=1;//啟動定時
  28. }
  29. //========================================================================
  30. // 函數(shù): void  Delayms(unsigned int ms)
  31. // 描述: 延時函數(shù)。
  32. // 參數(shù): ms,要延時的ms數(shù), 這里只支持1~65535ms. 自動適應(yīng)主時鐘.
  33. // 返回: none.
  34. // 版本: VER1.0
  35. // 日期: 2013-4-1
  36. // 備注:
  37. //========================================================================
  38. void  Delayms(unsigned int ms)
  39. {
  40.      unsigned int i;
  41.          do{
  42.              i = MAIN_Fosc / 13000;
  43.                   while(--i)        ;   //14T per loop
  44.      }while(--ms);
  45. }
  46. //**********************************************
  47. void EXINT0() interrupt 0
  48. {
  49. //  kwh=kwh+.000625;
  50.   count++;         //累計電度表輸出脈沖個數(shù)
  51. }

  52. void time0() interrupt 1
  53. {
  54.   TH0=0x3c;
  55.   TL0=0xb0;         //50ms(實(shí)測每次循環(huán)52.9514ms,使用STC15W408AS內(nèi)部時鐘,11.0592Mhz,環(huán)境溫度29℃)
  56.   s=s+.0529514;          //累計秒數(shù)
  57. }

  58. void display_SMG_kwh(void)
  59. {
  60.    P1=table[kwh/1000];
  61.    led1= 0;
  62.    Delayms(5);
  63.    led1 = 1;

  64.    P1=table[kwh%1000/100]&0x7f;
  65.    led2 = 0;
  66.    Delayms(5);
  67.    led2 = 1;

  68.    P1=table[kwh%100/10];
  69.    led3 = 0;
  70.    Delayms(5);
  71.    led3 = 1;

  72.    P1=table[kwh%10];
  73.    led4 = 0;
  74.    Delayms(5);
  75.    led4 = 1;
  76. }

  77. void display_SMG_w(void)
  78. {
  79.    P1=table[w%10000/1000];
  80.    led1= 0;
  81.    Delayms(5);
  82.    led1 = 1;

  83.    P1=(table[w%1000/100]);
  84.    led2 = 0;
  85.    Delayms(5);
  86.    led2 = 1;

  87.    P1=table[w%100/10];
  88.    led3 = 0;
  89.    Delayms(5);
  90.    led3 = 1;

  91.    P1=table[w%10];
  92.    led4 = 0;
  93.    Delayms(5);
  94.    led4 = 1;
  95. }

  96. void display_SMG_h(void)
  97. {
  98.    P1=0x8b;
  99. //   P1=table[h/1000];
  100.    led1= 0;
  101.    Delayms(5);
  102.    led1 = 1;

  103.    P1=table[h%1000/100];
  104.    led2 = 0;
  105.    Delayms(5);
  106.    led2 = 1;

  107.    P1=table[h%100/10]&0x7f;
  108.    led3 = 0;
  109.    Delayms(5);
  110.    led3 = 1;

  111.    P1=table[h%10];
  112.    led4 = 0;
  113.    Delayms(5);
  114.    led4 = 1;
  115. }

  116. void main()
  117. {
  118.   unsigned char a;
  119.   init();
  120.   while(1)
  121.   {
  122.    for(a=0;a<=50;a++)
  123.    {
  124.     kwh=count*.0625;               //用電度數(shù)=電度表閃燈次數(shù)*.000625kwh/1000*100,(2位小數(shù))
  125.     display_SMG_kwh();
  126.    }
  127.    for(a=0;a<=50;a++)
  128.    {
  129.     w=kwh*1000*3600/s;                   //用電瓦數(shù)=累計千瓦時*1000*3600/累計秒數(shù)
  130.     display_SMG_w();
  131.    }
  132.    for(a=0;a<=50;a++)
  133.    {
  134.     h=s/360;                            //用電小時數(shù)=累計秒數(shù)/3600*10,(1位小數(shù))
  135. ……………………

  136. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
STC15W408AS+電度表smg4.rar (47.84 KB, 下載次數(shù): 17)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:137736 發(fā)表于 2022-11-2 09:37 | 只看該作者
請介紹的再詳細(xì)些,多上些圖。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产综合久久久久 | 欧美成视频在线观看 | 久久亚洲一区 | 99国内精品久久久久久久 | 一级做a爰片性色毛片视频停止 | 国产免费a视频 | 精品国产鲁一鲁一区二区张丽 | 国产乱码久久久久久 | 九九热在线视频观看这里只有精品 | 91资源在线观看 | 亚洲婷婷六月天 | 久久精品中文字幕 | 亚洲一区二区三区免费在线观看 | 99精品国产一区二区青青牛奶 | 欧美一区二区三区国产 | 欧美极品一区二区 | 欧美 中文字幕 | 亚洲精品字幕 | 日本精品在线播放 | 成人性生交大片免费看r链接 | 3p视频在线观看 | 亚洲久久在线 | 最近中文字幕第一页 | 欧美日韩在线一区 | 拍真实国产伦偷精品 | 涩涩操 | 狠狠色综合久久丁香婷婷 | 自拍 亚洲 欧美 老师 丝袜 | 九九视频在线观看视频6 | 射欧美 | 中文字幕在线观 | 国产一级免费视频 | 亚洲精品乱码久久久久久久久久 | 久久久久久91 | 999久久久久久久久6666 | 中文字幕一区在线观看视频 | 在线观看免费高清av | 国产无人区一区二区三区 | 亚洲不卡视频 | 日本免费一区二区三区视频 | av在线播放一区二区 |