国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 方案介紹
  • 附件下載
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

51單片機(jī)的交流電流檢測(cè)系統(tǒng)設(shè)計(jì)(程序+原理圖+PCB)

2024/07/03
3506
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

設(shè)計(jì)資料獲取聯(lián)系方式.doc

共1個(gè)文件

本設(shè)計(jì):
基于51單片機(jī)交流電流檢測(cè)系統(tǒng)設(shè)計(jì)(程序+原理圖+PCB
原理圖:Altium Designer
程序編譯器:keil 5
編程語(yǔ)言:C語(yǔ)言
編號(hào)C0024

完整鏈接:
【騰訊文檔】C0024 網(wǎng)盤(pán)鏈接
https://docs.qq.com/doc/DS29rd2Rmdk5CT3Jz

本設(shè)計(jì)由51單片機(jī)電路+數(shù)碼管顯示電路+交流電壓檢測(cè)電路+交流電流檢測(cè)電路+電源電路組成。數(shù)碼管實(shí)時(shí)顯示交流電流值和交流電壓值。

原理圖(提供源文件):
在這里插入圖片描述

PCB(提供源文件):
在這里插入圖片描述

源程序(提供源文件):


#include<reg51.h> 
#include "intrins.h"
#include "delay.h"	
#include "display_seg.h"  
#include<timer.h>
sfr P1M1 = 0x91;    //PxM1.n,PxM0.n     =00--->Standard,    01--->push-pull
sfr P1M0 = 0x92;    //                  =10--->pure input,  11--->open drain
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xB1;
sfr P3M0 = 0xB2;
sfr P4M1 = 0xB3;
sfr P4M0 = 0xB4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;

sfr ADC_CONTR   =   0xBC;           //ADC控制寄存器
sfr ADC_RES     =   0xBD;           //ADC高8位結(jié)果
sfr ADC_LOW2    =   0xBE;           //ADC低2位結(jié)果
sfr P1ASF       =   0x9D;           //P1口第2功能控制寄存器

#define ADC_POWER   0x80            //ADC電源控制位
#define ADC_FLAG    0x10            //ADC完成標(biāo)志
#define ADC_START   0x08            //ADC起始控制位
#define ADC_SPEEDLL 0x00            //540個(gè)時(shí)鐘
#define ADC_SPEEDL  0x20            //360個(gè)時(shí)鐘
#define ADC_SPEEDH  0x40            //180個(gè)時(shí)鐘
#define ADC_SPEEDHH 0x60            //90個(gè)時(shí)鐘
 

void InitADC();
unsigned char adVtab[5];
unsigned char adAtab[5];
unsigned char count = 0;
unsigned char GetADCResult(unsigned char ch);

void main (void)
{
unsigned int result_voltage = 0;
unsigned int result_current = 0;
unsigned int acV= 0;
unsigned int acA= 0;	   //擴(kuò)大100倍
Init_Timer0();	
	  //初始化端口
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
    P6M0 = 0x00;
    P6M1 = 0x00;
    P7M0 = 0x00;
    P7M1 = 0x00;

    InitADC();                      //初始化ADC
  while (1)  {                        /* endless loop                         */ 							 
	  result_voltage = GetADCResult(7);//采集電壓值					 
	  result_current = GetADCResult(6);//采集電流值
	  //顯示電壓值
	  adVtab[count] = result_voltage;
	  adAtab[count] = result_current;
	  count++;
	  if(count >= 5)
	  {
	  	acV = ((adVtab[0] +adVtab[1] +adVtab[2] +adVtab[3] +adVtab[4] )/5 )*220/125;  //  ad值為127實(shí)時(shí) 1.57v ad電壓220
		acA =  ((adAtab[0] +adAtab[1] +adAtab[2] +adAtab[3] +adAtab[4] )/5 )*72/100;  //  ad為   時(shí) 電流為0.72A 1.24V 擴(kuò)大100倍電流
	   	count = 0;
	  }
//	  acV = result_voltage * 220 / 125 ;
//	  if(acV < 20 ) acV = 0;

	 displayDat[0] = SEG_DATA[acV/100];
	 displayDat[1] = SEG_DATA[(acV%100)/10];
	 displayDat[2] = SEG_DATA[acV%10];
	 //高位為0時(shí)的消除處理
	 if(displayDat[0]==SEG_DATA[0]){
		displayDat[0] = 0xff;
		if(displayDat[1]==SEG_DATA[0]){
			displayDat[1]=0xff;
		}
	 }
	
//	 }
	DelayMs(100);
  }
}
/*----------------------------
讀取ADC結(jié)果
----------------------------*/
unsigned char GetADCResult(unsigned char ch)
{
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
    _nop_();                        //等待4個(gè)NOP
    _nop_();
    _nop_();
    _nop_();
    while (!(ADC_CONTR & ADC_FLAG));//等待ADC轉(zhuǎn)換完成
    ADC_CONTR &= ~ADC_FLAG;         //Close ADC

    return ADC_RES;                 //返回ADC結(jié)果
}


/*----------------------------
初始化ADC
----------------------------*/
void InitADC()
{
    P1ASF = 0xc0;                   //設(shè)置P1口為AD口
    ADC_RES = 0;                    //清除結(jié)果寄存器
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
    DelayMs(2);                       //ADC上電并延時(shí)
}

在這里插入圖片描述

資料清單如下:
在這里插入圖片描述

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc
    下載

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
STM32H743XIH6 1 STMicroelectronics High-performance and DSP with DP-FPU, Arm Cortex-M7 MCU with 2MBytes of Flash memory, 1MB RAM, 480 MHz CPU, Art Accelerator, L1 cache, external memory interface, large set of peripherals

ECAD模型

下載ECAD模型
$31.15 查看
LPC4357FET256,551 1 NXP Semiconductors LPC4357FET256 - Dual-core Cortex-M4/M0, 1 MB Flash, 136 kB SRAM, 2 HS USB with on-chip PHY, Ethernet, LCD, CAN, AES, SPIFI, SGPIO, SCT BGA 256-Pin

ECAD模型

下載ECAD模型
$15.87 查看
TMS320F28335PGFA 1 Texas Instruments C2000&trade; 32-bit MCU with 150 MIPS, FPU, 512 KB flash, EMIF, 12b ADC 176-LQFP -40 to 85

ECAD模型

下載ECAD模型
$29.61 查看

相關(guān)推薦

方案定制

去合作
方案開(kāi)發(fā)定制化,2000+方案商即時(shí)響應(yīng)!
临高县| 柳州市| 益阳市| 土默特右旗| 库尔勒市| 松溪县| 天津市| 盘山县| 赤峰市| 泾源县| 宝兴县| 博湖县| 唐山市| 蛟河市| 奉节县| 凌源市| 太仆寺旗| 嘉兴市| 刚察县| 沐川县| 江山市| 正阳县| 勐海县| 吐鲁番市| 禹州市| 边坝县| 鄄城县| 泗水县| 大姚县| 汉寿县| 宜春市| 罗江县| 昔阳县| 平山县| 五峰| 邢台市| 原阳县| 郑州市| 新乡县| 偏关县| 乌什县|