找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 8374|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)通過按鍵控制舵機(jī)轉(zhuǎn)動(dòng)角度程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:190132 發(fā)表于 2017-4-16 16:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
sbit pwm=P3^0;//PWM信號(hào)輸出口
sbit up=P3^7;//角度增加按鍵檢測(cè)I/O口
sbit down=P3^6;//角度減少按鍵檢測(cè)I/O口
sbit we=P2^7;
sbit du=P2^6;
unsigned char angle;//角度標(biāo)識(shí)
unsigned char count;//0.5ms次數(shù)標(biāo)識(shí),可修改
unsigned code leddata[]={

                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
                0x77,  //"A"
                0x7C,  //"B"
                0x39,  //"C"
                0x5E,  //"D"
                0x79,  //"E"
                0x71,  //"F"
                0x76,  //"H"
                0x38,  //"L"
                0x37,  //"n"
                0x3E,  //"u"
                0x73,  //"P"
                0x5C,  //"o"
                0x40,  //"-"
                0x00,  //熄滅
                0x00  //自定義

                         };



void delay(unsigned char z)
{
unsigned char x,y;
  for(x=z;x>0;x--)
    for(y=114;y>0;y--);
}

void Time0_Init()//定時(shí)器初始化
{
TMOD=0x01;//定時(shí)器0工作在方式1
IE=0x82;
TH0=0xfe;
TL0=0x33;//11.0592MHz晶振,0.5ms
TR0=1;//定時(shí)器開始
}

void Time0_Int() interrupt 1
{
        TH0=0xfe;
        TL0=0x33;
        if(count<angle)   //判斷0.5ms次數(shù)是否小于角度標(biāo)識(shí)
        pwm=1;//確實(shí)小于,pwm輸出高電平
        else
        pwm=0;//大于則輸出低電平
        count=(count+1);//0.5ms次數(shù)加1
        count=count%40;//次數(shù)始終保持為40即保持周期為20ms
}

void keyscan()//按鍵掃描
{
        if(up==0)//角度增加按鍵是否按下
        {
                delay(10);//按下延時(shí),消抖
                if(up==0)//確實(shí)按下
                {
                        angle++;//角度標(biāo)識(shí)加1
                        count=0;//按鍵按下則20ms周期從新開始
                        if(angle==6)
                                angle=5;//已經(jīng)是180度,則保持?
                                while(up==0);//等待按鍵放開?
                }
        }
        if(down==0)//角度減小按鍵是否按下
        {
                delay(10);
                if(down==0)
                {
                        angle--;//角度標(biāo)識(shí)減1
                        count=0;
                        if(angle==0)
                                angle=1;//已經(jīng)是0度,則保持
                                while(down==0);
                }
        }
}

void display()
{
        unsigned char bai,shi,ge;
        switch(angle)
        {
                case 1:bai=0;shi=0;ge=0;break;
                case 2:bai=0;shi=4;ge=5;break;
                case 3:bai=0;shi=9;ge=0;break;
                case 4:bai=1;shi=3;ge=5;break;
                case 5:bai=1;shi=8;ge=0;break;
        }
        du=0;
        P0=leddata[bai];
        du=1;
        du=0;
        we=0;
        P0=0xfe;
        we=1;
        we=0;
        delay(5);
        P0=leddata[shi];
        du=1;
        du=0;
        P0=0xfd;
        we=1;
        we=0;
        delay(5);
        P0=leddata[ge];
        du=1;
        du=0;
        P0=0xfb;
        we=1;
        we=0;
        delay(5);
}               
                       
void main()
{
        angle=1;
        count=0;
        Time0_Init();
        while(1)
        {
                keyscan();//按鍵掃描
                display();
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:221507 發(fā)表于 2017-7-26 09:46 | 只看該作者
很棒棒 謝謝樓主
回復(fù)

使用道具 舉報(bào)

板凳
ID:221324 發(fā)表于 2017-7-26 18:07 | 只看該作者
謝謝,樓主
回復(fù)

使用道具 舉報(bào)

地板
ID:231115 發(fā)表于 2017-9-5 19:28 | 只看該作者
樓主,我先問你的這個(gè)程序能用嗎,有電路圖嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:231115 發(fā)表于 2017-9-5 19:29 | 只看該作者
樓主,我先問你,你的這個(gè)程序能用嗎,有電路圖嗎
回復(fù)

使用道具 舉報(bào)

6#
ID:177855 發(fā)表于 2017-9-5 23:28 | 只看該作者
不管看得懂不,都必須頂下。。。
回復(fù)

使用道具 舉報(bào)

7#
ID:327060 發(fā)表于 2018-5-11 18:46 | 只看該作者
兄弟有沒有仿真圖
回復(fù)

使用道具 舉報(bào)

8#
ID:326347 發(fā)表于 2018-5-14 16:23 | 只看該作者
樓主,你這有電路圖嗎?可以仿真嗎?
回復(fù)

使用道具 舉報(bào)

9#
ID:338761 發(fā)表于 2019-1-15 16:08 來自手機(jī) | 只看該作者
這個(gè)是郭天祥的原程序
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表