找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2595|回复: 2
打印 上一主题 下一主题
收起左侧

求助!这是51的程序,但是现在老师要求我们用STC15W408S的单片机来做,求教大神改程序

[复制链接]
跳转到指定楼层
楼主
ID:100955 发表于 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;
            }
         
        }

        }
}  
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:84652 发表于 2016-1-10 19:23 | 只看该作者
点阵屏显示,按键切换?把IO口和延时改一下就行了。
回复

使用道具 举报

板凳
ID:102111 发表于 2016-1-10 20:24 | 只看该作者
呵呵,改16脚单片机了啊,这个需要外接595才能完成点阵扫描了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表