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

QQ登錄

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

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

求助!這是51的程序,但是現(xiàn)在老師要求我們用STC15W408S的單片機(jī)來(lái)做,求教大神改程序

[復(fù)制鏈接]
ID:100955 發(fā)表于 2016-1-7 10:16 | 顯示全部樓層 |閱讀模式
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit KEY=P3^1;
sbit KY=P3^2;
//uchar KY=0;
uchar disp;
uchar pic=0 ,num = 0;

uchar code love[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,
0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,
0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,
0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,
0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

uchar code loveyou[] = {  
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  
0x78,0x00,0xFC,0x00,0xFE,0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0x1F,0xFC,0x3F,
0xF8,0x7F,0xFC,0x3F,0xFE,0x1F,0xFE,0x0F,0xFE,0x07,0xFE,0x03,0xFE,0x01,0xFC,0x00,  
0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

uchar code hehe[] = {  
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,  
0xF0,0x0F,0x08,0x10,0x04,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,  
0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,  
0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,  
0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x04,0x20,0x08,0x10,  
0xF0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,  
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
void dplay1();
void dplay2();
void dplay3();
void DelayUs(uint N)
{
        uint x;
        for(x=0;x<=N;x++);
}

void intersvr0() interrupt 0
{
        KY = ~KY;

        if(KY == 0)
        {
                num++;
                switch(pic)
                {
                        case 0:
               {
                 dplay1();
              }
            break;
                        case 1:
               {
                 dplay2();
               }
           break;
           case 2:
              {
                 dplay3();
              }
           break;
                   default:
              {
                 dplay1();
              }
           break;
                }
        }
}

void dplay1()
{
        uchar i;
        DelayUs(4000);
        for(i = 0;i < 64;i++)
        {
                P0 = ~love[i*2];
                P1 = ~love[i*2 + 1];
                DelayUs(120);
        }
}

void dplay2()
{
        uchar i;
        DelayUs(4000);
        for(i = 0;i < 64;i++)
        {
                P0 = ~loveyou[i*2];
                P1 = ~loveyou[i*2 + 1];
                DelayUs(120);
        }
}

void dplay3()
{
        uchar i;
    DelayUs(4000);
        for(i = 0;i < 64;i++)
        {
                P0 = ~hehe[i*2];
                P1 = ~hehe[i*2+1];
                DelayUs(120);
        }
}

void main()
{

        IT0 = 1;
        EX0 = 1;
        EA = 1;
        KY = 0;
        while(1)
        {
          if(KEY == 0)
                {
                        DelayUs(10000);
                        if(KEY == 0)
                        {
             pic++;
             if(pic >2)
             pic = 0;
            }
         
        }

        }
}  
回復(fù)

使用道具 舉報(bào)

ID:84652 發(fā)表于 2016-1-10 19:23 | 顯示全部樓層
點(diǎn)陣屏顯示,按鍵切換?把IO口和延時(shí)改一下就行了。
回復(fù)

使用道具 舉報(bào)

ID:102111 發(fā)表于 2016-1-10 20:24 | 顯示全部樓層
呵呵,改16腳單片機(jī)了啊,這個(gè)需要外接595才能完成點(diǎn)陣掃描了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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