|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 ldy7474 于 2019-3-13 21:06 编辑
<STC15W408AS.h> //STC12C5A60S2 专用头
#include "STC15W-ADC.h" //STC15W4K-ADC 硬件ADC模数转换
#define uint unsigned int
#define uchar unsigned char
unsigned int ADC1;
unsigned int num;
unsigned int pwm;
sbit pwm_out=P5^5;
void delay(uint t)
{
while(t--);
}
void init_t0()
{
TMOD=0X01;
TH0=(65536-160)/256;
TL0=(65536-160)%256;
EA=1;//开总中断
ET0=1;//开定时器中断
TR0=1;//启动定时器
}
void t0() interrupt 1
{
TR0=0;//进入中断先关掉定时器
TH0=(65536-160)/256;
TL0=(65536-160)%256;
num++;//num自增
if(num>99)//如果num大于32
{
num=0;
}
//然后比较两个数的值
if(num<=pwm)//如果num小于等于pwm
{
pwm_out=0;//输出低电平
}
else
{
pwm_out=1;//输出高电平
}
TR0=1;//启动定时器
}
void main()
{
InitADC();//ADC初始化
init_t0();//初始化定时器函数
num=0;//赋初值
while(1)
{
ADC0=ADC(1)/10.3;
pwm=ADC0;
|
| |