资源简介
通过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截图
相关资源
- 基于89c52单片机的八路抢答器 可加减
- 如何在keil中查看程序执行时间
- 基于单片机的水位控制系统
- 基于单片机的LED彩灯控制器设计
- 单片机 C语言温度控制程序
- 51单片机-光立方-C语言
- 单片机电子琴设计用C语言编写
- 单片机课程设计电子秤电子称proteus仿
- 51单片机数码管显示万年历的程序
- HMC830_HMC_MODE.rar
- AES单片机加密解密 C语言源代码
- 原创:51单片机操作ds18b20ds1302,lcd1
- Modbus源码(PIC单片机版)
- 32乘以32点阵屏源代码与仿真
- 51单片机驱动步进电机(含电路图和
- 51F单片机jtag程序.pdf
- 基于pic单片机的数字pfc源码
- 基于单片机的json编解码源码.zip
- 单片机控制1602液晶滚动显示字符
- STC15的modbus程序
- 基于单片机花样流水灯原理图及源码
- 自己编写的基于单片机的自己编的4
- 51单片机c语言4x4矩阵键盘实验详细操
- 51单片机-舵机控制C语言程序
- 《新概念51单片机C语言教程--入门提高
- 电子琴.zip
- 51单片机DIY制作:旋转LED数字显示电子
- AVR单片机C语言程序设计精粹程序
- DSM501A基于51单片机code
- 各种语言编写的pcm代码
评论
共有 条评论