求助:怎样改进,能够实现一个按键控制不同频率

2019-07-16 04:31发布

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit OUT=P2^2;    //定义OUT输出端口
sbit key1=P3^2;//定义按键位置 独立按键模式
sbit key2=P3^3;
sbit key3=P3^4;
sbit key4=P3^5;
void Init_timer0(void)
{
TMOD |= 0x01;   //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响      
EA=1;            //总中断打开
ET0=1;           //定时器中断打开
TR0=1;           //定时器开关打开
}
main()
{
Init_Timer0();
while(1);
}
void Timer0_isr(void) interrupt 1 using 1
{
      if(!key1)     {TH0=(65536-50000)%256;TL0=(65536-50000)/256;OUT=~OUT;}//
   else if(!key2){TH0=(65536-20000)%256;TL0=(65536-20000)/256;OUT=~OUT;}//
   else if(!key3){TH0=(65536-10000)%256;TL0=(65536-10000)/256;OUT=~OUT;}//
   else if(!key4){TH0=(65536-5000)%256;TL0=(65536-5000)/256;OUT=~OUT;}//
}

以上为频率可变的方波,但是是通过四个按键改变频率的,我想通过一个按键,来实现改变频率的功能,求助大神帮忙!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
lovezjf234
1楼-- · 2019-07-16 06:35
公式65536-x.把X设为变量,按一下按键x变一下,变的范围自己考虑,就行了
sherry不在
2楼-- · 2019-07-16 07:01
 精彩回答 2  元偷偷看……
lovezjf234
3楼-- · 2019-07-16 10:06
按键有问题在里面加一个while(!key1);你的问题是按键在按下的时候一直在程序运行,导致按键功能执行了n次,所以得到的结果最后连你自己都不知道。在做按键的时候注意避免这种情况的发生

一周热门 更多>