找回密码
 立即注册

QQ登录

只需一步,快速开始

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

8*8点阵静态显示"亲"与心形符号

[复制链接]
跳转到指定楼层
楼主
ID:350005 发表于 2018-7-9 21:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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;                       
        }               
}


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

使用道具 举报

沙发
ID:1 发表于 2018-7-9 23:39 | 只看该作者
本帖需要分享原理图后才可获得积分
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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