怎样设计一个周期为10s,占空比为50%的方波输出信号?

 我来答
杨亮亮天飞
2015-04-08
知道答主
回答量:14
采纳率:0%
帮助的人:8.4万
展开全部
不知道是不是用的51系列,如果是51:
用C语言实现的,先要定义好定时器的初值
不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期
机器周期=12/n(n指晶振频率),假设你要定时的时间为M
那么定时的初值为:
M/机器周期=初值;
TH0=(65536-初值)%256;
TL0=(65536-初值)/256;
将(65536-初值)所得的值化成16进制,其高位就是TH0的值,低位为TL0的值,数值65536代表可以计数65536us。
假设中断时间为1ms,也即
65536-1000=64536化为16进制为:0xFC18
TH0=0xFC;
TL0=0X18;
这样的话中断部分程序:
#include<reg51.h>
sbit P0_0=P0^0; //输出方波端口
unsigned int num,count;
void main()
{
TMOD=0x1; //T0,工作方式1
TH0=0xFC; //1ms定时
TL0=0X18;
TR0=1; //开启T0定时器
ET0=1; //允许T0定时器中断
EA=1; //开启总中断允许
P0_0=0;
num=0; //被显示的数置0
while(1) //一直调用显示,等待T0中断修改显示数据
{
if (num ==0)
P0_0=1;
if (num ==1)
P0_0=0;
}
}

void time0(void) interrupt 1
{

TH0=0xFC; //1ms定时
TL0=0X18;
count++;
if (count ==1000)
num = !num;
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式