搜索
bottom↓
回复: 8

LED点阵字右移

[复制链接]

出0入0汤圆

发表于 2010-1-7 23:17:37 | 显示全部楼层 |阅读模式
#include <reg52.h>
#include <intrins.h>
#define BLKN 2             //列锁存器数

char code reserv[3] _at_ 0x3b;

sbit G_74138 = P2^4;
sbit SDATA_595 = P2^5;
sbit SHCP_595 = P2^6;
sbit STCP_595 = P2^7;

unsigned char data disparam[32];
unsigned char temp;

unsigned char  code bmp[][32]=
{

{
0x10,0x08,0xF8,0x0B,0x10,0x08,0x10,0x10,0xFC,0x17,0x00,0x32,0x08,0x52,0xFC,0x93,
0x40,0x14,0x44,0x10,0xFE,0x1F,0x40,0x10,0xA0,0x10,0x90,0x10,0x0E,0x11,0x04,0x16
},

{
0x02,0x00,0x01,0x00,0x3F,0xFC,0x20,0x04,0x40,0x08,0x1F,0xE0,0x00,0x40,0x00,0x80,
0x01,0x04,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00
},

{
0x02,0x00,0x04,0x00,0x08,0x04,0x7F,0xFE,0x40,0x04,0x40,0x24,0x4F,0xF4,0x48,0x24,
0x48,0x24,0x48,0x24,0x48,0x24,0x4F,0xE4,0x48,0x24,0x40,0x04,0x40,0x14,0x40,0x08
},


{
0x02,0x00,0x02,0x00,0x02,0x04,0xFF,0xFE,0x04,0x00,0x04,0x00,0x08,0x00,0x08,0x08,
0x1F,0xFC,0x28,0x08,0x48,0x08,0x88,0x08,0x08,0x08,0x08,0x08,0x0F,0xF8,0x08,0x08
},


{
0x08,0x40,0x1C,0x40,0xF0,0xFC,0x11,0x84,0x12,0x48,0xFC,0x30,0x10,0x60,0x39,0xA0,
0x34,0x3E,0x54,0x42,0x90,0xC4,0x11,0x24,0x10,0x18,0x10,0x30,0x10,0xC0,0x17,0x00
},


{
0x00,0x40,0x08,0x40,0x7C,0x40,0x00,0x44,0x05,0xFE,0xFE,0x44,0x10,0x44,0x10,0x44,
0x20,0x44,0x24,0x44,0x42,0x84,0xFE,0x84,0x41,0x04,0x01,0x04,0x02,0x28,0x04,0x10
},

{
0x02,0x00,0x01,0x00,0x7F,0xFE,0x48,0x02,0x86,0x84,0x02,0x80,0x10,0x80,0x0C,0x80,
0x04,0x84,0xFF,0xFE,0x01,0x00,0x01,0x40,0x02,0x20,0x04,0x10,0x18,0x0C,0x60,0x04
},

{
0x08,0x40,0xFC,0x40,0x08,0xA0,0x48,0xA0,0x49,0x10,0x4A,0x0E,0x4D,0xF4,0x48,0x00,
0x7C,0x48,0x06,0x48,0x05,0x48,0x1D,0x50,0xE5,0x10,0x44,0x24,0x17,0xFE,0x08,0x00
}

};

void delayms(unsigned int ms)
{
        unsigned char k;
        while(ms--)
        {
                for(k=0;k<114; k++);
        }
}


void writeData_595()
{
        unsigned char m;
        for(m=0; m<8; m++)
        {
                temp = temp<<1;
                SDATA_595 = CY;
       
                SHCP_595 = 1;
                _nop_();
                _nop_();
                SHCP_595 = 0;
        }
}


void right_shift()
{
        unsigned char i;

       
        for(i=0; i<16;  i++)
        {
                if(disparam[2*i] & 0x01 ==1)
                {
                        disparam[2*i] = (disparam[2*i] >>1)|0x80;
                                         disparam[2*i+1] = (disparam[2*i+1] >>1)|0x80;
                }
                else
                {
                           disparam[2*i] = (disparam[2*i] >>1)|0x80;
       
                          disparam[2*i+1] = ((disparam[2*i+1] >>1)|0x80)&0x7f;
                }

        }
}
  

void main()
{
        unsigned char i,k;
        SHCP_595 = 1;
        STCP_595 = 0;
        P2 = 0xf0;

        TMOD = 0x01;
        TH0 = 0xfc;
        TL0 = 0x66;

        IE = 0x82;
        TR0 = 1;

        while(1)
        {
                for(k=0; k<8; k++)
                {
                        for(i=0;i<32;i++)
                        {
                                disparam = ~bmp[k];
                        }
                       

                        delayms(1000);
                       
                        for(i=0; i<16; i++)
                        {
                                right_shift();
                                delayms(60);
                        }
       
                }

        }


}

  void leddisplay(void) interrupt 1
{
        unsigned row, j = BLKN;

        TH0 = 0xfc;
        TL0 = 0x66;

        row = P2;
        row = (++row)&0x0f;

        G_74138 = 1;
        temp = disparam[row*BLKN+1];
        writeData_595();
        temp = disparam[row*BLKN];
        writeData_595();

        P2 &= 0xf0;
        STCP_595 = 1;
        P2 |= row;
        STCP_595 = 0;
        G_74138 = 0;
}
各位能否详细解释下这个void right_shift()右移程序吗,谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-1-11 10:02:29 | 显示全部楼层
程序学习LA .

出0入0汤圆

发表于 2011-6-19 22:21:42 | 显示全部楼层
LZ 你的QQ多少,我想问你点事情。

出0入0汤圆

发表于 2011-6-19 22:22:12 | 显示全部楼层
还是你加我QQ好点,我的是276983886。

出0入0汤圆

发表于 2011-6-21 19:53:58 | 显示全部楼层
好像是伟纳的程序

出0入0汤圆

发表于 2011-10-9 16:48:50 | 显示全部楼层
学习下啊

出0入0汤圆

发表于 2012-3-31 15:15:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-4-5 13:39:14 | 显示全部楼层
学习了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 04:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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