1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求高手能在不影響程序使用的前期下把兩個(gè)程序合成一個(gè)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:271839 發(fā)表于 2018-1-9 22:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
程序一:數(shù)碼管動(dòng)態(tài)顯示
#include <reg52.h>

/*
*                數(shù)碼管動(dòng)態(tài)顯示學(xué)號(hào)
*                          朱建康
*/
sbit led1 = P3^7;
sbit led2 = P3^6;
sbit led3 = P3^5;
sbit led4 = P3^4;

//數(shù)碼管0~9緩存
unsigned char code LedChar[]={
        0x82, 0xE7, 0x2A, 0x26, 0x47, 0x16, 0x12, 0xA7,
        0x02, 0x06};
//學(xué)號(hào):150401114
unsigned char IDBuff[] = {
        0xFF, 0x7F, 0x7F, 0x7F, 0x43, 0x1a, 0xda, 0xda,
        0x82, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF,
        0xFF};
unsigned char LedBuff[9];
unsigned char flag_200ms = 0;
/*
*  主函數(shù)
*/
void main(void)
{
        unsigned char t = 0;
        TMOD = 0X01;
        TH0 = 0XFC;
        TL0 = 0X67;
        TR0 = 1;
        EA = 1;
        ET0 = 1;

        while(1)
        {
                if(flag_200ms == 1)
                {
                        flag_200ms = 0;
                        LedBuff[0] = IDBuff[t];
                        LedBuff[1] = IDBuff[t+1];
                        LedBuff[2] = IDBuff[t+2];
                        LedBuff[3] = IDBuff[t+3];

                        t++;
                        if(t>=18) t = 0;
                }
        }

}

void InterruptTime0() interrupt 1
{
        static unsigned char i = 0;
        static unsigned char cnt = 0;
        TH0 = 0xFC;
        TL0 = 0X67;       

        cnt++;

        if(cnt>200)
        {
                cnt = 0;
                   flag_200ms = 1;
        }

        P2 = 0xFF;        //消隱
        switch(i)
        {
                case 0: led1=0; led2=1; led3=1; led4=1; i++; P2=LedBuff[0]; break;
                case 1: led1=1; led2=0; led3=1; led4=1; i++; P2=LedBuff[1]; break;
                case 2: led1=1; led2=1; led3=0; led4=1; i++; P2=LedBuff[2]; break;
                case 3: led1=1; led2=1; led3=1; led4=0; i=0; P2=LedBuff[3]; break;
                default: break;
        }
}


程序二:蜂鳴器放歌
#include <STC15F2K60S2.h>

unsigned char Count;
sbit _Speak =P5^4;
unsigned char code SONG[] ={      //祝你平安
0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00
};

void Time1_Init()
{
TMOD = 0x10;
IE   = 0x82;
TH1  = 0xD8;
TL1  = 0xEF;  //12MZ晶振,10ms
}

void Time0_Int() interrupt 3
{
TH1 = 0xD8;
TL1 = 0xEF;
Count++;   //長度加1
}

/*-------------------------------------------------
功能:1MS延時(shí)子程序
-------------------------------------------------*/
void Delay_xMs(unsigned int x)
{
    unsigned int i,j;
    for( i =0;i < x;i++ )
    {
        for( j =0;j<3;j++ );
    }
}

void Play_Song(unsigned char i)
{
unsigned char Temp1,Temp2;
unsigned int Addr;
Count = 0;      //中斷計(jì)數(shù)器清0
Addr = i * 217;
while(1)
{
  Temp1 = SONG[Addr++];
     if ( Temp1 == 0xFF )          //休止符
     {
      TR1 = 0;
      Delay_xMs(100);
     }
     else if ( Temp1 == 0x00 )   //歌曲結(jié)束符
     {
      return;
     }
     else
     {
      Temp2 = SONG[Addr++];
      TR1 = 1;
     while(1)
     {
       _Speak = ~_Speak;
       Delay_xMs(Temp1);
       if ( Temp2 == Count )
       {
        Count = 0;
        break;
       }
      }
     }
}
}
/*-------------------------------------------------
功能:主程序
-------------------------------------------------*/
void main()
{
Time1_Init();   //定時(shí)器0中斷初始化
while(1)
{
  Play_Song(0);  //播放
}
}


PS:我使用的是IAPF2K60S2(stc15F2K60S2)

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

使用道具 舉報(bào)

沙發(fā)
ID:271839 發(fā)表于 2018-1-9 22:54 | 只看該作者
求各位大佬幫助 拜謝
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2018-1-10 00:42 | 只看該作者
不要說是兩個(gè),十個(gè)八也不在話下。關(guān)鍵是你如何構(gòu)思!
你不會(huì)構(gòu)思,就先學(xué)畫流程框圖,一步步來,流程走通了,再依流程寫程序。
記住寫程序的關(guān)鍵不在寫語句上,而是在構(gòu)思流程上。試作畫出框圖吧。
看別人的案例,重點(diǎn)是看通他人的流程圖,之后對(duì)照流程圖看程序,這樣才能理解,才能學(xué)到東西。
回復(fù)

使用道具 舉報(bào)

地板
ID:231046 發(fā)表于 2018-1-10 08:55 | 只看該作者
對(duì)的,程序就是按要求實(shí)現(xiàn)特定的功能 ,要怎么實(shí)現(xiàn)完全看寫程序人的思想,如去北京可以坐火車,也可以坐飛機(jī),也可以走路,,一樣的道理
回復(fù)

使用道具 舉報(bào)

5#
ID:271839 發(fā)表于 2018-1-10 10:40 | 只看該作者
yzwzfyz 發(fā)表于 2018-1-10 00:42
不要說是兩個(gè),十個(gè)八也不在話下。關(guān)鍵是你如何構(gòu)思!
你不會(huì)構(gòu)思,就先學(xué)畫流程框圖,一步步來,流程走通 ...

能不能先幫我合一下 暫時(shí)有點(diǎn)急
回復(fù)

使用道具 舉報(bào)

6#
ID:258566 發(fā)表于 2018-1-10 10:53 | 只看該作者
樓主,首先程序要正確,才能合并。變量t沒有定義,定時(shí)器1沒有啟動(dòng)。tr1
回復(fù)

使用道具 舉報(bào)

7#
ID:258566 發(fā)表于 2018-1-10 10:57 | 只看該作者
本帖最后由 cccc888 于 2018-1-10 11:26 編輯

//#include <reg52.h>
#include <STC15F2K60S2.h>
/*
*                數(shù)碼管動(dòng)態(tài)顯示學(xué)號(hào)
*                          朱建康
*/
sbit led1 = P3^7;
sbit led2 = P3^6;
sbit led3 = P3^5;
sbit led4 = P3^4;
unsigned char t;
//數(shù)碼管0~9緩存
unsigned char code LedChar[] = {
        0x82, 0xE7, 0x2A, 0x26, 0x47, 0x16, 0x12, 0xA7,
        0x02, 0x06
};
//學(xué)號(hào):150401114
unsigned char code IDBuff[] = {
        0xFF, 0x7F, 0x7F, 0x7F, 0x43, 0x1a, 0xda, 0xda,
        0x82, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF,
        0xFF
};
unsigned char LedBuff[9];
unsigned char flag_200ms = 0;
/*
*  主函數(shù)
*/
//void main(void)
//{
//unsigned char t = 0;
//TMOD = 0X01;
//TH0 = 0XFC;
//TL0 = 0X67;
//TR0 = 1;
//EA = 1;
//ET0 = 1;

//while(1)
//{
//if(flag_200ms == 1)
//{
//flag_200ms = 0;
//LedBuff[0] = IDBuff[t];
//LedBuff[1] = IDBuff[t+1];
//LedBuff[2] = IDBuff[t+2];
//LedBuff[3] = IDBuff[t+3];

//t++;
//if(t>=18) t = 0;
//}
//}

//}

void InterruptTime0() interrupt 1
{
        static unsigned char i = 0;
        static unsigned char cnt = 0;
        TH0 = 0xFC;
        TL0 = 0X67;

        cnt++;

        if (cnt > 200)
        {
//flag_200ms = 0;
                LedBuff[0] = IDBuff[t];
                LedBuff[1] = IDBuff[t + 1];
                LedBuff[2] = IDBuff[t + 2];
                LedBuff[3] = IDBuff[t + 3];

                t++;
                if (t >= 18)
                        t = 0;
        }

        P2 = 0xFF;        //消隱
        switch (i)
        {
                case 0:
                        led1 = 0;
                        led2 = 1;
                        led3 = 1;
                        led4 = 1;
                        i++;
                        P2 = LedBuff[0];
                        break;
                case 1:
                        led1 = 1;
                        led2 = 0;
                        led3 = 1;
                        led4 = 1;
                        i++;
                        P2 = LedBuff[1];
                        break;
                case 2:
                        led1 = 1;
                        led2 = 1;
                        led3 = 0;
                        led4 = 1;
                        i++;
                        P2 = LedBuff[2];
                        break;
                case 3:
                        led1 = 1;
                        led2 = 1;
                        led3 = 1;
                        led4 = 0;
                        i = 0;
                        P2 = LedBuff[3];
                        break;
                default:
                        break;
        }
}

//程序二:蜂鳴器放歌
//#include <STC15F2K60S2.h>

unsigned char Count;
sbit _Speak = P5 ^ 4;
unsigned char code SONG[] = {        //祝你平安
        0x26, 0x20, 0x20, 0x20, 0x20, 0x20, 0x26, 0x10, 0x20, 0x10, 0x20, 0x80, 0x26, 0x20, 0x30, 0x20,
        0x30, 0x20, 0x39, 0x10, 0x30, 0x10, 0x30, 0x80, 0x26, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1c, 0x20,
        0x20, 0x80, 0x2b, 0x20, 0x26, 0x20, 0x20, 0x20, 0x2b, 0x10, 0x26, 0x10, 0x2b, 0x80, 0x26, 0x20,
        0x30, 0x20, 0x30, 0x20, 0x39, 0x10, 0x26, 0x10, 0x26, 0x60, 0x40, 0x10, 0x39, 0x10, 0x26, 0x20,
        0x30, 0x20, 0x30, 0x20, 0x39, 0x10, 0x26, 0x10, 0x26, 0x80, 0x26, 0x20, 0x2b, 0x10, 0x2b, 0x10,
        0x2b, 0x20, 0x30, 0x10, 0x39, 0x10, 0x26, 0x10, 0x2b, 0x10, 0x2b, 0x20, 0x2b, 0x40, 0x40, 0x20,
        0x20, 0x10, 0x20, 0x10, 0x2b, 0x10, 0x26, 0x30, 0x30, 0x80, 0x18, 0x20, 0x18, 0x20, 0x26, 0x20,
        0x20, 0x20, 0x20, 0x40, 0x26, 0x20, 0x2b, 0x20, 0x30, 0x20, 0x30, 0x20, 0x1c, 0x20, 0x20, 0x20,
        0x20, 0x80, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x30, 0x20, 0x30, 0x60, 0x39, 0x10, 0x30, 0x10,
        0x20, 0x20, 0x2b, 0x10, 0x26, 0x10, 0x2b, 0x10, 0x26, 0x10, 0x26, 0x10, 0x2b, 0x10, 0x2b, 0x80,
        0x18, 0x20, 0x18, 0x20, 0x26, 0x20, 0x20, 0x20, 0x20, 0x60, 0x26, 0x10, 0x2b, 0x20, 0x30, 0x20,
        0x30, 0x20, 0x1c, 0x20, 0x20, 0x20, 0x20, 0x80, 0x26, 0x20, 0x30, 0x10, 0x30, 0x10, 0x30, 0x20,
        0x39, 0x20, 0x26, 0x10, 0x2b, 0x10, 0x2b, 0x20, 0x2b, 0x40, 0x40, 0x10, 0x40, 0x10, 0x20, 0x10,
        0x20, 0x10, 0x2b, 0x10, 0x26, 0x30, 0x30, 0x80, 0x00
};

//void Time1_Init()
//{
        //TMOD = 0x10;
        //IE = 0x82;
        //TH1 = 0xD8;
        //TL1 = 0xEF;        //12MZ晶振,10ms
//}

void Time0_Int() interrupt 3
{
        TH1 = 0xD8;
        TL1 = 0xEF;
        Count++;        //長度加1
}

/*-------------------------------------------------
   功能:1MS延時(shí)子程序
   ------------------------------------------------- */
void Delay_xMs(unsigned int x)
{
        unsigned int i, j;
        for (i = 0; i < x; i++)
        {
                for (j = 0; j < 3; j++) ;
        }
}

void Play_Song(unsigned char i)
{
        unsigned char Temp1, Temp2;
        unsigned int Addr;
        Count = 0;        //中斷計(jì)數(shù)器清0
        Addr = i * 217;
        while (1)
        {
                Temp1 = SONG[Addr++];
                if (Temp1 == 0xFF)        //休止符
                {
                        TR1 = 0;
                        Delay_xMs(100);
                }
                else if (Temp1 == 0x00)        //歌曲結(jié)束符
                {
                        return;
                }
                else
                {
                        Temp2 = SONG[Addr++];
                        TR1 = 1;
                        while (1)
                        {
                                _Speak = ~_Speak;
                                Delay_xMs(Temp1);
                                if (Temp2 == Count)
                                {
                                        Count = 0;
                                        break;
                                }
                        }
                }
        }
}
/*-------------------------------------------------
   功能:主程序
   ------------------------------------------------- */
void main()
{
        //unsigned char t = 0;
        TMOD = 0X11;
        TH0 = 0XFC;
        TL0 = 0X67;
        TR0 = 1;
        EA = 1;
        ET0 = 1;        ET1 = 1;
        //IE = 0x82;//8a
        TH1 = 0xD8;
        TL1 = 0xEF;        //12MZ晶振,10ms
        TR1 = 1;
//Time1_Init();   //定時(shí)器0中斷初始化
        while (1)
        {
                Play_Song(0);        //播放
        }
}

//PS:我使用的是IAPF2K60S2(stc15F2K60S2)



回復(fù)

使用道具 舉報(bào)

8#
ID:271839 發(fā)表于 2018-1-10 11:26 | 只看該作者
yzwzfyz 發(fā)表于 2018-1-10 00:42
不要說是兩個(gè),十個(gè)八也不在話下。關(guān)鍵是你如何構(gòu)思!
你不會(huì)構(gòu)思,就先學(xué)畫流程框圖,一步步來,流程走通 ...

能不能幫我操作一下 我現(xiàn)在急著用
回復(fù)

使用道具 舉報(bào)

9#
ID:271839 發(fā)表于 2018-1-10 11:52 | 只看該作者
cccc888 發(fā)表于 2018-1-10 10:53
樓主,首先程序要正確,才能合并。變量t沒有定義,定時(shí)器1沒有啟動(dòng)。tr1

我剛開始學(xué)這個(gè) 是小白  能不能幫我弄一下 謝謝
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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