久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2135|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)按鍵模擬智能小車控制程序的加減速不受控,標(biāo)紅部分程序哪里有問題?

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 10 黑幣 回復(fù)本帖可獲得 5 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:64888 發(fā)表于 2022-10-22 23:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
各位朋友幫忙看下 單片機(jī)源程序如下:
#include<stc12c5a60s2.h>
#define uchar unsigned char
#define uint unsigned int
sbit go=P1^7;
sbit back=P3^7;
sbit turn_left=P1^6;
sbit turn_right=P3^6;
sbit turn_whistle=P1^5;
sbit turn_light=P3^5;
sbit whistle=P3^3;
sbit light=P3^2;
sbit quciken=P1^4;
sbit moderate=P3^4;
void delayms();
void keyscan();
uchar light_a=0,pwm_n=0;
uint speed=0;
//延時(shí)函數(shù)
void delayms(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)
          for(j=110;j>0;j--);
}
//按鍵函數(shù)
void keyscan()
{
        //按鍵控制前進(jìn)
        if(go==0)
        {
                delayms(10);
                if(go==0)
                {
                        P0=0X96;
                        while(!go);
                }
        }
        else
        {
                P0=0x00;
        }
        //按鍵控制后退
        if(back==0)
        {
                delayms(10);
                if(back==0)
                {
                        P0=0X69;
                        while(!back);
                }
        }
        else
        {
                P0=0x00;
        }

        //按鍵控制左轉(zhuǎn)
        if(turn_left==0)
        {
                delayms(10);
                if(turn_left==0)
                {
                        P0=0Xa5;
                        while(!turn_left);
                }
        }
        else
        {
                P0=0x00;
        }
        //按鍵控制右轉(zhuǎn)
        if(turn_right==0)
        {
                delayms(10);
                if(turn_right==0)
                {
                        P0=0X5a;
                        while(!turn_right);
                }
        }
        else
        {
                P0=0x00;        
        }
        //按鍵控制鳴笛
        if(turn_whistle==0)
        {
                delayms(10);
                if(turn_whistle==0)
                {
      whistle=0;
                        while(!turn_whistle);
                }
        }
        else
        {
          whistle=1;        
        }
        //按鍵控制亮燈
        if(turn_light==0)
        {
                delayms(10);
                if(turn_light==0)
                {
      light_a++;
                        if(light_a==1)
            {
                    light=0;
            }
            if(light_a>=2)
            {
                    light_a=0;
                    light=1;
            }
                        while(!turn_light);
                }
        }
        //按鍵控制減速
        if(quciken==0)
        {
                delayms(10);
                if(quciken==0)
                {
      speed=speed+2;
                        if(speed>=10)
            {
                    speed=10;
            }
                while(!quciken);
                }
        }
        //按鍵控制加速
        if(moderate==0)
        {
                delayms(10);
                if(moderate==0)
                {
      speed=speed-2;
                        if(speed<=1)
            {
                    speed=0;
            }
                        while(!moderate);
                }
        }
}
void main()
{
        TMOD=0x01;//定時(shí)器0為工作方式1
  TH0=(65536-917)/256;//5ms定時(shí)初值設(shè)置
  TL0=(65536-917)%256;
        EA=1;//開總中斷
        ET0=1;//開定時(shí)器0中斷
        TR0=1;//啟動定時(shí)器0中斷
        while(1)
        {
                keyscan();
                if(pwm_n>=speed)
          {
                  P2=0x00;
          }
          if(pwm_n<speed)
          {
            P2=0xf0;
          }
        }
}
void tim0()interrupt 1
{
        TH0=(65536-917)/256;//5ms定時(shí)初值設(shè)置
        TL0=(65536-917)%256;        
        pwm_n++;
        if(pwm_n>=9)
        {
                pwm_n=0;
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:86926 發(fā)表于 2022-10-23 17:00 | 只看該作者
你的按鍵是死循環(huán)檢測放開按鍵;當(dāng)有一個(gè)按鍵按下沒有放手時(shí);程序就在這個(gè)按鍵這里死循環(huán)不會執(zhí)行其他的程序了;除了中斷外
回復(fù)

使用道具 舉報(bào)

板凳
ID:844772 發(fā)表于 2022-10-24 08:31 | 只看該作者
uint speed=0;    speed=speed-2;  那這時(shí)speed的值是多少?要按多少次才能減下來,你的系統(tǒng)狀態(tài)又是什么了。
回復(fù)

使用道具 舉報(bào)

地板
ID:1048933 發(fā)表于 2022-10-24 09:12 | 只看該作者
有死循環(huán)跳不出去
回復(fù)

使用道具 舉報(bào)

5#
ID:64888 發(fā)表于 2022-10-24 10:44 來自手機(jī) | 只看該作者
藍(lán)魄 發(fā)表于 2022-10-23 17:00
你的按鍵是死循環(huán)檢測放開按鍵;當(dāng)有一個(gè)按鍵按下沒有放手時(shí);程序就在這個(gè)按鍵這里死循環(huán)不會執(zhí)行其他的程 ...

那怎么改呢,感謝指導(dǎo)!
回復(fù)

使用道具 舉報(bào)

6#
ID:64888 發(fā)表于 2022-10-24 10:44 來自手機(jī) | 只看該作者
YLHYLHYLHLLL 發(fā)表于 2022-10-24 09:12
有死循環(huán)跳不出去

怎么改才能讓他跳出去,不會玩了,感謝!
回復(fù)

使用道具 舉報(bào)

7#
ID:86926 發(fā)表于 2022-10-26 19:07 | 只看該作者
愛德華 發(fā)表于 2022-10-24 10:44
那怎么改呢,感謝指導(dǎo)!

改了循環(huán)再把定時(shí)器的中斷里的中斷標(biāo)志位清一下;好像STC的51芯片要軟件清零中斷標(biāo)志位的
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 东京久久 | 国产重口老太伦 | 福利片在线观看 | 国产成人精品一区二 | 日韩精品福利 | 久久久久国产 | 日韩电影在线 | 国产精品国产精品国产专区不蜜 | 国产精品永久免费 | 欧美成视频| 免费久久网站 | 日韩高清一区 | 日韩精品一区二区三区在线观看 | 日韩一区二区三区在线观看 | 国产欧美精品 | 亚洲国产在 | 亚洲一二三在线观看 | 午夜亚洲| 精品1区2区 | av网站免费观看 | 久久剧场| 日韩国产三区 | 中文字幕四虎 | 中文字幕在线观看一区 | 黄色一级视频 | 免费久久久 | 美女在线视频一区二区三区 | 国产精品高潮呻吟久久av黑人 | 中文成人在线 | 99久久精品国产一区二区三区 | 久久com| 一级片在线观看 | 欧美日韩黄色一级片 | 欧美精品在线免费观看 | 日韩成人av在线 | 超碰美女在线 | 精品粉嫩超白一线天av | 91资源在线 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 欧美中文在线 | 日韩电影a |