找回密码
 立即注册

QQ登录

只需一步,快速开始

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

本人小白有一段程序看不懂,想请教一下大家,谢谢,还挺急得,是学校的作业

[复制链接]
跳转到指定楼层
楼主
ID:203619 发表于 2017-5-23 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       本人小白有一段程序看不懂,想请教一下大家。       这段资料也是在论坛里面找到的,博主一时半会儿没回信息,所以只能在这里向大家求助一下了,程序是控制一个16*64的液晶显示,原帖地址是这个:http://www.51hei.com/bbs/dpj-41577-1.html       里面我能理解的地方我自己也都注释过了,现在主要是main()函数里面语句理解不了,原理图原帖里都有,学校里作业要求是8*16的点阵流水显示,自己刚入门能力有限,所以想求助大家,谢谢。







无标题.jpg (230.48 KB, 下载次数: 149)

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

使用道具 举报

沙发
ID:203619 发表于 2017-5-23 15:43 | 只看该作者
有大神吗,求教求教啊。
回复

使用道具 举报

板凳
ID:7485 发表于 2017-5-23 20:15 | 只看该作者
你既然能截图,为什么不能以文本的格式将程序发上来?这样看不清楚。
回复

使用道具 举报

地板
ID:7485 发表于 2017-5-24 08:26 | 只看该作者
loyc 发表于 2017-5-23 15:43
有大神吗,求教求教啊。

就这样一个截图,“大神”也帮不了你。
回复

使用道具 举报

5#
ID:203619 发表于 2017-5-24 08:35 | 只看该作者
ahshmj 发表于 2017-5-23 20:15
你既然能截图,为什么不能以文本的格式将程序发上来?这样看不清楚。

哦哦,不好意思,我现在发一下,因为我发了原来帖子的链接,我一开始怕发别人帖子的内容会不会存在盗帖的问题。
回复

使用道具 举报

6#
ID:203619 发表于 2017-5-24 08:36 | 只看该作者
以下是文本格式的原帖内容:
#include<reg52.h>
sbit SH_CP=P2^0;
sbit DS=P2^1;
sbit ST_CP=P2^2;
unsigned char code display[]={
0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/*"1",0*/
0x00,0x00,0xE0,0x0F,0x10,0x11,0x88,0x20,0x88,0x20,0x18,0x11,0x00,0x0E,0x00,0x00,/*"6",1*/
0x40,0x02,0x40,0x02,0x80,0x01,0xF0,0x0F,0x80,0x01,0x40,0x02,0x40,0x02,0x00,0x00,/*"*",2*/
0x00,0x00,0xE0,0x0F,0x10,0x11,0x88,0x20,0x88,0x20,0x18,0x11,0x00,0x0E,0x00,0x00,/*"6",3*/
0x00,0x00,0x00,0x07,0xC0,0x04,0x20,0x24,0x10,0x24,0xF8,0x3F,0x00,0x24,0x00,0x00,/*"4",4*/
0x00,0x80,0x00,0x40,0xC0,0x37,0x40,0x04,0x40,0x04,0x40,0x14,0x7F,0x64,0x48,0x04,
0x48,0x14,0x48,0x64,0x48,0x04,0xC8,0x07,0x08,0x10,0x08,0xE0,0x00,0x00,0x00,0x00,/*"点",5*/
0x00,0x00,0xFE,0xFF,0x02,0x08,0x22,0x10,0xDA,0x08,0x06,0x07,0x08,0x08,0xC8,0x08,
0xB8,0x08,0x8F,0x08,0xE8,0xFF,0x88,0x08,0x88,0x08,0x88,0x08,0x08,0x08,0x00,0x00,/*"阵",6*/
0x00,0x01,0x80,0x00,0x60,0x00,0xF8,0xFF,0x07,0x80,0x08,0x40,0x08,0x30,0xF8,0x0F,
0x89,0x00,0x8E,0x40,0x88,0x80,0x88,0x40,0x88,0x3F,0x08,0x00,0x08,0x00,0x00,0x00,/*"仿",7*/
0x00,0x10,0x04,0x10,0x04,0x90,0xF4,0x5F,0x54,0x35,0x54,0x15,0x54,0x15,0x5F,0x15,
0x54,0x15,0x54,0x15,0x54,0x35,0xF4,0x5F,0x04,0x90,0x04,0x10,0x00,0x10,0x00,0x00,/*"真",8*/
0x00,0x80,0x00,0x60,0xF8,0x1F,0x88,0x00,0x88,0x10,0x88,0x20,0x88,0x1F,0x08,0x80,
0x08,0x40,0xFF,0x21,0x08,0x16,0x09,0x18,0x0A,0x26,0xC8,0x41,0x08,0xF8,0x00,0x00,/*"成",9*/
0x08,0x10,0x08,0x30,0x08,0x10,0xF8,0x1F,0x08,0x08,0x08,0x88,0x08,0x48,0x10,0x30,
0x10,0x0E,0xFF,0x01,0x10,0x40,0x10,0x80,0x10,0x40,0xF0,0x3F,0x00,0x00,0x00,0x00,/*"功",10*/
0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",11*/
0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,/*"-",12*/
0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,/*"-",13*/
0x00,0x01,0x80,0x00,0x60,0x00,0xF8,0xFF,0x07,0x00,0x00,0x40,0xFC,0x4F,0x44,0x44,
0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFC,0x4F,0x00,0x40,0x00,0x00,/*"但",14*/
0x00,0x40,0x00,0x30,0xFC,0x0F,0x44,0x00,0x54,0xFD,0x54,0x45,0x54,0x45,0x55,0x45,
0xFE,0x47,0x54,0x45,0x54,0x45,0x54,0x45,0xF4,0xFD,0x44,0x00,0x44,0x00,0x00,0x00,/*"唐",15*/
0x00,0x04,0x00,0x84,0x00,0x44,0xFC,0x27,0x24,0x14,0x24,0x04,0x24,0x04,0x24,0x04,
0xE2,0x07,0x22,0x14,0x23,0x24,0x22,0x44,0x20,0x84,0x00,0x04,0x00,0x04,0x00,0x00,/*"兵",16*/
0x40,0x00,0x50,0x00,0x4E,0x3E,0x48,0x02,0x48,0x02,0xFF,0xFF,0x48,0x12,0x48,0x22,
0x48,0x1E,0x40,0x00,0xF8,0x0F,0x00,0x40,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,/*"制",17*/
0x00,0x01,0x80,0x00,0x60,0x00,0xF8,0xFF,0x07,0x00,0x40,0x00,0x30,0x00,0x0F,0x00,
0xF8,0xFF,0x88,0x08,0x88,0x08,0x88,0x08,0x88,0x08,0x08,0x08,0x08,0x00,0x00,0x00,/*"作",18*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",19*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",20*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",21*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",22*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",23*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",24*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",25*/
};
void  hc595_senddat(unsigned char dat)
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                DS=dat&0x80;
                SH_CP=1;
                SH_CP=0;
                dat<<=1;
        }       
}
main()
{
        unsigned char i,n;
        unsigned int k,m;
        char j;
        m=sizeof(display);
        SH_CP=0;
        ST_CP=0;
        while(1)
        {
                for(k=0;k<m;k=k+2)
                for(n=0;n<2;n++)
                for(i=0;i<16;i++)
                {       
                        for(j=3;j>=0;j--)
                        {
                                hc595_senddat(display[(32*j+2*i+1+k)%m]);
                                hc595_senddat(display[(32*j+2*i+k)%m]);
                        }
                        P3=i;
                        ST_CP=1;
                        ST_CP=0;
                }
        }
}
回复

使用道具 举报

7#
ID:203619 发表于 2017-5-24 08:37 | 只看该作者
发好了在审核了,以前从来没用过论坛,所以有点不太会用。。。
回复

使用道具 举报

8#
ID:203619 发表于 2017-5-24 10:15 | 只看该作者
ahshmj 发表于 2017-5-24 08:26
就这样一个截图,“大神”也帮不了你。

老哥,我在里面发了原帖子的链接的,我是怕会不会有什么抄袭别人帖子之类的事情,我后面又发过了,文本的程序,能帮帮忙吗,谢谢。
回复

使用道具 举报

9#
ID:203619 发表于 2017-5-24 10:20 | 只看该作者
这样吧我发一个我最后修改后的程序和仿真上来,这是我交作业要求的效果,我现在能理解的全部都注释过了。

GF15021013.rar

57.12 KB, 下载次数: 5

回复

使用道具 举报

10#
ID:203619 发表于 2017-5-24 10:21 | 只看该作者
ahshmj 发表于 2017-5-24 08:26
就这样一个截图,“大神”也帮不了你。

我下面程序发了,想了想吧所有出来的效果打包发了一个,麻烦帮帮忙,谢谢
回复

使用道具 举报

11#
ID:7485 发表于 2017-5-24 11:09 | 只看该作者
你的“新建文本文件.c”放的目录位置不对,所以找不到reg52.h这个头文件。你可以设置一下。

你是某一点不明白还是什么?
回复

使用道具 举报

12#
ID:203619 发表于 2017-5-24 17:37 | 只看该作者
本帖最后由 loyc 于 2017-5-25 10:13 编辑
ahshmj 发表于 2017-5-24 11:09
你的“新建文本文件.c”放的目录位置不对,所以找不到reg52.h这个头文件。你可以设置一下。

你是某一点 ...

那个.c文件没影响,是不小心放进去了,我是这两行一直读不懂,理解不了,我的效果已经做出来了的。
for(j=3;j>=0;j--)
{
hc595_senddat(display[(32*j+2*i+1+k)%m]);hc595_senddat(display[(32*j+2*i+k)%m]);
}
回复

使用道具 举报

13#
ID:203619 发表于 2017-5-24 17:45 | 只看该作者
                for(k=0;k<m;k=k+2)//循环送数据用于位移,        此行不是很理解
                for(n=0;n<30;n++)//此行程序用于控制运行速度,即每一帧显示的次数,次数越多运行时间越长,即越慢
                for(i=0;i<8;i++)//
                {
                    hc595_senddat(display[(2*i+1+k)%m]);
                    hc595_senddat(display[(2*i+k)%m]);//这里面的两行算法不理解,求助       
                    P3=i;//P3用于控制138译码器行选,例如i=1,即P3 = 1,P3 = 0x01
                    ST_CP=1;//上升沿输出8位数据,在for循环中,输出八次,即一块点阵每所有的字模
                                        _nop_();
                                        _nop_();
                    ST_CP=0;//下降沿,为下一轮的输出准备
                }
这个是我自己写的注释,麻烦你帮我看一下,谢谢了老哥
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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