资源简介
利用C8051f410内部的12位A/D转换器进行开关电源电压电流检测并在1602液晶显示
代码片段和文件信息
//文件名: ADC.c
//
//编写人: LD
//
//编写时间:2009/08/24
//
//目标器件: C8051F410
//
//编译工具: Keil
//
//程序说明: 此程序通过I/O口P1^3P1^4和P1^5调节数字电位器X9C102/103/104的阻值通过I/O口P1^0和
// P1^1分别监测输出电压和流过采样电阻的平均电流并通过1602液晶显示当前输出电压实际值
// 和流过采样电阻的电流值
//
//硬件接口:电压采样=P1^0; 电流采样=P1^1;
// X9C103_CS=P1^3; X9C103_INC=P1^4; X9C103_UD=P1^5;
//------------------------------------------------------------------------------------
// Includes
//------------------------------------------------------------------------------------
#include // SFR declarations
#include
sbit voltage=P1^0;
sbit current=P1^1;
sbit X9C103_CS=P1^3;
sbit X9C103_INC=P1^4;
sbit X9C103_UD=P1^5;
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
sbit lcden=P2^4;
sbit lcdrs=P2^5;
sbit sdi=P2^6;
sbit clk=P2^7;
bit AD=1;
bit VI=0;
unsigned char code table1[]=“OBS V:00.0 I:2.68“;
unsigned char code table2[]=“DES V:36.0 I:2.68“;
unsigned int ab;
unsigned char qianbaishi;
//------------------------------------------------------------------------------------
// Function PROTOTYPES
//------------------------------------------------------------------------------------
void PORT_Init (void);
void Oscillator_Init();
void up(unsigned char command);
void down(unsigned char command);
void write_595(unsigned char da);
void lcd_init(void);
void write_com(unsigned char com);
void write_data(unsigned char da);
void delay(unsigned int z);
void Interrupts_Init();
void ad_v_display(void);
void ad_i_display(void);
/***************************************************************************************
函数名称: void sleep_ms(WORD count)
功能描述: 延时
输入: WORD count(所要延时的长度)
输出: 无
全局变量: 无
调用模块: _nop_()
***************************************************************************************/
/*
void sleep_ms(unsigned char count)
{
unsigned char iijj;
for(ii=0;ii {
for(jj=0;jj<250;jj++)
_nop_();
}
} */
void ADC_Init()
{
ADC0MX = 0x00;
ADC0CN = 0x80;
}
void Voltage_Reference_Init()
{
REF0CN = 0x18;
}
//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
void main()
{
PCA0MD &= ~0x40; //禁止看门狗
Oscillator_Init(); //时钟初始化
PORT_Init(); //I/O初始化
lcd_init();
ADC_Init();
Voltage_Reference_Init();
Interrupts_Init();
while(1)
{
lcdrs=0;
if(s1==0)
{
delay(10);
if(s1==0)
{
while(s1==0);
down(5);
}
}
delay(250);
if(s2==0)
{
delay(10);
if(s2==0)
{
while(s2==0);
up(5);
}
}
// AD0BUSY=1; //启动A/D转换
if(AD)
{
AD=0;
if(VI)
ad_v_display(); //转换完成则显示
else
ad_i_display(); //转换完成则显示
AD0BUSY=1; //启动A/D转换
}
}
}
/***********************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6376 2007-09-11 14:50 Flyback2\STARTUP.A51
文件 618 2009-08-26 14:54 Flyback2\flyback.plg
文件 8217 2009-08-22 17:46 Flyback2\flyback.c
文件 14062 2009-08-26 14:53 Flyback2\STARTUP.LST
文件 58 2009-08-26 14:53 Flyback2\flyback.lnp
文件 20394 2009-08-26 14:53 Flyback2\flyback.M51
文件 19 2009-08-26 09:15 Flyback2\ExtDll.iex
文件 17062 2009-08-26 14:53 Flyback2\adc.OBJ
文件 11208 2009-08-26 14:54 Flyback2\adc.c
文件 749 2009-08-26 14:53 Flyback2\STARTUP.OBJ
文件 22926 2009-08-26 14:53 Flyback2\adc.LST
文件 16450 2009-08-26 14:53 Flyback2\flyback
文件 16470 2009-08-22 17:46 Flyback2\flyback.LST
文件 11698 2009-08-22 17:46 Flyback2\flyback.OBJ
文件 1313 2009-08-26 14:54 Flyback2\flyback.Opt
文件 1314 2009-08-26 14:52 Flyback2\flyback_Opt.Bak
文件 2248 2009-08-24 17:08 Flyback2\flyback_Uv2.Bak
文件 2248 2009-08-24 20:58 Flyback2\flyback.Uv2
目录 0 2009-08-30 23:07 Flyback2
----------- --------- ---------- ----- ----
153430 19
- 上一篇:串口试验.c
- 下一篇:ATMEGA64&128最小系统原理图.zip
相关资源
- vivado2018.1证书
- 基于51单片机的多路温湿度实时监测的
- 基于机器视觉的水果外部品质检测系
- ADS1256(AVR)
- IEEE9节点PSCAD仿真算例增加SFCL!
- 高通QcomDloader线刷工具刷机教程步骤说
- 双馈风电机组低电压穿越PSCAD仿真
- Advapi32.lib
- RAMOS (内存操作系统) 驱动 firadis
- CAD软件图层管理插件
-
JNI_on
load动态注册的 - 单片机与ADC/DAC的 仿真与程序 资料包
- 运动目标检测源代码opencv
- 基于C8051F060的高精度温度控制系统设
- DICOM Reader
- Notepad++的几个优秀主题
- 一款可以使数字自动递增的CAD小插件
- ADS131代码
- LibreCAD 源码编译,编译通过,可拿着
- RGSSAD纸老虎系统
- unity真实反射shader mirror_shaders
- Vivado 2016.1 License文件多IP核
- 过采样技术,10位ADC变16位的方法
- WinRadius破解版
- Cadence常用封装库
- 单片机AT89S51与ADC0809设计一个数字电压
- JPEG文件隐形信息检测算法
- 电子线路CAD大作业
- ad603放大电路Proteus仿真
- 基于AD1674模数转换芯片的接口电路设
评论
共有 条评论