标题: 8*8点阵静态显示"亲"与心形符号 [打印本页]

作者: wang哈哈    时间: 2018-7-9 21:21
标题: 8*8点阵静态显示"亲"与心形符号
#include <reg52.h>
#include <intrins.h>

sbit LEDARRAY_LAT = P3^6;
sbit LEDARRAY_CLK = P3^5;
sbit LEDARRAY_DI = P3^4;

//函数或者变量声明
extern void Delay_ms(unsigned int n);
extern void Send_Byte( unsigned char dat);
unsigned char temp = 0xfe;
unsigned char KEY_NUM = 0;

unsigned char Display_word[4][4] = {
0x00,0x48,0x2A,0x8E,0xFB,0x0E,0x2A,0x48, //亲
0x0C,0x1E,0x3E,0x7C,0x7C,0x3E,0x1E,0x0C, //心
};



//****************************************************
//主函数
//****************************************************
void main()
{
        unsigned int i;
        unsigned char j,k;
        while(1)
        {
                for(i = 0 ; i < 1000 ; i++)
                {
                        temp = 0x7f;
                        for(j = 0 ; j < 2 ; j++)                //显示前两个字母
                        {
                                for(k = 0 ; k < 4 ; k++)                //一个字母4BYTE
                                {
                                        Send_Byte(temp);                        //列选择
                                        Send_Byte(Display_word[j][k]);                        //行数据
                                        LEDARRAY_LAT = 1;                                        //锁存数据
                                        _nop_();
                               
                                        LEDARRAY_LAT = 0;
                                        _nop_();
                                        temp = (temp>>1)|0x80;
                                }
                        }
                }

                for(i = 0 ; i < 1000 ; i++)
                {
                        temp = 0x7f;
                        for(j = 2 ; j < 4 ; j++)                //显示前两个字母
                        {
                                for(k = 0 ; k < 4 ; k++)                //一个字母4BYTE
                                {
                                        Send_Byte(temp);                        //列选择
                                        Send_Byte(Display_word[j][k]);                        //行数据
                                        LEDARRAY_LAT = 1;                                        //锁存数据
                                        _nop_();
                               
                                        LEDARRAY_LAT = 0;
                                        _nop_();
                                        temp = (temp>>1)|0x80;
                                }
                        }
                }
               
                                       
        }
}

//****************************************************
//发送一个字节数据
//****************************************************
void Send_Byte( unsigned char dat)
{
        unsigned char i;
        LEDARRAY_CLK = 0;
        _nop_();       
        LEDARRAY_LAT = 0;
        _nop_();

        for( i = 0 ; i < 8 ; i++ )
        {
                if( dat&0x01 )
                {
                        LEDARRAY_DI = 1;       
                }
                else
                {
                        LEDARRAY_DI = 0;
                }
               
                LEDARRAY_CLK = 1;                                //上升沿发送数据
                //                                _nop_();
                LEDARRAY_CLK = 0;
                //                                _nop_();
                               
                dat >>= 1;                       
        }               
}



作者: admin    时间: 2018-7-9 23:39
本帖需要分享原理图后才可获得积分




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1