找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机16*16点阵循环显示

[复制链接]
跳转到指定楼层
楼主
ID:998091 发表于 2022-1-2 15:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int

uchar code dischar[]={
0xF,0xDF,0xF9,0xCF,0xFB,0xBF,0xC0,0x07,
0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,
0xC0,0x07,0xDE,0xF7,0xFE,0xFF,0x00,0x01,
0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,

0xFF,0xBF,0xEF,0xBF,0xEF,0xBF,0xEF,0xBB,
0xE0,0x01,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,
0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,
0xDF,0xEF,0xDF,0xEF,0xBF,0xEF,0x7F,0xEF,

0xEF,0xFF,0xEF,0x07,0xEF,0x77,0x01,0x77,
0xEF,0x77,0xEF,0x77,0xC7,0x77,0xCB,0x77
,0xAB,0x77,0xAF,0x77,0x6E,0xF7,0xEE,0xF5,
0xED,0xF5,0xED,0xF5,0xEB,0xF9,0xEF,0xFF,
};

/***********端口定义*****************/
sbit A1 =P2^0;
sbit B1 =P2^1;
sbit C1 =P2^2;
sbit D1 =P2^3;
sbit EN1=P2^4;


sbit LS595_SHC=P1^0;    //SHcp   锁存时钟-----74HC595
sbit LS595_STC=P1^1;    //STcp   移位时钟-----74HC595
sbit LS595_DS =P1^2;    //DSI    数据---------74HC595


/**********nms延时子程序*************/
void Delay_Nms(uint n)
{
        uint i,j;
        for(i=0;i<n;i++)
                for(j=0;j<20;j++)
                        ;
}



/**********发送一字节数据*************/
void SendOneByte(uchar content)
{  
   uchar i;

    for(i=0;i<8;i++)
    {
        LS595_DS=(bit)(content & 0x80);      //判断输出数据
        LS595_SHC=0;                                     //初始化移位时钟
        content<<=1;                                                  //更新数据
        LS595_SHC=1;
    }   
}

/***********主函数********************/
void main(void)
{
    uchar i;
        uchar j;
        uchar k;
        uchar        ycode;
        EN1=1;                 //不使能154译码器   
        while(1)
    {   for(j=0;j<3;j++)
                {
                        for(k=0;k<50;k++)
                        {
                                for(i=0;i<16;i++)
                        {
                                        LS595_STC=0;                                                
                            SendOneByte(dischar[i*2+j*32]); //译码显示
                                        SendOneByte(dischar[i*2+j*32+1]);   //译码显示                        
                                        LS595_STC=1;              //数据已准备好                        
                                        P2=i|0XF0;                       //开启扫描的行数据
                                        EN1=0;          //打开行输出

                                       
                            Delay_Nms(4);
                                        EN1=1;              //关闭行输出                     
                    }
                        }
                }
               
    }               
}

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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