如何用单片机按1时输出一个方波,按2输出2个方波。

本人以把按键1,2,3,4等定义好了。是不是做个变量把他存进一个数组。然后用定时器读取这个数,用定时器去控制波的输出。有没有更简单的方法。
不好意思我表达错了,是脉冲信号

输出1个方波,输出2个方波?是要脉冲吧。方波是连续的波形,怎么会有几个的说法。脉冲才有几个的说法。追问

是我表达的问题,是脉冲。

是我表达的问题,是脉冲。

追答

你的按键是扫描方式的?判断哪个按键按下再选择输出几次脉冲即可。注意按键消抖

温馨提示:内容为网友见解,仅供参考
无其他回答

51单片机怎样用一个定时器输出两路方波
你的程序只有一处错误,我已通过测试,请将mian改为main.另外,如果方便请将#include <AT89X51.H>改为#include "regx52.h"请采纳,谢谢。

怎样用定时器输出方波信号啊?
使用定时器:单片机中的定时器可以输出一定频率和占空比的方波脉冲信号。具体步骤如下:(1)设置定时器的计数器初值和重装载值,以确定定时器的计数范围和计时周期。 (2)设置定时器的工作模式,例如模式1或模式2。 (3)开启定时器中断和计数器。定时器中断触发时,产生一次方波脉冲信号。使用GPIO口:...

如何用51单片机输出不同频率的方波?
unsigned int counter1, counter2;void Timer0_Init(){ TMOD = 0x01; \/\/ 设置 Timer0 为模式 1(16 位计数器)TH0 = 0xFC; \/\/ 初始化频率为 1kHz 的方波 TL0 = 0x67;TR0 = 1; \/\/ 启动 Timer0 } void Timer1_Init(){ TMOD = ((TMOD & 0x0F) | 0x10); \/\/ 设置 Timer1 ...

怎么让51单片机定时输出方波信号呢?
51单片机的定时器T0要工作在方式1,才能定时10ms。而TMOD=0x02,是方式2,定时最长只有256us,是不行的,应该是TMOD=0x01,才对。采用中断方式,对10ms定时中断计数50次为500ms,交替从P1.1输出高电平和低电平,即输出周期 为1S的方波信号了。如下的仿真图,示波器测试为1S的方法信号。

一个单片机同时产生两个频率不同的方波.这个可能吗
可以,只是频率不能太高 如定时100us中断一次,每中断一次将某一个管脚的电平状态态取反一次,就得到5kHZ方波,每中断2次或3次将另外一个管脚取反,就得到2·5KHZ或1·667kHZ的方波 如果定时很短,则中断很频繁,单片机就干不了其他工作了 因此产生方波频率不能太高 ...

用单片机发生方波 程序
定时时间=方波周期\/2=4 微秒定时时间 t=(2的8次方-X)12\/(12×1000000)=(256-x)×1微秒 X=256-4=252=0FCH 由于定时时间很短 工作在方式可以选择方式2 为8位自动重装载的 选择定时器T1定时 参考程序 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV TMOD,#20H...

单片机定时器输出波形汇编程序
呵呵 俺把你分析一下:1 分析:外部信号是周期为200ms的连续方波,即周期=0.2秒 作为定时器用T1的计数输入,当计数到5时 计时=1秒 定时计数器1可以申请中断 对P1.0求反 则可以实现从P1.0连续输出2秒的方波。设置定时计数器1 工作在方式2 计数 计数值=256-时间常数=...

如何用C语言编程使单片机产生方波信号
如果是单纯输出方波的话就简单了。程序如下:\/\/功能,按下P1_0的开关降低频率,按P1_1为升高频率 include<AT89X52.H> \/\/引用AT89X52的库文件 define uchar unsigned char \/\/替换简称 define uint unsigned int \/\/替换简称 uchar sm;\/\/定义临时变量 void delay_ms(uint ms)\/\/延时子函数,一...

单片机产生方波的原理是什么啊???
就是单片机输出的时候一直翻转,举例说明:单片机输出高电平一秒,然后关断一秒,然后……如此翻转输出,你就得到了一个频率为0.5Hz的方波了

如何用C语言编程使单片机产生方波信号
你要看一下你使用的单片机的PWM或者时钟模块,里面会有一项功能,捕捉单片机PIN脚上的电平变化,通常叫输入捕捉。这种功能通常都有一个自由时钟在运行,通过单片机的寄存器配置可以设置——捕捉输入PIN脚上的上升沿还是下降沿,或者两种变化沿都捕捉,当PIN脚上出现对应的变化沿时,输入捕捉功能会将此时自由...

相似回答