-
大小: 3KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-05-14
- 语言: 其他
- 标签: stc12c5a60s2 PID PWm
资源简介
采用STC12C5A60S2单片机实现,PID运算,产生PWM波。实现Boost电路闭环调节。
代码片段和文件信息
#include
#include “intrins.h“
#include
#include
/*#include “define.h“
#include “delay.h“
#include “lcd.h“
#include “ad.h“
#include “pid.h“
#include “pwm.h“ */
/*……………………………………………… define.h…………………………….*/
#define uint unsigned int
#define uchar unsigned char
#define N 14
sbit pwmout=P3^7;
sbit lcden=P2^6;
sbit lcdrs=P2^4;
sbit lcdrw=P2^5;
//uchar a;
uchar code table[]=“The Vol is:.V “;
/*…………………………………………..delay.h……………………………….*/
void delay(uint z) //12M晶振 毫秒级延时
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*…………………………………………lcd 1602显示……………………………………*/
void write_com(uchar com) //写控制字
{
lcdrs=0;
delay(5);
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date) //写数据
{
lcdrs=1;
delay(5);
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void lcdinit() //lcd初始化
{
lcden=0;
lcdrw=0;
write_com(0x38);
write_com(0x01);
write_com(0x0e);
write_com(0x06);
}
void display(uchar adduint num)
{
/*uchar i;
write_com(0x80);
for(i=0;i<11;i++) //显示字符
{
write_data(table[i]);
delay(1);
}
write_com(0x80+0x40); //显示电压数据
if(num/10000==0)
{
write_data(table[13]);
}
else
write_data(0x30+num/10000);
write_data(0x30+num%10000/1000);
write_data(table[11]);
write_data(0x30+num%1000/100);
write_data(0x30+num%100/10);
write_data(0x30+num%10);
write_data(table[12]);*/
if(add==1)
{
write_com(0x80);
write_data(0x30+num/10000);
write_data(0x30+num%10000/1000);
write_data(0x30+num%1000/100);
write_data(0x30+num%100/10);
write_data(0x30+num%10);
}
if(add==3)
{
write_com(0x80+0x07);
write_data(0x30+num/10000);
write_data(0x30+num%10000/1000);
write_data(0x30+num%1000/100);
write_data(0x30+num%100/10);
write_data(0x30+num%10);
}
if(add==2)
{
write_com(0x80+0x40);
write_data(0x30+num/10000);
write_data(0x30+num%10000/1000);
write_data(0x30+num%1000/100);
write_data(0x30+num%100/10);
write_data(0x30+num%10);
}
if(add==4)
{
write_com(0x80+0x40+0x06);
write_data(0x30+num/10000);
write_data(0x30+num%10000/1000);
write_data(0x30+num%1000/100);
write_data(0x30+num%100/10);
write_data(0x30+num%10);
}
if(add==5)
{
write_com(0x80+0x40+0x0b);
write_data(0x30+num/10000);
write_data(0x30+num%10000/1000);
write_data(0x30+num%1000/100);
write_data(0x30+num%100/10);
write_data(0x30+num%10);
}
}
/*…………………………………..A/D程序…………………………………….*/
void AD_init() //AD转化初始化
{
P1ASF=0x01;
P1M0=0x03;
P1M1=0x03; //P1.0为开漏模式,用来A/D采集
ADC_CONTR=0xe0;
delay(10);
}
int GetAD(uchar channel)
{
uchar AD_finished=0;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10328 2013-08-06 22:30 buckboost.c
----------- --------- ---------- ----- ----
10328 1
相关资源
- PID调参软件
- 变压器的设计步骤和计算公式
- 28335 PWM启动AD程序,自己写的简单易懂
- DSPF2812程序
- 51单片机小车PWM测试程序
- STM32 定时器捕获PWM波 以及占空比
- 基于遗传算法的PID参数整定及仿真
- PID控速小车
- SVPWM详解以及程序实现
- 毕业设计__PID控制直流电机
- 产生频率变化的PWM波形
- stm32PWM呼吸灯
- 三相逆变器SVPWM.rar
- 黑苹果灯光调节补丁ACPIDebug.kext
- stm32利用定时器的PWM输出驱动蜂鸣器播
- 实验20 PWM DAC实验.rar
- 基于arduino的循迹小车不含有PID算法
- 基于arduino的循迹小车含有PID算法
- PID算法温度控制
- 51单片机直流电机PID闭环调速
- DSP TMS320F2812产生PWM波程序
- PWM输出控制舵机转动角度
- stm32 PID调节
- 基于51单片机的自动加热散热系统,采
- 全桥移相电路PWM驱动程序
- SVPWM控制和MTPA控制
- 51单片机T2定时器控制舵机程序源码(
- STC12C5A60S2手指心跳检测程序
- 自适应PID控制算法
- PSO优化PID
评论
共有 条评论