日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

adurnio 单片机_单片机20~200A大电流检测电路设计 用AD实现 带原理图,源代码,proteus仿真文件...

發布時間:2025/3/8 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 adurnio 单片机_单片机20~200A大电流检测电路设计 用AD实现 带原理图,源代码,proteus仿真文件... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//------------------------------51單片機頭文件

#include

//各數字的數碼管段碼(共陰)

unsigned char code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //數碼管顯示數組{0,1,2,3,4,5,6,7,8,9}

sbit CLK=P3^3;? ? //時鐘信號

sbit ST=P3^6;? ???//啟動信號,由低電平到高電平時間段復位 ,高電平到低電平時間段開始轉換

sbit EOC=P3^5;? ? //轉換結束信號,當轉換結束時會自動變成高電平

sbit OE=P3^4;? ???//輸出使能 ,當OE為高電平時開啟輸出端,OE為低電平時禁止輸出

sbit W1=P2^4;? ???//定義W1表示P2.4位,第一位數碼管控制端, 為0時亮,為1時滅

sbit W2=P2^3;? ? ? ?? ?//定義W2表示P2.3位,第二位數碼管控制端, 為0時亮,為1時滅

sbit W3=P2^2;? ? ? ?? ?//定義W3表示P2.2位,第三位數碼管控制端, 為0時亮,為1時滅

sbit key=P3^7;? ? ? ?? ?//定義按鍵控制key為P3.7

//----------------------------1ms延時函數

void Delayms(unsigned char ms)

{

unsigned char i;

while(ms--)

for(i=0;i<120;i++);

}

//---------------------------顯示轉換結果(動態掃描模式)

void Display(unsigned int d)

{

d=d*1.0/256*5*40;??//將數字量轉換成模擬量的公式為5V*(d/256),采樣電壓值為電流值*100歐姆,所以要獲得實際電流值,即為采樣電壓值*40倍 (n1:n2=4000:1)

W1=0;? ?//第一個數碼管亮

P0=DSY_CODE[d%10];??//顯示第一個數碼管的值 為P1的值除以10取余

Delayms(6);? ? ? ? ? ? ? ? ? ? ? ? //延時5ms

W1=1;? ?//第一個數碼管滅

W2=0;

P0=DSY_CODE[d%100/10];? ? ? ? //顯示第二個數碼管的值 為P1的值除以100取余 再除以10取整

Delayms(6);

W2=1;

W3=0;

P0=DSY_CODE[d/100];? ? ? ?? ? //顯示第三個數碼管的值 為P1的值除以100取整

Delayms(6);

W3=1;

}

//-------------------------------------------------主程序

void main()

{

TMOD=0x02; //16位定時器0工作模式設置為2

TH0=0x14;??//設置定時器高8位初值為0x14

TL0=0x00;??//設置定時器低8位初值為0x00

TR0=1;? ? ? ?? ? //開啟定時器0開關

ET0=1;? ? ? ?? ? //開啟定時器0中斷開關

EA=1;? ? ? ?? ? //開啟中斷總開關

//---------------啟動 A/D 轉換

//---------開始按鍵-----

A:? ? ? ? while(key==1);? ???//等待按鍵按下

Delayms(1);? ? ? ?? ?? ???//延時1ms

if(key==0)? ?? ?? ?//延時1ms后按鍵還是按下了,說明按鍵確實按下了(按鍵消抖功能)

while(key==0);? ? ? ?? ? //當按鍵松開時,循環轉換和顯示

while(1)

{

ST=0;

ST=1;

ST=0;

while(EOC==0);? ?//等待轉換完成

OE=1; ? ? ? ? ? ? ? ? ? ? ? ???//開啟輸出端

Display(P1);? ???//將輸出到單片機P1端口上的數字信號在LED顯示出來

OE=0;? ?? ?? ?? ?//關閉輸出端

//------停止按鍵---------

if(key==0)

{

Delayms(1);

if(key==0)? ?? ?? ?//延時1ms后按鍵還是按下了,說明按鍵確實按下了(按鍵消抖功能)

while(key==0);? ? ? ?? ? //當按鍵松開時

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

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的adurnio 单片机_单片机20~200A大电流检测电路设计 用AD实现 带原理图,源代码,proteus仿真文件...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。