向51单片机里写发出脉冲信号的c程序怎么编啊?

初学,弄不明白了啊~脉冲多少没关系,就是希望哪位大侠举个例子说明就好啊!... 初学,弄不明白了啊~脉冲多少没关系,就是希望哪位大侠举个例子说明就好啊! 展开
elaineliyan
2009-09-04 · TA获得超过446个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:137万
展开全部
//用ADC0808控制PWM输出
//通过可变电阻调节脉冲宽度
#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;
//延时
void Delay(uchar x)
{
uchar i;
while(x--)
for(i=0;i<40;i++);
}
void main()
{
uchar Val;
TMOD=0x02;//定时器T0工作于方式2自动重装8位计数器
TH0=0x14;
TL0=0x00;
IE=0x82; //允许T0中断
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;
Delay(0xff);
continue;}
if(Val==0xFF) // PWM输出占空比为100%
{
PWM=1;
Delay(0xff);
continue;
}
PWM=1;
Delay(Val); //PWM输出占空比
PWM=0;
Delay(0xff-Val);
}
}
//--------------------------------
//T0定时器中断给ADC0808提供时钟信号
//---------------------------------
void Timer0_INT() interrupt 1
{
CLK=!CLK; //ADC0808时钟
}

能看明白吗?我也是刚学的,照书上写的
moonf
2009-09-04 · TA获得超过5835个赞
知道大有可为答主
回答量:2246
采纳率:66%
帮助的人:737万
展开全部
假设用P1.1做输出
P1_1=P1^1;
P1_1=!P1_1;
对输出的那个IO口取反就会输出一个不同的电平。
比如当前P1_1=0,执行这句之后P1_1会输出1,就是你说的一个脉冲。如果用定时器,在中断里面写这句,可以得到方波。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式