2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > adurnio 单片机_单片机20~200A大电流检测电路设计 用AD实现 带原理图 源代码 proteus仿真文件...

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

时间:2021-04-26 04:44:44

相关推荐

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黑下载附件…………

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。