一、点阵原理
市面上有很多种类的点阵,但是最常用的还是这种8乘8点阵
内部结构如下图
可以发现点阵就是由led构成,并且有一排是阳极,另一排是阴极,有一排是控制行,另一排是控制列。
打开proteus搜索MATRIX,看到各种型号的点阵,选择8乘8即可
任意选择一个颜色的点阵,我们发现引脚没有做任何标记,默认上排:阴极、控制列;下排:阳极、控制行
(一定要自己测一下,proteus仿真布置的点阵每次方向都可能发生改变)
什么意思呢,也就是跟下图对应关系,只不过引脚位置发生改变
二、4个 “ 2乘2 ” 点阵拼成一个 “ 4乘4” 点阵
我们先从简单开始理解,首先画出4个 “2乘2” 点阵
然后把上下方向的阴极控制列连接起来
把左右方向的阳极控制行连接起来
就拼成了一个4*4点阵
二、4个 “ 8乘8 ” 点阵拼成一个 “ 16乘16” 点阵
注意:proteus的点阵真的很难用,找不到方向,得自己测
测量两个内容:控制列还是控制行、阴极还是阳极
三、仿真:依次显示 “化作尘”,间隔为1秒
这里使用了74hc138与74hc595,不了解原理的自行百度,不做讲解
对应代码:
/*
hc595与hc138控制8*8点阵
一开始写这个程序的时候,程序运行占用存储空间超过了128b
错误:
点阵(四)16乘16.C(98): error C249: 'DATA': SEGMENT TOO LARGE
导致程序无法运行,原因是数组占用了大量的内存
后来在数组名前加了code解决了这个问题
意思是把数组存储到程序存储区4kb而不是 data区128b
*/
#include sbit SH_CP = P3^0; sbit DS = P3^1; sbit ST_CP = P3^2; //不需要改变的数组保存到code程序存储区 unsigned char code b[3][32] = { /*-- 文字: 化 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x10,0x01,0x10,0x01,0x10,0x21,0x08,0x11,0x08,0x09,0x0C,0x05,0x0C,0x03,0x0A,0x01, 0x89,0x01,0x48,0x01,0x28,0x01,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x7E,0x08,0x00, /*-- 文字: 作 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x90,0x00,0x90,0x00,0x90,0x00,0x88,0x7F,0x48,0x01,0x4C,0x01,0x2C,0x01,0x0A,0x1F, 0x09,0x01,0x08,0x01,0x08,0x01,0x08,0x3F,0x08,0x01,0x08,0x01,0x08,0x01,0x08,0x01, /*-- 文字: 尘 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x80,0x00,0x80,0x00,0x90,0x04,0x90,0x08,0x88,0x10,0x84,0x20,0x82,0x20,0x00,0x00, 0x80,0x00,0x80,0x00,0xFC,0x1F,0x80,0x00,0x80,0x00,0x80,0x00,0xFF,0x7F,0x00,0x00, }; void delayms(unsigned int m) { int i,j; for(i=0; i } void hc_595(unsigned int temp,unsigned int temp1) //595段码程序 { char t; bit val; for(t=0; t<8; t++) { val = temp & 0x80; //第一个数据传到第一个595输出 DS = val; SH_CP = 0;; SH_CP = 1; temp = temp<<1; } for(t=0; t<8; t++) { val = temp1 & 0x80; //第二个数据传输到第二个595输出 DS = val; SH_CP = 0;; SH_CP = 1; temp1 = temp1<<1; } ST_CP = 0;; ST_CP = 1; } void hc_138() { unsigned int n,t,i; for(i=0; i<3; i++) //显示3个汉字 { for(t=0; t<30; t++) //用来延时1秒 { for(n=0; n<16; ++n) //一次显示一个汉字 { if(n<8) //第一个138的高电平向下移动 { P3_6 = 1; //第一个138使能,第二个138不工作 P2 = n; } else //第二个138的高电平向下移动 { P3_6 = 0; //第二个138使能,第一个138不工作 P2 = n-8; } hc_595(b[i][2*n],b[i][2*n+1]); //发送段码 delayms(2); } } } } void main(void) { while(1) { hc_138(); } }
上一篇:C51教程 第二个51程序: 跑马灯 流水灯
下一篇:51单片机项目设计:超声波测距、智能小车(keil+proteus)
推荐阅读最新更新时间:2024-11-25 10:51
推荐帖子
- 共晶材料的选择及焊接温度的控制 高亮度LED封装工艺及方案
- 芯片设计从芯片的演变历程中发现,各大LED生产商在上游磊晶技术上不断改进,如利用不同的电极设计控制电流密度,利用ITO薄膜技术令通过LED的电流能平均分布等,使在结构上都尽可能产生最多的。再运用各种不同方法去抽出LED发出的每一粒光子,如生产不同外形的芯片;利用芯片周边有效地控制光折射度提高LED取率,研制扩大单一芯片表面尺寸(2mm2)增加发光面积,更有利用粗糙的表面增加光线的透出等等。有一些高亮度LED芯片上p-n两个电极的位置相距拉近,令芯片发光效率及散热能力提高。而最近已有的生产
- 探路者 LED专区
- ADI最新中文资料(2018年1月)
- 转自:https://ezchina.analog.com/thread/17635电子书E-BOOK。ADI参考电路设计——仪器仪表选集数据手册DATASHEETS。ADGS5414:SPI接口,八路SPST开关,13.5ΩRON,±20V/+36V,多路复用器ADGS1212:SPI接口、四路SPST开关、低QINJ、低CON、±15V/+12V、多路可配置技术文章TECHNICALARTICLE。Ka频段需要更多带宽?
- 鲁宾汗 模拟电子
- 监控系统的接地与防雷接地2009思考[转]
- 监控系统的接地与防雷接地监控系统的接地与防雷接地有矛盾么?有!!!有的防雷器产品厂家明确主张“到处接地”,特别指出摄像机要接地;为了防雷制造了“多点接地”,那地环路问题怎么办?监控系统的接地要求是:系统(主机)单点接地——摄像机不接地,那防雷又怎么办?这都是尖锐的问题、有趣的问题,又是很久以来许多人一直关注的问题!!!。一个网友问:“多点接地可以防雷却制造地环路干扰,单点接地虽可排除地环路干扰,但能防雷吗?”这个问题提得太好了!!值得深思和重视。不过,我也要提醒的发问:“多点接地真能
- xyh_521 安防电子
- 【米尔MYD-YG2LX开发板】在工控领域的应用-在PLC上的应用
- 前言本文介绍基于【米尔MYD-YG2LX开发板】在工控领域的应用,在PLC领域的应用。开发环境基于WSL2.使用Beremiz。Beremiz官网https://beremiz.org/下载https://github.com/beremiz/beremiz/releases如果下载不稳定经常断,可以使用wget下载wgethttps://github.com/beremiz/beremiz/releases/dow
- qinyunti 工控电子
- 放大电路的频率响应
- 频率响应通常亦称频率特性,频率响应或频率特性是衡量放大电路对不同频率输入信号适应能力的一项技术指标。实质上,频率响应就是指放大器的增益与频率的关系。通常讲一个好的放大器,不但要有足够的放大倍数,而且要有良好的保真性能,即:放大器的非线性失真要小,放大器的频率响应要好。“好”:指放大器对不同频率的信号要有同等的放大。之所以放大器具有频率响应问题,原因有二:一是实际放大的信号频率不是单一的;(电视图像信号的频率在0~6mhz之间);二是放大器具有电抗元件和电
- fighting 模拟电子
- 有关FIFO操作fifo的问题
- 我用软件自带的IP核去调用FIFO的,参数都设置好后,我用signals:std_logic_vector(7downto0);process(filter_clk)beginifrising_edge(filter_clk)thens=s+1;filter_dat_out=s;endif;。。去给fifo写入数据然后再Niosii里面的C语言语句:if(READ_EMPTY==1){printf(\"sdhkhk
- tpengti FPGA/CPLD
设计资源 培训 开发板 精华推荐
- 使用 LTC4162EUFD-L41M 1-8 节、3.2A 降压型开关电池充电器和 PowerPath 的典型应用
- LM324DR2G 函数发生器运算放大器的典型应用
- 驱动电路
- 智能风扇
- 使用 PSoC 传感光学脉搏计,脉搏计可用于医疗领域
- MIC94345-SYCS 3.3V 输出电压、500mA LDO 采用纹波阻断技术的典型应用
- LPC4088开发套件
- LT1818 的典型应用 - 400MHz、2500V/us、9mA 单通道运算放大器
- 使用 Sanken Electric Co., Ltd 的 SI-8050JF-T 的参考设计
- LTC3851EGN (DCR) 演示板,4.5V < Vin< 14V,输出电压:1.5V/15A