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

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

QQ登錄

只需一步,快速開始

搜索
查看: 2479|回復(fù): 8
收起左側(cè)

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

[復(fù)制鏈接]
ID:271839 發(fā)表于 2018-1-9 22:53 | 顯示全部樓層 |閱讀模式
程序一:數(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++;   //長(zhǎng)度加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)

回復(fù)

使用道具 舉報(bào)

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)

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)

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

使用道具 舉報(bào)

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++;        //長(zhǎng)度加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)

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)

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ù) 返回頂部 返回列表
主站蜘蛛池模板: 精品国产一区二区在线 | www.国产视频| 天天操天天插 | 欧美日韩国产精品激情在线播放 | 午夜天堂精品久久久久 | 欧美13videosex性极品 | 国产真实乱全部视频 | 日韩电影免费在线观看中文字幕 | 久久成人精品视频 | 欧美日韩精品一区二区三区蜜桃 | 日韩综合 | 国产一区二区三区视频 | 日韩在线欧美 | 国产午夜精品久久久久免费视高清 | 国产精品国产三级国产aⅴ原创 | 亚洲欧洲精品一区 | 免费一级黄色录像 | 麻豆精品国产91久久久久久 | 亚洲一区国产 | 日韩久草 | 一区二区三区网站 | 特级毛片爽www免费版 | 亚洲一区 | 国产成人高清 | 国产97在线视频 | 日韩亚洲一区二区 | 久久精品免费一区二区 | a级在线免费 | 久久精品91久久久久久再现 | 国产中文字幕亚洲 | 成人av高清在线观看 | 国产91久久久久 | 中文字幕 在线观看 | 欧美成人精品在线 | 成人av一区二区三区 | 国产一区二区三区在线观看免费 | 91精品久久久久久久久中文字幕 | 国产欧美精品一区二区三区 | www久久久 | 中文字幕视频在线观看 | 久久99国产精一区二区三区 |