你好!欢迎来到 !
语言
当前位置:首页 >> 技术中心 >> 单片机入门 >> 单片机C语言程序设计:用 ADC0808 控制 PWM 输出

单片机C语言程序设计:用 ADC0808 控制 PWM 输出

关键字:单片机 C语言程序设计 PWM 输出 作者:admin 来源:不详 发布时间:2018-05-19  浏览:0

/* 名称:用 ADC0808 控制 PWM 输出

说明:使用数模转换芯片 ADC0808,通过调节可变电阻 RV1 来调节脉冲宽度,

运行程序时,通过虚拟示波器观察占空比的变化。

*/

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit CLK=P2^4;  //时钟信号

sbit ST=P2^5;   //启动信号

sbit EOC=P2^6; //转换结束信号

sbit OE=P2^7;  //输出使能

sbit PWM=P3^0;    //PWM 输出

//延时

void DelayMS(uint ms)

{

uchar i;

while(ms--) for(i=0;i<40;i++);

}

//主程序

void main()

{

uchar Val;

TMOD=0x02; //T1 工作模式 2

TH0=0x14;

TL0=0x00;

IE=0x82;

TR0=1;

while(1)

{


 

ST=0;ST=1;ST=0;  //启动 A/D 转换

while(!EOC);  //等待转换完成

OE=1; 

Val=P1;      //读转换值

OE=0; 

if(Val==0)   //PWM 输出(占空比为 0%)

PWM=0; 

DelayMS(0xff);

continue; 

                 }

if(Val==0xff)   //PWM 输出(占空比为 100%)

PWM=1; 

                              DelayMS(0xff);

                               continue;  

           }

 

 

}


//T0 定时器中断给 ADC0808 提供时钟信号

void Timer0_INT() interrupt 1

{

CLK=~CLK;

}

 

PWM=1;   //PWM 输出(占空比为 0%~100%)

DelayMS(Val);

PWM=0; 

DelayMS(0xff-Val);

 

单片机C语言程序设计:用 ADC0808 控制 PWM 输出

拓展阅读:单片机与C语言通信程序

编辑:admin  最后修改时间:2018-05-19

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 All Rights Reserved.  粤ICP备14043402号-4

Baidu
map