单片机脉冲微盘_单片机产生脉冲波

晶振

12M

任意占空比方波输出

信号发生器又称波形发生器,

是一种常用的信号源,

被广泛地应用于无线电通信、

自动测量

和自动控制等系统中。

传统的信号发生器绝大部分是由模拟电路构成,

借助电阻电容,

电感电容、

谐振腔、同轴线作为振荡回路产生正弦或其它函数波形。频率的变动由机械驱动可变元件完成,

当这种模拟信号发生器用于低频信号输出往往需要的

RC

值很大,

这样不但参数准确度难以保证,

而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,

价格较贵。

在今天,随着大规模集成电路和信号发生器技术的发展,许多新型信号发生器应运而生。

用信号发生器并配置适当接口芯片产生程控正弦信号,

则可替代传统的正弦信号发生器,

从而有

利于测试系统的集成化、程控化和智能仪表的多功能化。而信号发生器的最大特点是面向控制,

由于它集成度高、运算速度快、体积小、运行可靠、价格低,因此在数据采集、智能化仪器等技

术中得到广泛的应用,

从而使得信号发生器的应用成为工程技术多学科知识汇集的一个专门研究

领域,其应用产生了极高的经济效益和社会效益。

如果是占空比任意,现在考虑

12M

晶振,

所以机器周期

Tcy

1

s

定时器工作方式

1

最长定时为

65536

×

1

×

10

-6

=65.536ms

如果要输出周期为

1s

的任意占空比的方波。那可以把

1s

分为

100

份,每份中断一次。然后在中

断里面计数(比如全局变量

num

)加一。加到

100

之后,表示一个周期结束。这样就可以控制每

一份的电平的高低了。如果,占空比为

30%

,那么也就是

num

小于等于

100

×

30%=30

的时候,

输出高电平,其余输出低电平就可以了。如果占空比为

a

(百分号的形式)

,那么也就是

num

于等于

100

×

a

的时候输出高电平,其余输出低电平就可以了。

现在考虑定时器的初值如何设定,

由于定时器需要在

1s/100

也就是

10ms

的时候进入一次中断进

行判断。如果采用方式

1

,那么因为

(2

16

X

)

1

10

6

= 10

10

3

所以定时器的初值为

X=65536

1000.

#include //

头文件

sbit output=P1^1; //

输出端

unsigned char

num=1; //

辅助计时

unsigned int a = 0.3;

占空比

a

可以任意设定

void Init(void) //

初始化函数

{

//

对于定时器一般初始化需要六步

TMOD=0x01;

TH0=(65536-1000)/256; //

(

65536-1000

)为定时器初值,定时

10ms

TL0=(65536-1000)%256;

EA=1;

ET0=1;

TR0=1;

}

main()

{

Init();

while(1)

{

if(num<=100*a)output=1; //

使占空比为

a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值