微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 基于51单片机的方波发生器 四个频率由四个按键控制

基于51单片机的方波发生器 四个频率由四个按键控制

时间:10-02 整理:3721RD 点击:

分别产生50,30,20,10Hz四种频率信号通过蜂鸣器的响声和继电器的通断速度来判断。四个按键分别对应一种频率,可互相切换。  p3.0-p3.3接按键,p2.0接蜂鸣器,p2.5接继电器
   我写的程序不能切换,只有一个频率10Hz,不知道哪有错误,大家帮忙指出错误改正一下吧。
     ORG  0000H
       LJMP  START
     ORG 0030H
  START:MOV A,#0FFH
        MOV P3,A
        MOV A,P3
        JNB ACC.0,KEY1
        JNB ACC.1,KEY2
        JNB ACC.2,KEY3
        JNB ACC.3,KEY4
        LJMP  START
     ORG 0060H
  KEY1:LJMP KET1
  KEY2:LJMP KET2
  KEY3:LJMP KET3
  KEY4:LJMP KET4
     ORG  0100H
  KET1:MOV TMOD,#01H
       MOV TH0,#0D8H
       MOV TL0,#0F0H
       SETB EA
       SETB ET0
       SETB TR0
  SELF1:AJMP SELF1
        LJMP START
     ORG  000BH
    LJMP KT1
     ORG  0150H
    KT1:MOV TH0,#0D8H
        MOV TL0,#0F0H
        CPL P2.0
        //CPL P2.5
     RETI
     ORG  0200H
   KET2:MOV TMOD,#01H
         MOV TH0,#0BEH
         MOV TL0,#0C4H
         SETB EA
         SETB ET0
         SETB TR0
  SELF2:AJMP SELF2
         LJMP START
     ORG  000BH
       LJMP KT2
      ORG  0250H
   KT2:MOV TH0,#0BEH
       MOV TL0,#0C4H
       CPL P2.0
       //CPL P2.5
     RETI
     ORG  0300H
  KET3:MOV TMOD,#01H
       MOV TH0,#9EH
       MOV TL0,#58H
       SETB EA
       SETB ET0
       SETB TR0
  SELF3:AJMP SELF3
       LJMP START
     ORG  000BH
       LJMP KT3
     ORG  0350H
  KT3:MOV TH0,#9EH
      MOV TL0,#58H
      CPL P2.0
      //CPL P2.5
     RETI
     ORG  0400H
  KET4:MOV TMOD,#01H
       MOV TH0,#3CH
       MOV TL0,#0B0H
       SETB EA
       SETB ET0
       SETB TR0
  SELF4:AJMP SELF4
        LJMP START
     ORG  000BH
       LJMP KT4
     ORG  0450H
  KT4:MOV TH0,#3CH
      MOV TL0,#0B0H
      CPL P2.0
      //CPL P2.5
     RETI
     END

等高手。帮顶、

汇编……我勒个去……

我很久没碰汇编了,现在基本都是用C,硬着头皮帮你看了一下,修改的部分用红色标识了,可能不全对,但希望对你有帮助。
//  我写的程序不能切换,只有一个频率10Hz,不知道哪有错误,大家帮忙指出错误改正一下吧。
     ORG  0000H
       LJMP  START
     ORG 0030H
  START:MOV A,#0FFH //
        MOV P3,A
        MOV A,P3
              MOV ACC,A   //加这一句试。
        JNB ACC.0,KEY1  //
        JNB ACC.1,KEY2
        JNB ACC.2,KEY3
        JNB ACC.3,KEY4
        LJMP  START
     ORG 0060H
  KEY1:LJMP KET1
  KEY2:LJMP KET2
  KEY3:LJMP KET3
  KEY4:LJMP KET4
     ORG  0100H
  KET1:MOV TMOD,#01H
       MOV TH0,#0D8H
       MOV TL0,#0F0H
       SETB EA
       SETB ET0
       SETB TR0
  SELF1:AJMP SELF1
        LJMP START
     ORG  000BH
    LJMP KT1
     ORG  0150H
    KT1:MOV TH0,#0D8H
        MOV TL0,#0F0H
        CPL P2.0
        //CPL P2.5
     RETI
     ORG  0200H
   KET2:MOV TMOD,#01H
         MOV TH0,#0BEH
         MOV TL0,#0C4H
         SETB EA
         SETB ET0
         SETB TR0
  SELF2:AJMP SELF2
         LJMP START
     ORG  000BH
       LJMP KT2
      ORG  0250H
   KT2:MOV TH0,#0BEH
       MOV TL0,#0C4H
       CPL P2.0
       //CPL P2.5
     RETI
     ORG  0300H
  KET3:MOV TMOD,#01H
       MOV TH0,#9EH
       MOV TL0,#58H
       SETB EA
       SETB ET0
       SETB TR0
  SELF3:AJMP SELF3
       LJMP START
     ORG  000BH
       LJMP KT3
     ORG  0350H
  KT3:MOV TH0,#9EH
      MOV TL0,#58H
      CPL P2.0
      //CPL P2.5
     RETI
     ORG  0400H
  KET4:MOV TMOD,#01H
       MOV TH0,#3CH
       MOV TL0,#0B0H
       SETB EA
       SETB ET0
       SETB TR0
  SELF4:AJMP SELF4
        LJMP START
     ORG  000BH
       LJMP KT4
     ORG  0450H
  KT4:MOV TH0,#3CH
      MOV TL0,#0B0H
      CPL P2.0
      //CPL P2.5
     RETI
     END

正好最近用汇编写了一个周期可以调节的方波产生程序,若是需要可以联系

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top