新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STC11F04單片機制作的32燈搖搖棒

        STC11F04單片機制作的32燈搖搖棒

        作者: 時間:2016-11-30 來源:網絡 收藏

        unsigned char code text2[]={
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0xB7,0xBB,0xB7,0xBB,0xB3,0xBB,0xB4,0xBB,0xB5,0xBB,0xB7,0xBB,0xB7,0xBB,0xB7,0xBB,0x07,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"自",0*/
        0xBF,0xBF,0xBE,0xDF,0x39,0xE0,0xFF,0xDF,0xEF,0xBF,0xEF,0xBF,0x6D,0xB0,0x6D,0xB7,0x6D,0xB7,0x01,0xB7,0x6E,0xB7,0x6E,0xB7,0x6E,0xB0,0xEF,0xBF,0xEF,0xBF,0xFF,0xFF,/*"適",1*/
        0xFF,0xBF,0xFF,0xC7,0x03,0xF8,0xBB,0xDF,0x7B,0xDF,0xFB,0xD0,0xEB,0xDB,0xDA,0xDF,0x39,0xDC,0x7B,0xCF,0xFB,0xD3,0xFB,0xDC,0x1B,0xDF,0xBB,0xDF,0xFF,0xDF,0xFF,0xFF,/*"應",2*/
        0xBF,0xBF,0xBD,0xDF,0x33,0xE0,0xFF,0xDF,0xFB,0xB7,0x1B,0xB6,0xDB,0xBA,0xDB,0xBC,0x00,0x80,0xDB,0xBE,0xDB,0xBC,0xDB,0xBA,0x1B,0xB2,0xFB,0xBF,0xFF,0xBF,0xFF,0xFF,/*"速",3*/
        0xFF,0x7F,0xFF,0x9F,0x03,0xE0,0xFB,0x7F,0xDB,0x7F,0xDB,0xBD,0x03,0xB9,0x5A,0xD5,0x59,0xED,0x5B,0xED,0x03,0xD5,0xDB,0xD9,0xDB,0xBD,0xDB,0x3F,0xFB,0xBF,0xFF,0xFF,/*"度",4*/
        0xEF,0xFB,0xEF,0xBB,0xEF,0x7D,0x00,0x80,0x6F,0xFF,0xAF,0xFD,0x75,0x05,0x8D,0xBD,0xB9,0xBD,0xA5,0xBD,0x3D,0x80,0x9E,0xBD,0xAE,0xBD,0xB6,0xBD,0xFF,0x05,0xFF,0xFF,/*"搖",5*/
        0xEF,0xFB,0xEF,0xBB,0xEF,0x7D,0x00,0x80,0x6F,0xFF,0xAF,0xFD,0x75,0x05,0x8D,0xBD,0xB9,0xBD,0xA5,0xBD,0x3D,0x80,0x9E,0xBD,0xAE,0xBD,0xB6,0xBD,0xFF,0x05,0xFF,0xFF,/*"搖",6*/
        0xEF,0xFC,0x2F,0xFF,0x00,0x00,0xAF,0xFF,0x6F,0xFD,0xBB,0xF5,0xAB,0xF6,0x2B,0xF5,0x8B,0xF5,0xA0,0x00,0x2B,0xF5,0xAB,0xF4,0xAB,0xF6,0xBB,0xF5,0xBF,0xFD,0xFF,0xFF,/*"棒",7*/
        };
        unsigned char code text3[]={
        0xFF,0xFF,0xBF,0x7F,0xBD,0xBF,0xBD,0xDF,0xBD,0xEF,0xBD,0xF7,0xBD,0xF9,0x01,0xFE,0xBD,0xFD,0xBD,0xFB,0xBD,0xF7,0xBD,0xEF,0xBD,0xCF,0xBD,0x9F,0xBF,0xDF,0xFF,0xFF,/*"天",0*/
        0xBF,0xBF,0xBD,0xDF,0x33,0xE0,0xFF,0xDF,0xFB,0xBF,0xFB,0xBF,0x1A,0xA0,0x49,0xB5,0x53,0xB5,0x5B,0xB5,0x59,0xB5,0x1A,0xA0,0xFB,0xBF,0xFB,0xBF,0xFF,0xBF,0xFF,0xFF,/*"道",1*/
        0x0E,0x80,0xEE,0xDA,0x00,0xDB,0xEE,0xDB,0x00,0xDB,0x6E,0xDB,0x0E,0x80,0xDE,0xDF,0x01,0xE0,0xDF,0xFF,0xBF,0xFF,0x01,0x80,0xDF,0xFF,0xBF,0xFF,0x00,0x80,0xFF,0xFF,/*"酬",2*/
        0xFB,0xFF,0xFB,0x7F,0x3B,0x6A,0xA0,0x6A,0xAB,0x6A,0x0B,0x80,0xAB,0xAA,0xA0,0xAA,0x3B,0x6A,0xEB,0x9F,0xEF,0xE3,0x00,0xFC,0xEF,0xDF,0xEF,0x9F,0x0F,0xC0,0xFF,0xFF,/*"勤",3*/
        0xFF,0xBF,0xFF,0xCF,0x00,0xF0,0xFE,0xFF,0x82,0xF6,0xAA,0xF6,0xAA,0xB6,0xAA,0x76,0xAA,0x82,0xAA,0xF2,0xAA,0xF4,0xAA,0xF4,0x82,0xF6,0xFE,0xF7,0xFF,0xFF,0xFF,0xFF,/*"厚",4*/
        0xEF,0xFD,0xF7,0xFE,0x7B,0xFF,0x1C,0x00,0xE5,0xFF,0xFF,0xFD,0xA0,0xFD,0xAA,0xC5,0xAA,0xFD,0xAA,0xBD,0xAA,0x7D,0x2A,0x80,0xA0,0xFD,0xBF,0xFD,0xBF,0xFD,0xFF,0xFF,/*"得",5*/
        0xEF,0xFF,0xAF,0xED,0xAB,0xEC,0x2B,0xED,0x8B,0xED,0xA0,0x00,0xAB,0xF5,0xAB,0xB5,0xEF,0xDF,0x00,0xEF,0xEF,0xF0,0xED,0xE3,0xEB,0xDC,0x2F,0xBF,0xEF,0xCF,0xFF,0xFF,/*"載",6*/
        0xBF,0xFB,0xC3,0xFB,0xEF,0xFD,0x00,0x80,0xEF,0xFE,0x2F,0xBB,0xDF,0xDD,0xE7,0xEE,0x30,0xF7,0xC7,0xFB,0xF7,0xBC,0x07,0x7F,0xF7,0xBF,0x07,0xC0,0xFF,0xFF,0xFF,0xFF,/*"物",7*/
        };
        unsigned char code text4[]={
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xF7,0xFB,0xFF,0xFF,0xF7,0xFB,0xFF,0xFF,0xF7,0x03,0x00,0x00,0xF0,0xFB,0xFF,0xFF,0xF7,
        0xFB,0xFF,0xFF,0xF7,0xFB,0xFF,0xFF,0xF7,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x80,0xFF,0xFF,0x07,0x00,0xFE,0xFF,0x07,0x00,0xFC,0xFF,0x03,0x00,0xF8,0xFF,0x03,0x00,0xF0,0xFF,
        0x03,0x00,0xC0,0xFF,0x03,0x00,0xC0,0xFF,0x03,0x00,0x80,0xFF,0x07,0x00,0x00,0xFF,0x1F,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFC,0x3F,0x00,0x00,0xF8,0x3F,0x00,0x00,0xF0,
        0x3F,0x00,0x00,0xF0,0x3F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xFC,0x0F,0x00,0x00,0xFE,0x07,0x00,0x00,0xFE,0x03,0x00,0x00,0xFF,0x03,0x00,0x80,0xFF,0x03,0x00,0xE0,0xFF,
        0x07,0x00,0xF0,0xFF,0x07,0x00,0xF8,0xFF,0x07,0x00,0xFC,0xFF,0x0F,0x00,0xFF,0xFF,0x1F,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xF0,0x03,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0xE3,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xCF,
        0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xE3,0x07,0x00,0x00,0xF0,0x07,0x00,0x00,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"未命名文件",0*/
        };
        unsigned char code text5[]={
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0x9F,0xBF,0xFF,0xF9,0x9F,0xBF,0xFF,0xF9,0xCF,0x3F,0xFF,0xF9,0xCF,0x3F,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x80,0xFF,0xF9,0xF3,0xFF,
        0xFF,0xF9,0xF9,0xFF,0xFF,0xF9,0xFC,0xFF,0xFF,0xFB,0xBF,0xFF,0xFF,0xFF,0x93,0xFF,0x9F,0xFF,0x99,0x80,0x9F,0xFC,0x98,0x9F,0x9F,0x71,0x9C,0x3F,0x9F,0x27,0x9E,0x3F,
        0x9F,0x1F,0x9E,0x3F,0x9F,0x7F,0x9E,0x3F,0xDF,0x7F,0x9E,0x3F,0xDF,0x7C,0x9E,0x3F,0xDF,0x60,0x00,0x00,0xDF,0x67,0x9E,0x3F,0xCF,0x7F,0x9E,0x3F,0xCF,0x7F,0x9E,0x3F,
        0xCF,0x7F,0x9E,0x3F,0xEF,0x67,0x9E,0x3F,0xE7,0x61,0x9E,0x3F,0x67,0x78,0x9E,0x81,0x27,0xFE,0x9E,0xC1,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,/*"搖",0*/
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,0xFF,0xFF,0x0F,0xF8,0x3F,0x7F,0x80,0xFF,0x9F,0xFF,0xFF,0xFF,0xC7,0xFF,0xFF,0xFF,0xE1,0x07,0x00,0x00,0xF8,0x07,0x00,0x00,0xFF,
        0xFF,0x1F,0x7F,0xFE,0xFF,0xC3,0xFF,0xF8,0x7F,0xF0,0xFF,0xE1,0x3F,0xFE,0xFF,0xC7,0xFF,0xFF,0xFF,0xDF,0x9F,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,
        0x9F,0xFF,0xFF,0xDF,0x9F,0xFF,0xFF,0xDF,0x9F,0xFF,0xFF,0x9F,0x9F,0xFF,0xFF,0x9F,0x9F,0xFF,0xFF,0xBF,0x9F,0xFF,0xFF,0xBF,0x9F,0xFF,0xFF,0xBF,0x9F,0xFF,0xFF,0xBF,
        0x1F,0x00,0x00,0x80,0x1F,0x00,0x00,0xC0,0x9F,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"燈",1*/
        };
        /***********n(us)延時子程序***************/
        void DelayUs(uint N)
        {
        uint x;
        for(x=0; x<=N;x++);
        }
        /******************************************/
        void main()
        {
        AUXR=0x80;
        CLK_DIV=0;
        EX0=1; //開放外部中斷0
        IT0=1; //中斷0為邊沿觸發方式
        IP=0x02; //設置中斷優先級
        TMOD=0x02; //定時器0方式2,8位重裝載
        TH0=0x80; //設定定時器初值
        TL0=0x80;
        KY=0;
        EA=1; //開放中斷
        ET0=1; //開放定時器1中斷
        TR0=1; //啟動定時器0,開始計時*/
        key=0; //初始化顯示第一組文字
        P1M0=0x55; //0101 0101 /P1.0 P1 .2 P1.4 P1.6推挽輸出
        P1M1=0xAA;
        while(1){//等待中斷

        if(key1==0){
        DelayUs(200); //按鍵去抖處理
        if(key1==0){ //有鍵按下
        key++; //更換下一幅圖片
        if(key==5) key=0; //圖片循環顯示
        while(key1==0); //等待按鍵釋放
        }
        }
        }
        }

        /*********文字顯示子程序**********/
        void display_word(unsigned char code *text)
        { char i,j=2; //j為圖片起始位置 2 為第3個開始是圖片 如果要顯示32*32大字 也屬于圖片格式
        DelayUs(5000);

        for(i=0;i<64;i++)
        {

        P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1B;
        if(key>j)
        BUFF=(*(text+i*4+3));
        else
        BUFF=(*(text+128+i*2+1));
        led4=0;
        P1=~BUFF>>1;
        P3M0=0x10; //0001 0000 //P3.4推挽輸出 P3 .0 P3.3 P3.1輸入高阻
        P3M1=0x0B; //0000 1011
        delay(1);
        P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1B; //0001 1011
        led4=1;
        P1=BUFF; //01010101 1357
        P3M0=0x10; //0001 0000 //P3.4推挽輸出 P3 .0 P3.3 P3.1輸入高阻
        P3M1=0x0B; //0000 1011
        delay(1);
        P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1B; //0001 1011
        if(key>j)
        BUFF=(*(text+i*4+2));
        else
        BUFF=(*(text+128+i*2));
        led3=0;
        P1=~BUFF>>1;
        P3M0=0x08; //0000 1000 //P3.3推挽輸出 P3 .0 P3.1 P3.4輸入高阻
        P3M1=0x13; //0001 0011
        delay(1);
        P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1B; //0001 1011
        led3=1;
        P1=BUFF; //01010101 1357
        P3M0=0x08; //0000 1000 //P3.3推挽輸出 P3 .0 P3.1 P3.4輸入高阻
        P3M1=0x13; //0001 0011
        delay(1);
        P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1B;
        if(key>j)
        BUFF=(*(text+i*4+1));
        else
        BUFF=(*(text+i*2+1));
        led2=0;
        P1=~BUFF>>1;
        P3M0=0x02; //0000 0010 //P3.1推挽輸出 P3 .0 P3.3 P3.4輸入高阻
        P3M1=0x19; //0001 1001
        delay(1);
        P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1B; //0001 1011
        led2=1;
        P1=BUFF; //01010101 1357
        P3M0=0x02; //0000 0010 //P3.1推挽輸出 P3 .0 P3.3 P3.4輸入高阻
        P3M1=0x19; //0001 1001
        delay(1);
        P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1B; //0001
        if(key>j)
        BUFF=(*(text+i*4));
        else
        BUFF=(*(text+i*2));
        led1=0;
        P1=~BUFF>>1;
        P3M0=0x01; //0000 0001 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1A; //0001 1010
        delay(1);
        P3M0=0x00; //0000 0000 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1B; //0001 1011
        led1=1;
        P1=BUFF; //01010101 1357
        P3M0=0x01; //0000 0001 //P3.0推挽輸出 P3 .1 P3.3 P3.4輸入高阻
        P3M1=0x1A; //0001 1010
        delay(1);
        } }
        /*********顯示內容選擇子程序**********/
        void display(unsigned char t)
        {
        switch (t){ //通過按鍵選擇顯示內容
        case 0: {display_word(text1);}break;
        case 1: {display_word(text2);}break;
        case 2: {display_word(text3);}break;
        case 3: {display_word(text4);}break;
        case 4: {display_word(text5);}break;
        //default:{display_word(text1);}


        }}
        /***************************************/
        /*********延時子程序**********/
        void delay(unsigned char n)
        {
        for(;n>0;n--){
        DelayN=DelayTime;
        while (DelayN);
        }
        }
        /*********中斷子程序**********/
        void int0() interrupt 0 //使用外部中斷0
        {
        KY=~KY;
        if(KY==0)
        {
        DelayTime=TimeCount/1580;
        TimeCount=0; //延時周期計數清零
        display(key); //根據按鍵選擇循環顯示文字
        }
        }
        void timer0() interrupt 1 //定時器0中斷子程序
        {
        TimeCount++;
        if (DelayN!=0)
        DelayN--;
        }

        本文引用地址:http://www.104case.com/article/201611/324018.htm

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 罗田县| 乐陵市| 五峰| 徐汇区| 高清| 秭归县| 金华市| 泾阳县| 海伦市| 金门县| 惠东县| 江油市| 墨玉县| 隆尧县| 鞍山市| 讷河市| 阿克| 宽城| 广安市| 新野县| 建阳市| 托克逊县| 迁安市| 大荔县| 泰和县| 珲春市| 塘沽区| 贵州省| 松江区| 太白县| 铜陵市| 资阳市| 泊头市| 芦溪县| 元谋县| 天长市| 颍上县| 余干县| 东至县| 云梦县| 德安县|