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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4188|回復: 1
打印 上一主題 下一主題
收起左側

用單片機對機械式電度表進行改進 附源程序

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


單片機源程序如下:
  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負跳變觸發        
  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. // 函數: void  Delayms(unsigned int ms)
  31. // 描述: 延時函數。
  32. // 參數: ms,要延時的ms數, 這里只支持1~65535ms. 自動適應主時鐘.
  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++;         //累計電度表輸出脈沖個數
  51. }

  52. void time0() interrupt 1
  53. {
  54.   TH0=0x3c;
  55.   TL0=0xb0;         //50ms(實測每次循環52.9514ms,使用STC15W408AS內部時鐘,11.0592Mhz,環境溫度29℃)
  56.   s=s+.0529514;          //累計秒數
  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;               //用電度數=電度表閃燈次數*.000625kwh/1000*100,(2位小數)
  125.     display_SMG_kwh();
  126.    }
  127.    for(a=0;a<=50;a++)
  128.    {
  129.     w=kwh*1000*3600/s;                   //用電瓦數=累計千瓦時*1000*3600/累計秒數
  130.     display_SMG_w();
  131.    }
  132.    for(a=0;a<=50;a++)
  133.    {
  134.     h=s/360;                            //用電小時數=累計秒數/3600*10,(1位小數)
  135. ……………………

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

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


評分

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

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91国内外精品自在线播放 | 成人高清网站 | 伊人精品在线视频 | 中文字字幕一区二区三区四区五区 | 激情小说综合网 | 久久国产视频播放 | 少妇特黄a一区二区三区88av | 国产男女视频网站 | 在线视频一区二区 | 国产高清视频 | 在线国产小视频 | 国产精品一区二区久久久久 | 一级毛片在线播放 | 久久i | 爱爱小视频 | 精品久久久久久久 | 欧美日韩国产精品一区 | 国产专区在线 | 日韩午夜| 亚洲精品一区二区另类图片 | 欧美三区在线观看 | 7777在线 | 欧美大片黄 | 国产精品久久久久久久久免费高清 | 久久久片 | 精品欧美一区二区三区久久久小说 | 色婷婷一区 | 日韩免| 秋霞在线一区 | 日本三级电影在线观看视频 | 婷婷午夜天 | 91亚洲精品在线观看 | 成人欧美一区二区三区在线观看 | 性一交一乱一透一a级 | 精品国产欧美一区二区三区成人 | 久久新 | 99精品国产一区二区三区 | 精品日韩在线 | 国产97在线视频 | 狠狠干综合视频 | 亚洲精品久久久久久久久久久久久 |