我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 2132|回复: 2

[技术讨论] 谁能帮我看下这个程序怎么改 谢谢了

[复制链接]

该用户从未签到

24

主题

325

回帖

179

积分

二级逆天

积分
179

终身成就奖社区居民宣传大使奖优秀斑竹奖忠实会员

QQ
发表于 2013-12-1 22:55:28 | 显示全部楼层 |阅读模式
#include<reg52.h>
#define  uint   unsigned int
#define  uchar  unsigned char
sbit led=P1^5;
sbit beep=P1^0;
uchar a,b;
void  delay(uint z)
    {
         uint x,y;
        for(x=z;x>0;x--)
            for(y=110;y>0;y--);
    }
void keyscan()
    {
        uchar temp;
        P3=0xfe;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
            {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                    {
                        temp=P3;
                        switch(temp)
                        {
                            case 0xee:
                                 a=63628  ;
                                 b=63628  ;
                                 break;
                            case 0xde:
                                 a=63835  ;
                                 b=63835  ;
                                 break;
                            case 0xbe:
                                 a=64021  ;
                                 b=64021  ;
                                 break;
                            case 0x7e:
                                 a=64103  ;
                                 b=64103  ;
                                 break;
                                 default:beep=0;
                        }
                while(temp!=0xf0)
                {
                    temp=P3;
                    temp=temp&0xf0;

                }
            }
        }
        P3=0xfd;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
            {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                    {
                        temp=P3;
                        switch(temp)
                        {
                            case 0xed:
                                 a=64260  ;
                                 b=64260  ;
                                 break;
                            case 0xdd:
                                 a=64400  ;
                                 b=64400  ;
                                 break;
                            case 0xbd:
                                 a=64524  ;
                                 b=64524  ;
                                 break;
                            case 0x7d:
                                 a=64580  ;
                                 b=64580  ;
                                 break;
                                 default:beep=0;
                        }
                while(temp!=0xf0)
                {
                    temp=P3;
                    temp=temp&0xf0;

                }
            }
        }
           P3=0xfb;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
            {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                    {
                        temp=P3;
                        switch(temp)
                        {
                            case 0xeb:
                                 a=64633  ;
                                 b=64633  ;
                                 break;
                            case 0xdb:
                                 a=64732  ;
                                 b=64732  ;
                                 break;
                            case 0xbb:
                                 a=64820  ;
                                 b=64820  ;
                                 break;
                            case 0x7b:
                                 a=64898  ;
                                 b=64898  ;
                                 break;
                                 default:beep=0;
                        }
                while(temp!=0xf0)
                {
                    temp=P3;
                    temp=temp&0xf0;

                }
            }
        }

        P3=0xf7;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
            {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                    {
                        temp=P3;
                        switch(temp)
                        {
                            case 0xe7:
                                 a=64968  ;
                                 b=64968  ;
                                 break;
                            case 0xd7:
                                 a=65030  ;
                                 b=65030  ;
                                 break;
                            case 0xb7:
                                 a=65058  ;
                                 b=65058  ;
                                 break;
                            case 0x77:
                                 a=65110  ;
                                 b=65110  ;
                                 break;
                                 default:beep=0;
                        }
                while(temp!=0xf0)
                {
                    temp=P3;
                    temp=temp&0xf0;

                }
            }
        }
    }
void main()
    {
         
   
         TMOD=0x01;
         TH0=a/256;
         TL0=b%256;
         EA=1;
         ET0=1;
         TR0=1;
         keyscan();
         
        
    }
void T0_timer1()  interrupt 1
    {
        TH0=a/256;
        TL0=b%256;
        beep=~beep;
   
    }
看看问题出在哪   我想做个电子琴 仿真之后蜂鸣器不能发出那种音调 总是哔哔的响,还有按键程序也有点不对 能帮忙看看吗

原理图

原理图
回复

使用道具 举报

该用户从未签到

6

主题

316

回帖

295

积分

二级逆天

积分
295

终身成就奖特殊贡献奖原创先锋奖社区居民社区劳模

QQ
发表于 2013-12-2 09:01:38 | 显示全部楼层
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-7-11 13:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    6216

    主题

    9457

    回帖

    20万

    积分

    管理员

    积分
    204884

    原创先锋奖终身成就奖优秀斑竹奖宣传大使奖社区居民社区明星社区劳模最爱沙发新人进步奖忠实会员金点子奖特殊贡献奖

    发表于 2013-12-2 12:08:57 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表