找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机8*8点阵江湖救急

[复制链接]
跳转到指定楼层
楼主
ID:247587 发表于 2017-11-9 10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
老师要求我们弄8-8点阵实现图形,有没有大哥大佬师姐师妹能够做出来的呀?????快来帮帮迷路的我吧。。。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:247586 发表于 2017-11-9 10:43 | 只看该作者
用的是什么开发板???
回复

使用道具 举报

板凳
ID:82765 发表于 2017-11-9 13:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

地板
ID:232524 发表于 2017-11-9 14:21 | 只看该作者
什么图形?
回复

使用道具 举报

5#
ID:14237 发表于 2017-11-9 16:14 | 只看该作者

#include <reg52.h>

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

unsigned char code image[] = {  //图片的字模表
    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
    0x7D,0x01,0x01,0x7D,0xFF,0xFF,0xE3,0xC1,
    0x81,0x03,0x03,0x81,0xC1,0xE3,0xFF,0xFF,
    0x81,0x01,0x3F,0x3F,0x3F,0x01,0x81,0xFF,
    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};

void main()
{
    EA = 1;       //使能总中断
    ENLED = 0;    //使能U4,选择LED点阵
    ADDR3 = 0;
    TMOD = 0x01;  //设置T0为模式1
    TH0  = 0xFC;  //为T0赋初值0xFC67,定时1ms
    TL0  = 0x67;
    ET0  = 1;     //使能T0中断
    TR0  = 1;     //启动T0
    while (1);
}
/* 定时器0中断服务函数 */
void InterruptTimer0() interrupt 1
{
    static unsigned char i = 0;  //动态扫描的索引
    static unsigned char tmr = 0;  //250ms软件定时器
    static unsigned char index = 0;  //图片刷新索引

    TH0 = 0xFC;  //重新加载初值
    TL0 = 0x67;
    //以下代码完成LED点阵动态扫描刷新
    P0 = 0xFF;   //显示消隐
    switch (i)
    {
        case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=image[index+0]; break;
        case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=image[index+1]; break;
        case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=image[index+2]; break;
        case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=image[index+3]; break;
        case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=image[index+4]; break;
        case 5: ADDR2=1; ADDR1=0; ADDR0=1; i++; P0=image[index+5]; break;
        case 6: ADDR2=1; ADDR1=1; ADDR0=0; i++; P0=image[index+6]; break;
        case 7: ADDR2=1; ADDR1=1; ADDR0=1; i=0; P0=image[index+7]; break;
        default: break;
    }
    //以下代码完成每250ms改变一帧图像
    tmr++;
    if (tmr >= 250)  //达到250ms时改变一次图片索引
    {
        tmr = 0;
        index++;
        if (index >= 32)  //图片索引达到32后归零
        {
            index = 0;
        }
    }
回复

使用道具 举报

6#
ID:111634 发表于 2017-11-9 18:53 | 只看该作者
8*8,还要实现图形?P1控制行,P2控制列。
回复

使用道具 举报

7#
ID:247833 发表于 2017-11-9 19:16 | 只看该作者
买个开发板什么都搞定了,碰到问题后再深入学习就行了
回复

使用道具 举报

8#
ID:123289 发表于 2017-11-9 23:21 | 只看该作者
1、先在表格上做出8*8的图形。
2、再两将它分解成8个字节,用单片机扫描输出到8*8的LED上就可以了。
回复

使用道具 举报

9#
ID:334562 发表于 2018-5-21 00:09 | 只看该作者
13534874028 发表于 2017-11-9 10:43
用的是什么开发板???

hcj52
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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