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

QQ登錄

只需一步,快速開(kāi)始

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

求助,怎么在51單片機(jī)上添加可調(diào)控的按鈕

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:973730 發(fā)表于 2021-10-21 13:47 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#include<intrins.h> //庫(kù)函數(shù)
#define uint unsigned int
#define uchar unsigned char//宏定義
void delay(uint xms)//延時(shí)函數(shù)
{
              uint i,j;
              for(i=xms;i>0;i--)
                            for(j=110;j>0;j--);
}
void zys(uint t)//左右閃爍
{
              while(t--)
              {
                            P3=P2=0x00;
                            delay(500);

P1=P0=0x00;
                            delay(500);
                            P1=P0=0xff;
              }
}
void qs(uint t)//全部閃亮
{
              while(t--)
              {
                            P0=P1=P2=P3=0xff;
                            delay(300);
                            P0=P1=P2=P3=0x00;
                            delay(300);
              }
              P1=P2=P3=P0=0xff;
}
void ycdl(uint t)//依次點(diǎn)亮
{
              uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
              uint i;
              while(t--)
              {
                            for(i=0;i<8;i++)
                                          {
                                                        P0=table[i];
                                                        delay(200);
                                          }
                            for(i=0;i<8;i++)
                                          {
                                                        P1=table[i];
                                                        delay(200);
                                          }
                            for(i=0;i<8;i++)
                                          {
                                                        P2=table[i];
                                                        delay(200);
                                          }
                            for(i=0;i<8;i++)
                                          {
                                                        P3=table[i];
                                                        delay(200);
                                          }
              }
}
void ycxm (uint t)//依次熄滅
{
                            uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
              uint i;
              while(t--)
              {
                            P0=P1=P2=P3=0x00;
                            for(i=0;i<8;i++)
                                          {
                                                        P0=~table[i];
                                                        delay(200);
                                          }
                            for(i=0;i<8;i++)
                                          {
                                                        P1=~table[i];
                                                        delay(200);
                                          }
                            for(i=0;i<8;i++)
                                          {
                                                        P2=~table[i];
                                                        delay(200);
                                          }
                            for(i=0;i<8;i++)
                                          {
                                                        P3=~table[i];
                                                        delay(200);
                                          }
              }
}
void jgs(uint t)//間隔閃爍
{
              while(t--)
              {
                            P0=P1=P2=P3=0xaa;
                            delay(500);
                            P0=P1=P2=P3=~0xaa;
                            delay(500);
              }
              P0=P1=P2=P3=0xff;
              delay(200);
}

void sszs(uint t)//順時(shí)針閃爍
{
              uchar a,i;
              while(t--)
              {
                            a=0xfe;
                            for(i=0;i<8;i++)
                            {
                                          P0=a;
                                          delay(200);
                                          a=_crol_(a,1);
                            }
                            P0=0xff;
                            a=0xfe;
                            for(i=0;i<8;i++)
                            {
                                          P1=a;
                                          delay(200);
                                          a=_crol_(a,1);
                            }
                            P1=0xff;
                            a=0xfe;
                            for(i=0;i<8;i++)
                            {
                                          P2=a;
                                          delay(200);
                                          a=_crol_(a,1);
                            }
                            P2=0xff;
                            a=0xfe;
                            for(i=0;i<8;i++)
                            {
                                          P3=a;
                                          delay(200);
                                          a=_crol_(a,1);
                            }
                            P3=0xff;
              }
}
void nszs(uint t)//逆時(shí)針閃爍
{
              uchar a,i;
              while(t--)
              {
                            a=0x7f;
                            for(i=0;i<8;i++)
                            {
                                          P3=a;
                                          delay(200);
                                          a=_cror_(a,1);
                            }
                            P3=0xff;
                            a=0x7f;
                            for(i=0;i<8;i++)
                            {
                                          P2=a;
                                          delay(200);
                                          a=_cror_(a,1);
                            }
                            P2=0xff;
                            a=0x7f;
                            for(i=0;i<8;i++)
                            {
                                          P1=a;
                                          delay(200);
                                          a=_cror_(a,1);
                            }
                            P1=0xff;
                            a=0x7f;
                            for(i=0;i<8;i++)
                            {
                                          P0=a;
                                          delay(200);
                                          a=_cror_(a,1);
                            }
                            P0=0xff;
              }
}
void djs1(uint t)//對(duì)角閃爍2個(gè)順時(shí)針
{
              uchar i;
              uchar code table[]={0xf0,0xe1,0xc3,0x87,0x0f,0x1f,0x3f,0x7f,
                                               0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,
                                               0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,
                                               0xf0,0xe1,0xc3,0x87,0x0f,0x1f,0x3f,0x7f,0xff};                                                                 
              while(t--)
              {
                            for(i=0;i<17;i++)
                                          {
                                                        P0=P2=table[i];
                                                        P1=P3=table[i+17];
                                                        delay(200);
                                          }
                            for(i=0;i<17;i++)
                                          {
                                                        P1=P3=table[i+17];
                                                        P0=P2=table[i];
                                                        delay(200);
                                          }
              }
              delay(300);
              P0=P1=P2=P3=0xff;
}
void djs2(uint t)//對(duì)角閃4個(gè)逆時(shí)針
{
              uchar i;
              uchar code table[]={0x0f,0x87,0xc3,0xe1,0xf0,0x78,0x3c,0x1e,0x0f};
              while(t--)
              {
                            for(i=0;i<9;i++)
                                          {
                                                        P1=P2=P3=P0=table[i];
                                                        delay(200);
                                          }
              }
}
void sxhx(uint t)//從上往下畫心
{
              uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,
                                                                                                                                                          0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
              uint i;
              while(t--)
              {
                            for(i=0;i<8;i++)
                                          {
                                                        P0=table[i];
                                                        P3=table[i+8];
                                                        delay(200);
                                          }
                            for(i=0;i<8;i++)
                                          {
                                                        P1=table[i];
                                                        P2=table[i+8];
                                                        delay(200);
                                          }
                            P1=P2=P3=P0=0xff;
                            delay(300);
              }
}

void main()
{
while(1)
{
ycdl(1);
              ycxm(1);
              jgs(3);
              sszs(1);
              nszs(1);
              djs1(1);
                            djs2(3);
                            zys(3);
                            sxhx(1);
                            qs(3);
}       
}

仿真圖.png (166.08 KB, 下載次數(shù): 39)

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

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2021-10-21 16:46 | 只看該作者
添加可調(diào)控的按鈕:【添加】【可調(diào)控】的【按鈕】
【添加】、【按鈕】:這個(gè)你隨意,極易做。
【可調(diào)控】:誰(shuí)來(lái)調(diào),誰(shuí)來(lái)控?控什么?誰(shuí)執(zhí)行?你能說(shuō)說(shuō)嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:161164 發(fā)表于 2021-10-21 17:05 | 只看該作者
調(diào)控什么?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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