51单片机怎样用键盘控制输出频率和占空比可调的方波

作者&投稿:蓬亨 (若有异议请与网页底部的电邮联系)
51单片机怎样用键盘控制输出频率和占空比可调的方波~

如果占空比可以控制、调整,就不能称之为方波,就是矩形波形,属于PWM波形。

用两个变量控制PWM的参数,一个控制周期长度,一个控制脉冲宽度。

用两个按键控制“周期长度”变量的+、-;
用两个按键控制“脉冲宽度”变量的+、-;

即可。

完全用程序做的话,就得用两个占空比可调的方波,用一个去调制另一个,来做调幅。

程序以验证。可以使用。用的是定时中断;P1尾输出端;我只写出了连个按键的试验效果,如果你需要更多的话,你自己往上加按键就OK 了希望随你有所帮助 #include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
sbit s1=P3^2;
sbit s2=P3^3;
sbit s3=P3^4;
uchar t,x;
void delay(uint z)
{
uint x,y;
for (x=0;x<z;x++)
for(y=110;y>0;y--);
}
void init()
{
x=40;
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
while(1)
{
if(s1==0)
{
delay(5);
if(s1==0)
{
while(!s1);
x=10;
}

}
if(s2==0)
{
delay(5);
if(s2==0)
{
while(!s2);
x=20;
}

}
}
}void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
if(t==x)
{
t=0;
P1=~P1;
}
}

ORG 0000HAJMP MAINMAIN:MOV R7,#0FFHMOV R6,#0FFHMOV R5,#0MOV R6,#0SETB P1.0LCALL DELAYCLR P1.0LCALL DELAY1JNB P2.0,ZJJNB P2.1,JXLJMP MAIN ZJ: DEC R6; 增加 INC R4 LJMP MAIN JX: INC R6; 减小 DEC R4 LJMP MAIN DELAY:D1: DJNZ R7,D1 DJNZ R6,DELAY RETDELAY1:D2: DJNZ R5,D2 DJNZ R4,DELAY RET高电平时间为(R7*2+3)*R6;低电平时间为(R5*2+3)*R4;P2.0是低电平时增加占空比p2.1是低点平时减小占空比P1.0口是pwm信号输出 大致写下哈.给点辛苦分吧


单片机中计算机键盘怎么找到的
单片机中计算机键盘怎么找到的?答案如下:方法如下:键盘工作原理键盘工作原理1. 按键输入的特点按键输入的特点 键盘实质上是一组按键开关的组合。通常使用的是触键盘实质上是一组按键开关的组合。通常使用的是触点式的机械弹性开关。利用机械触点的通断,实现点式的机械弹性开关。利用机械触点的通断,实现...

单片机原理及应用中键盘有几种输入方式,怎么连的
用的较多的是和矩阵按键。单独按键,就是一个一个连。矩阵按键,看图 另外还有其他的连接方式,原理都差不多

如何用电脑键盘控制单片机上的灯
很简单,上位机软件我就不写了,用STC-ISP的串口调试助手就行了,C51单片机程序如下:include "reg52.h"sbit LED=P1^3;unsigned char myKEY;\/\/存放电脑发送过来的按键 void main(void){ SCON=0xD0;\/\/串口工作模式3,允许接收 TMOD=0x20;\/\/定时器1工作模式2 ES=1;\/\/允许串口中断 EA=1;\/\/...

矩阵键盘说明书矩阵键盘
矩阵键盘说明书,矩阵键盘很多人还不知道,现在让我们一起来看看吧!矩阵键盘可能很多不相关的人都不太熟悉,很多人认为它只是一种类似于我们平常生活中常见的键盘。事实上,并非如此。作为单片机最重要的外设,矩阵键盘非常专业,对于不太了解的朋友来说,可能一开始根本不会操作。下面是一些机械键盘的使用...

单片机的按键如何外接
2、扫描矩阵式按键阵列:多个按键组成矩阵形式接到I\/O口上,单片机通过一定的扫描规则扫描按键状态。这种方式可以通过较少I\/O口挂接很多按键,主要是解决方式1的端口有限问题。比如,8X8的键盘矩阵可以实现64个按键,而只占用16个I\/O口,用方式1则需要64个I\/O口;3、用一个ADC端口外接多个按键,每个...

谁能帮我用单片机做一台“文字录入机”?
对于显示屏来说,并不困难,640×480点阵的液晶屏市面上有售的,但价格可能不象你所说那样便宜,因为我前一次买了一个12864的液晶屏还不带背光就已经80元了。所以除非量产,成本是下不来的,研究经费更加捉襟见肘,私人研究,再怎么着都得几千块钱。还有一个就你的键盘,恐怕得用折叠式的键盘了,...

如何进行单片机键盘电路的设计?
行是,P3.0-P3.3,例是,P3.4-P3.7,最后得到的键值存在,KEYS中数为,0-15,有什么问题可以再问...START:MOV P1,#00H MOV P2,#0FH CLR KEYCARD LOOP:ACALL KEY_CHECK JNB KEYCARD,LOOP ;为0从重新扫描 ACALL KEY_MARK ;为1有按键,调用KEY_MARK AJMP LOOP KEY_CHECK: ;键盘扫描 MOV...

单片机的键盘接口连接分为哪几类?说明各自的工作原理。键盘消抖是什么有...
一般而言,单片机与键盘接口有3种方式:1、静态接口方式;2、动态矩阵扫描方式;3、采用键盘管理芯片方式;第一种方式最简单,主要用于按键不多的情况,每个按键占用一条口线,第二种方式多用于按键较多的情况,比如用一个8位口就可以实现4x4键盘扫描,这种方式的优点是节省口线,缺点是占用了较多的MCU...

我要给C51单片机上加一个键盘要求能输入0~9是个数字
一般I\/O不够用,有2个办法:老旧的方式是:扩展芯片方式。如8255等,比较新颖的方法是:用A\/D方式。

简单的51单片机键盘C程序
如果正好按的是第一个键则能返回1,如果不是第一个键按下,但经过 if((keyvalue|=0xfb)!=0xff)这一判断,其中的“keyvalue|=0xfb”就把keyvalue变成0xff了,后面的判断条件自然不会满足。把这里的一些等于号再去掉试试看。另外,建议你对于按键扫描程序使用switch case 语句,这样条理更清晰。...

兴宁区15537268898: 51单片机怎样用键盘控制输出频率和占空比可调的方波 -
刀广德洛: 程序以验证.可以使用.用的是定时中断;P1尾输出端;我只写出了连个按键的试验效果,如果你需要更多的话,你自己往上加按键就OK 了希望随你有所帮助 #include "reg52.h"#define uchar unsigned char#define uint unsigned int sbit s1=P...

兴宁区15537268898: 求指点!我需要用4*4的键盘控制单片机的P1^0口输出不同大小的脉冲! -
刀广德洛: 按下不同的键,输出不同的频率,这就是个单片机电子琴.我在问题:http://zhidao.baidu.com/question/298429418.html 已经回答你了. 你却选择了一个驴唇不对马嘴的答案.按照下面程序,改成你需要的频率即可,很简单的:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d025718ab4fa7bdefc1f10b7.html

兴宁区15537268898: 求解一道难题!单片机怎样才能控制频率的实时输出? -
刀广德洛: 51单片机就可以实现,使用定时器的模式1,初值设置为:1/600<t<1/300即:1667us<t<3333us 如果晶振选择12M的话,可以设置初值为:x=t/2 THn=(65536-x)/256; TLn=(65536-x)%256; 其中833<x<1667

兴宁区15537268898: 跪求....用C51单片机输出频率及占空比可调的方波,分别用两个按键调增大和减小,并用三个八位数码管显 -
刀广德洛: 这个程序很简单的,提示你一下,但是不会给你写,因为会害了你,频率是定时器控制的 TH0=(65536-50000)/256;TL1=(65536-50000)%256;这样就能计时50ms;{ //中断里这样写 a++;} if(a<=n) { P0.1=1; //用按键控制n的值就能实现脉宽 } if(a<(m-n)&&a>n) { P0.1=0; //用按键去控制m就能实现周期也就是频率的控制 } a用完了清零 这样你就能完成你要的功能了 至于按键扫描,或者是数码管显示,还有定时器的初始化配置以及中断程序,自己解决吧

兴宁区15537268898: 如何在基于AT89C52单片机的信号发生器中加入矩阵键盘来输入频率和控制波形.? -
刀广德洛: 频率的话,如果用定时器产生方波,可以用一个变量控制定时器的定时时间来控制.波形,可以用电路实现么?? 不过我们学RAM的时候,老师说可以在RAM里面存入波形的数据然后循环提取,控制提取间隔=控制频率,控制波形的话只要寻址就可以了. 我是新手,只是说说我的想法给你一个参考.

兴宁区15537268898: 51单片机中键盘控制数码管显示有谁会? -
刀广德洛: 用51的话,由于51的I/O没有高阻态,用中断去扫描键盘的话你给的电路图是行不通的(个人意见仅供参考),想要节省CPU开销的话可以用定时器,定时扫描键盘.下面是仿真图和程序.#include#define uint unsigned int #define uchar ...

兴宁区15537268898: 51单片机 如何4*4矩阵键盘输入按键 继电器输出信号 -
刀广德洛: ........... Inter0_process() interrupt 2 //外部中断1 { Key_scan();//你的键盘扫描程序(中断服务程序),一旦触发中断,将运行至本段. } //主程序main() {........... ........... ........... EX1=1; //开中断一 P3.3 IT1=1; //下降沿触发 ET1=1; EA=1;........... ...........} 注:图中的键盘接法都是独立按键接发,矩阵键盘没有见过能直接触发中断的.

兴宁区15537268898: 51单片机要求输出50hz~1000hz方波,两个按键每次按下分别加减50hz,是通 -
刀广德洛: 占空比可以不变,一直是百分之50,直接改变定时器定时时长 周期=1/频率 定时时长=周期/2 假设晶振频率12M,定时器可以定时1us至65ms 1000HZ时周期1ms,定时500us 50HZ时周期为20ms 定时10ms,刚好在其定时范围内 假设key1是增加...

兴宁区15537268898: 用51单片机怎么控制输入输出 -
刀广德洛: 通常作输入时,要选置1,但单片机上电后,默认的是置1的,只要你不是做出其它用,再做输入,就不用置1了.但为保险起见,多置一次1,没有关系.作输出时,不用管它,直接用就行了.另外,51单片机的P口的任一脚能单独用于输入或输出,无需事先定义.不过,在用作输入时要确保该管脚的输出锁存器中的值为 1,因为该管脚的输出锁存器中的值为 0 时将使该脚处于0,而无法输入外部的高电平.具体做法,就是要么一直将该脚用作输入,这样在芯片复位时管脚的输出锁存器复位为1;要么在用作输入前先给该脚写个1,再从该脚读取输入信号.

兴宁区15537268898: 怎么用51单片机设定pwm的输出频率麻烦具体说明
刀广德洛: 这个实现起来丰俭由人,可以有三种办法: 1,软件定时,一段时间输出高,一段时间输出低,加起来就是PWM周期; 2,用硬件定时器代替软件定时,会准确,原理还是一样的; 3,带有PCC、TIM等高级专用计数器的,设置好寄存器之后,自动出来想要的频率和占空比,又准确又省心,频率还可以很高; 具体到单片机型号,可以找厂商的应用笔记,源代码的有.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网