51例程---字模
来源:互联网 发布:java base64编码 解码 编辑:程序博客网 时间:2024/04/29 08:12
一、何为字模
(1)如何记录组成字的LED点阵亮灭信息(16*16点阵一共有256点,显示一个特定的字需要其中有些点亮而另一些不亮,如何记录哪些点亮哪些点不亮?用字模)字模如何工作?256个点用256个二进制位表示,1表示这个点亮,0表示不亮。256个点就是256个二进制位,也就是256/8=32个字节。所以一个大小为16*16的字的字模是32个字节大小。所以字模的表现形式就是32个unsigned char型数据。
(2)字模如何获取。一般都是用专门的字模提取软件去提取的。这种软件的作用就是给一个字就能自动得到这个字对应的32个字节的字模编码。
(3)字模的结果不是唯一的,和你提取字模的方式有关的。(横向纵向、从上到下之类区分)提取字模时是没有标准的,怎么做都是对的或者都是错的,关键是你提取字模的方式和你用来在点阵上显示这个字模的函数必须对应。
字模软件如下图:
可以看到c代码里面有个数组,数组编码是从D0-D7,横向取模的结果
一、横向取模函数
#include<reg51.h>#define uchar unsigned char //宏定义sbit SER = P3^4;sbit RCLK = P3^5;sbit SCLK = P3^6;//函数原型声明void SendData (uchar d1,uchar d2, uchar d3, uchar d4);void Display(uchar zimo[32],uchar hang[32]);unsigned char peng[32] ={16,16,16,16,254,8,16,4,124,18,0,16,124,8,68,4,68,34,124,32,0,16,68,8,232,4,30,2,0,0,0,0};unsigned char hang[32] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08,0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00,0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, };void main(void){// d1 d2 对应负极(列), d3,d4对应正极(行) // d1 d3 对应9-16, d2 d4对应的是1-8// d1的bit7对应最右边一列,bit0对应第九列; //d2的bit7对应第八列,bit0对应左边第一列;//d3的bit7对应最下面一行,bit0对应第九行;//d4的bit7对应第八行,bit0对应最上面一行; Display(peng, hang); }//字模显示函数void Display(uchar zimo[32],uchar hang[32]){ uchar i = 0; for(i = 0; i < 16 ; i++) { SendData(~zimo[2*i+1], ~zimo[2*i], hang[2*i], hang[2*i+1]);/*取反的意义在于字模亮一颗表示1,而d1,d2表示 负极,0led小灯才会亮,故而1取反 */ } } void SendData(uchar d1, uchar d2, uchar d3, uchar d4){unsigned char i = 0; // unsigned char还可以用,和uchar是一样的SCLK = 0;RCLK = 0;for (i=0; i<8; i++){SER = d1 >> 7; // 将d1的最高bit取出来给SERSCLK = 0;SCLK = 1; // 2步制造了一个SCLK的上升沿d1 = d1 << 1;}for (i=0; i<8; i++){SER = d2 >> 7; // 将d2的最高bit取出来给SERSCLK = 0;SCLK = 1; // 2步制造了一个SCLK的上升沿d2 = d2 << 1;}for (i=0; i<8; i++){SER = d3 >> 7; // 将d3的最高bit取出来给SERSCLK = 0;SCLK = 1; // 2步制造了一个SCLK的上升沿d3 = d3 << 1;}for (i=0; i<8; i++){SER = d4 >> 7; // 将d4的最高bit取出来给SERSCLK = 0;SCLK = 1; // 2步制造了一个SCLK的上升沿d4 = d4 << 1;}RCLK = 0;RCLK = 1;}
阅读全文
0 0
- 51例程---字模
- 字模
- 51例程---闪烁灯
- 51例程---流水灯
- 51例程---跑马灯
- 51例程---led点阵
- 例程
- 提取TTF字库字模
- 获取字模 GetGlyphOutline函数
- 套接字模式
- 用GetGlyphOutline搞字模
- 点阵字模的显示
- 输出字模的函数
- QT提取字模
- 套接字模型
- 字模生成原理
- 点阵字和字模
- VC字模读取
- android gradle tools 3.X 中依赖,implement、api 和compile区别
- zookeeper 和 kafka 集群搭建
- 机械抓安装
- Android系统架构和四大组件简述
- Android权限 分类记录
- 51例程---字模
- 跳转系统相机和相册
- android文件存储
- CNN怎么调参数?
- 关于JDK9新特性
- 数据结构和算法学习01-数据结构和算法简介
- 继承、多态、接口
- 拷贝
- ConcurrentHashMap