关于点阵我要刨根揭底.docx
- 文档编号:25591097
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:10
- 大小:393.98KB
关于点阵我要刨根揭底.docx
《关于点阵我要刨根揭底.docx》由会员分享,可在线阅读,更多相关《关于点阵我要刨根揭底.docx(10页珍藏版)》请在冰豆网上搜索。
关于点阵我要刨根揭底
关于点阵我要剖揪底
今天我研究了一个下午的点阵终于有了,一点点的收获,希望可以拿出来和大家分享,希望对各位能有所帮助。
大家也许用过点阵的都应该使用过这个软件
图中的‘1’是我自己画出来的。
关于制作一个八乘八点阵,我就不说了,首先我还要教大家一些小的技巧。
我在打算截取这张图的时候,发现我的电脑里没有微软的画图软件,每次使用总的让我查询一些知识才能将画图程序调用出来,将画图程序调用出来也就罢了,这时我发现笔记本的截屏和台式机的截屏不太一样,我这个是DELL的比较旧的笔记本,不过截屏的键总之是不会变的。
打开画图工具和截屏在这里我想和大家分享一下我的快捷方法。
1.打开截图:
同时按住键盘上的WIN+R键,(WIN键,就是那个WINDOWS图标的键),将显示如下画面
在打开中直接输入mspaint就可以打开,画图工具了。
哈哈,第一步就这么简单不需要再开始程序中找,如果你打字速度还行可以试试。
2.截图
我的DELL电脑我一直疑惑为什么上面有个FN键,我现在终于知道了,原来还有这么一个用处,
同时按下FN+F11,F11上面有PrintScrn
这时你可能感觉什么变化也没有,不过你把之间的画图工具打开,直接同时按下CTRL+V黏贴键,就可以把你刚才的当前的页面截下来,接下来你就可以把你想要的那个区域接下来了。
哈哈。
简单吧。
上面都是我的一些小的技巧,希望对各位能有所帮助。
下面我要正式讨论主要的话题:
刨根揪底,关于点阵的计算
我个人可能有个人的怪癖,就是喜欢刨根揪底,还有不喜欢常规思路去分析,可能大家都是喜欢大众的四位去走,将一个能用的程序直接拿过来用就可以了。
将里面需要改的数组用字模重新生成一下即可,也许你可能不太了解这到底是怎么回事,今天我就和大家共同探讨,这个问题,
大家可以认真一下这张图,八成八点阵肯定没问题。
它的编码就是上面的这幅图形,但是为什么是
0x00,0x02,0x42,0xfe,0x02,0x02,0x00,0x00,
这个问题你去思考过吗?
今天就是要和大家探讨这个问题。
首先,要想实现这个图首先我们很有必要对我们所使用的自摸软件进行设置
我的设置如下
纵向取模,字节为不是用倒序,自然就正序喽,保留大家应该也能明白,目的也就是当你要输入多个字符的时候,可以不需要考虑把最后一个数据后面加‘,’逗号了。
再下面的任意时候都加零,大家仔细读读后面应该可以很容仪的去理解吧。
(也就是总是用两位BCD码来表示一个数据,无论第一个为零还是部位零都必须加在上面),建议都使用第二项,个人见解。
。
大家考虑过这里为什么是正序吗?
到底什么为正序啊?
经过我一下午对点阵的研究终于搞懂了,那就是
从上往下为正序,即最高位在上,最低位在下
这里我们可以看看,两者的对应的关系,
这里编码方式是以列进行编码,列的方向是从左向右
0x00,也就是第一列,什么也没有。
0x02,第二个位置位1,所以就可以这么算出来了,其它的都是这么算的哦,不信大家可以自己试试。
从上往下,最高位为最上面,最低位为最下面
下面关于
这个我也想和大家验证一下,
设置画面也就值把字节倒序添加了,上去。
结果如下:
这里我们不难发现,倒序的结果和正序的结果不一样呢。
我们按照上面的想法。
正序是最上面为最高字节,最下面为最低字节,那么
倒序就是,最上面为最低字节,最下面为最高字节。
这里我们验证两个
0x40,我们在看一下上面的图,可以发现其对应的二进制应该是01000000,因此为0x40
0x42,途中从下往上读数据为01000010,转换为十六进制即为0x42,其他的都是这样。
细节的剖分,就上面这些。
希望对你有帮助。
但是。
还有一点我想和大家说说我对protues中点阵的不满。
直接调用库中的点阵,如下
点阵是有了,不过对于我们初学点阵朋友来说是不是有点不大好啊,不大好的地方就是我们很难分辨出,上面还是下面为LED的正极,只有我们自己通过VCC和GND测试才能的出来。
这点小问题,说起来并不是个小问题,当我们需要使用多个点阵屏来组成一个LED点阵屏的时候,这回让我们很容易的混淆到底哪一端为正哪一端为负。
还有当很长时间我们没有使用点阵屏,这时我们还会对,点阵屏哪个是正哪个是负不能一幕了然。
这样对于我们的学习者来说从时间上就浪费了,一大部分的时间来测试正和负。
最好能在显示屏上能将个标志来标示正还是负。
不错是测试出来默认的上面是正下面是负,我们有必要的将点阵旋转,这时我们再去判断哪端是正哪端是负。
无疑又浪费了时间。
希望看到这篇为文章的人能将我的一些这些小的问题,反馈给protues开发组,这样,让我们对于硬件的学习可以更加的高效。
调试中出现的问题如下
我在字模中输入的是
多了一横,这个也是很细小的问题,但是问题会出在哪里呢?
对于这种问题我仔细的观察了一遍发现,每一次当倒数第二行的显示总是和倒数第三行的显示一样。
这是我的问题程序。
/***********************************
本程序工作在晶振为12MHZ的条件下
如果使用别的晶振只需要通过计算定时器设置的值
***********************************/
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
uchari=0,t=0,NumIndex;
ucharcodetable[]={
0x00,0x7E,0x42,0x42,0x42,0x7E,0x00,0x00,//'0'
0x00,0x40,0x42,0x7F,0x40,0x40,0x00,0x00,//'1'
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,//'2'
0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00,//'3'
0x00,0x18,0x14,0x12,0x7F,0x10,0x00,0x00,//'4'
0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00,//'5'
0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00,//'6'
0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00,//'7'
0x00,0xFE,0x92,0x92,0x92,0xFE,0x00,0x00,//'8'
0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00//'9'
};
voidmain()
{
P3=0x80;
NumIndex=0;//从零开始
TMOD=0x00;//定时器T0方式0,十三位定时器,高三位低五位。
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
IE=0x82;//开启总中断及定时器T0中断入口地址为1
TR0=1;
while
(1);
}
voidLedDisplayInterruput()interrupt1
{
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
P0=0xff;
P0=~table[NumIndex*8+i];//取反为了和字模中的子显示一直
P3=_crol_(P3,1);//将最高位左移一位
++i;
if(i==8)i=0;
if(++t==250)//每个字刷新显示一段时间
{
t=0;
if(++NumIndex==10)NumIndex=0;
}
}
代码里明明也是零啊。
但是显示的却有问题。
终于努力的发现原来是在左移的时候出了问题
但是,还是不知道怎么去解决。
。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 点阵 刨根 揭底