资源简介
通过ADC0809采集电压信号和电流信号,由51单片机处理后,通过开关控制可在数码管上显示瞬时电压、电流、功率值。内附c语言驱动程序和Proteus仿真及ADC0809资料。

代码片段和文件信息
#include
unsigned char code dispbitcode[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
unsigned char dispbuf[4];
unsigned int i;
unsigned int j;
unsigned char getdataV;
unsigned char getdataI;
unsigned char getdataP;
unsigned int temp;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^3;
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P17=P1^7;
sbit K1=P2^6;
sbit K2=P2^7;
void TimeInitial();
void Delay(unsigned int i);
void TimeInitial()
{ TMOD=0x10;
TH1=(65536-200)/256;
TL1=(65536-200)%256;
EA=1;
ET1=1;
TR1=1;
}
void Delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=0;j<125;j++);
}
void Display()
{
P1=dispbitcode[dispbuf[3]];
P20=0;
P21=1;
P22=1;
P23=1;
Delay(5);
P1=0x00;
P1=dispbitcode[dispbuf[2]];
P17=1;
P20=1;
P21=0;
P22=1;
P23=1;
Delay(5);
P1=0x00;
P1=dispbitcode[dispbuf[1]];
P20=1;
P21=1;
P22=0;
P23=1;
Delay(5);
P1=0x00;
P1=dispbitcode[dispbuf[0]];
P20=1;
P21=1;
P22=1;
P23=0;
Delay(5);
P1=0x00;
}
void main()
{
TimeInitial();
while(1)
{
if(K1==0&K2==1)
{ OE=0;
ST=1;
ST=0;
P34=0;
P35=0;
P36=0;
while(EOC==0);
OE=1;
getdataV=P0;
OE=0;
temp=getdataV*1.0/255*1500;
dispbuf[0]=temp%10;
dispbuf[1]=temp/10%10;
dispbuf[2]=temp/100%10;
dispbuf[3]=temp/1000;
Display();
}
else if(K2==0&K1==1)
{
ST=1;
ST=0;
P34=1;
P35=0;
P36=0;
while(EOC==0);
OE=1;
getdataI=P0;
OE=0;
temp=getdataI*1.0/255*50;
dispbuf[0]=temp%10;
dispbuf[1]=temp/10%10;
dispbuf[2]=temp/100%10;
dispbuf[3]=temp/1000;
Display();
}
else if(K1==0&K2==0)
{
ST=1;
ST=0;
P34=0;
P35=0;
P36=0;
while(EOC==0);
OE=1;
getdataV=P0;
OE=0;
ST=1;
ST=0;
P34=0;
while(EOC==0);
OE=1;
getdataI=P0;
OE=0;
getdataP=getdataV|getdataI;
temp=getdataP*1.0/255*750;
dispbuf[0]=temp%10;
dispbuf[1]=temp/10%10;
dispbuf[2]=temp/100%10;
dispbuf[3]=temp/1000;
Display();
}
}
}
void t1(void) interrupt 3 using 0
{
TH1=(65536-200)/256;
TL1=(65536-200)%256;
C
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7829 2010-07-03 12:59 数据采集系统\0809测试\0809测试
文件 3013 2010-07-03 12:59 数据采集系统\0809测试\0809测试.c
文件 48 2010-07-03 12:59 数据采集系统\0809测试\0809测试.lnp
文件 6288 2010-07-03 12:59 数据采集系统\0809测试\0809测试.LST
文件 10718 2010-07-03 12:59 数据采集系统\0809测试\0809测试.M51
文件 7707 2010-07-03 12:59 数据采集系统\0809测试\0809测试.OBJ
文件 978 2010-07-03 13:03 数据采集系统\0809测试\0809测试.Opt
文件 4419 2010-07-03 13:03 数据采集系统\0809测试\0809测试.plg
文件 2113 2010-07-03 11:05 数据采集系统\0809测试\0809测试.Uv2
文件 978 2010-07-03 11:05 数据采集系统\0809测试\0809测试_Opt.Bak
文件 0 2010-07-03 09:29 数据采集系统\0809测试\0809测试_Uv2.Bak
文件 270878 2010-06-13 15:55 数据采集系统\ADC0809资料\ADC0809.pdf
文件 144663 2010-07-03 13:23 数据采集系统\数据采集系统仿真\Last Loaded 数据采集.DBK
文件 144634 2010-07-03 13:25 数据采集系统\数据采集系统仿真\数据采集.DSN
文件 3468 2010-07-03 12:59 数据采集系统\数据采集系统仿真\数据采集.hex
文件 1052 2010-07-03 13:25 数据采集系统\数据采集系统仿真\数据采集.PWI
目录 0 2010-07-03 13:24 数据采集系统\0809测试
目录 0 2010-07-04 13:57 数据采集系统\ADC0809资料
目录 0 2010-07-03 13:25 数据采集系统\数据采集系统仿真
目录 0 2010-07-04 13:57 数据采集系统
----------- --------- ---------- ----- ----
608786 20
- 上一篇:银行家算法模拟实现C++版
- 下一篇:c++高仿QQ截图
相关资源
- 单片机c语言源程序(51定时器 八个按
- 用单片机控制蜂鸣器播放旋律程序(
- 合泰触摸单片机BS84B08C实际应用代码上
- 基于STM32单片机的心率体温测量仪
- 九齐单片机源码
- 单片机PID控制(C语言)
- 基于单片机的交通灯设计.doc
- C51单片机技术教程(304页)
- C51单片机交通
- 单片机C语言实战开发108例
- stm32库函数代码自动生成器V1.2
- 单片机电子密码锁
- 单片机程序(附初级、中级、高级共
- 按键可调万年历(单片机程序)
- 51单片机数码管四层电梯模拟系统
- 基于51单片机的温控系统
- 51单片机protues文件(KST-51.DSN)
- 51单片机交通灯设计
- 基于51单片机的简易计算器
- 单片机按键长按
- 基于51单片机多路超声波报警设计
- 51单片机红外智能小车
- 单片机控制绕线机.c
- qt上位机采集51单片机温湿度数据
- AVR单片机SPI通讯程序 (C语言源代码)
- BP神经网络C语言工程当前最终版
- 汉字取模软件----单片机使用必备
- 基于51单片机射频RFID卡考勤上课上班
- 可以在单片机上计算的BP神经网络C语
- 基于51单片机的888光立方设计.rar
评论
共有 条评论