第七篇 亚龙236 led 16*32点阵显示显示汉字
第七篇 亚龙236 led 16*32点阵显示显示汉字
亚龙236设备显示模块有led点阵,16*32点阵可以显示汉字或图形。
这个模块只能教学用,实际的户外屏用的电路和它从原理上不一样。数码管模块也一样和常用电路不一样。但是竞赛都用 -!
led点阵共32列。每8列成一组,共四组,每次写入一组的数据,四次写完一行数据,再驱动这一行,通过uln2803供电让它显示。显示1ms再刷下一行数据,再点下一行。
点阵共16行,行驱动使用uln2803达林顿扩流,分上下两半屏写入数据。16行工作时只有一行给高电平,通过uln2803使得这一行得电能亮。
具体电路见pdf文档。
proteus画图时为了好看把驱动电路和led点阵分开画在两页了。
代码:
/*
教学使用
李枝蔚 西峰职专
*/
#include <reg52.h>
//用户数据类型定义
#define uchar unsigned char
#define uint unsigned int
//硬件连接定义
sbit row0 = P3 ^ 4; //上半屏选通信号 低电平有效
sbit row1 = P3 ^ 5; //下半屏
sbit col0 = P3 ^ 0; //第一组选通信号。低电平有效
sbit col1 = P3 ^ 1; //第二组选通信号
sbit col2 = P3 ^ 2; //第三组
sbit col3 = P3 ^ 3; //第四组
#define mat_port P0 //点阵数据端口
//用户全局变量定义
bit mat_refresh_en = 0; //点阵刷新使能标志,每1ms刷新一次,显示16行的其中一行
uchar i=0; //循环变量
uchar code line_sel[16] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
uchar code mat_hz[4][16] = {{0x00,0x00,0x3F,0x20,0xA0,0x92,0x54,0x28,0x08,0x14,0x24,0xA2,0x81,0x40,0x20,0x10},
{0x01,0x01,0x01,0x3F,0x20,0x10,0x02,0x02,0x02,0x05,0x05,0x08,0x08,0x10,0x20,0x40},/*"欢",0*/
{0x00,0x04,0xC8,0x48,0x40,0x40,0x4F,0x48,0x48,0x48,0xC8,0x48,0x08,0x14,0xE2,0x00},
{0x00,0x01,0x3C,0x24,0x24,0x24,0x24,0x24,0x24,0x2D,0x14,0x04,0x04,0x04,0x7F,0x00},/*"迎",1*/
};
//------------------------------------------------------------------------------------
void delay_us() //空延时函数,大概延时4.34us在11.0592mhz时钟下
{;
}/*************************************************************************************************函数名称:mat_ls373_clr函数功能:点阵字模显示驱动函数,锁存器全选写0,用于锁存清零入口参数:无出口参数:无备 注:
**************************************************************************************************/
void mat_ls373_clr()
{mat_port = 0x00;col0 = 1;col1 = 1;col2 = 1;col3 = 1;row0 = 1;row1 = 1;
}/*************************************************************************************************函数名称:mat_ls373_latch函数功能:点阵字模显示驱动函数,锁存器全不选,用于封锁锁存器入口参数:无出口参数:无备 注:
**************************************************************************************************/
void mat_ls373_latch()
{col0 = 0;col1 = 0;col2 = 0;col3 = 0;row0 = 0;row1 = 0;
}/*************************************************************************************************函数名称:mat_Wr_Line函数功能:点阵字模显示驱动函数,第k行点阵入口参数:char k ,要点亮第k行点阵出口参数:无备 注:
**************************************************************************************************/
void mat_Wr_Line(char k)
{mat_port = line_sel[k];delay_us();if (k < 8) //行号小于8选上半屏,否则下半屏选中{row0 = 1; //上半屏选中row1 = 0; //下半屏不选中}else{row0 = 0; //上半屏不选row1 = 1; //下半屏选中}
}/*************************************************************************************************函数名称:mat_Init函数功能:点阵字模显示驱动函数,用于清零锁存器(黑屏)并且封锁锁存器 ,入口参数:char m 字模数组hz [4][16],出口参数:无备 注:
**************************************************************************************************/
void mat_Init()
{mat_ls373_clr(); //清零所有锁存器delay_us();mat_ls373_latch(); //关闭 锁存器
}/*************************************************************************************************函数名称:mat_wr_data函数功能:点阵字模显示驱动函数,锁存字模数组中的一个字节到74ls373行锁存器入口参数:char m 字模数组hz [4][16],出口参数:无备 注:
**************************************************************************************************/
void mat_wr_data(char m[4][16],k,l)
{mat_port = m[l][k]; //汉字字模4列 16行switch (l) //四组 列组 判别{case 0: //若果l=0 表示数据要显示到第一列col0 = 1;break;case 1: //第二列col1 = 1;break;case 2:col2 = 1;break;case 3:col3 = 1;break;}//delay_us(); //如果显示不稳就加短延时,mat_ls373_latch(); //封锁 锁存器 }/*************************************************************************************************函数名称:mat_dis函数功能:点阵字模显示函数,显示数组中的汉字点阵入口参数:char m 字模数组hz [4][16],出口参数:无备 注:
**************************************************************************************************/
void mat_dis(char m[4][16])
{uchar j = 0; //列数 mat_column 亚龙台子是4列if( mat_refresh_en==1) //如果点阵刷新使能==1 则{mat_Init(); //消隐for (j = 0; j < 4; j++) //for循环四次 ,写4列数据{mat_wr_data(m,i,j); //写第i行字模4字节到缓存ls373} mat_Wr_Line(i); //选择第i行点亮mat_refresh_en=0; //关闭刷新使能,确保1ms之内只刷新一行点阵i++; //准备下一行 行号if (i>15) i=0; //16行完了 归零} // ---if( mat_refresh_en==1)
}
//定时器T0 初始化
void t0_init()
{TMOD = 0x01; //定时器赋初值TH0 = (65536 - 960) / 256;TL0 = (65536 - 960) % 256;ET0 = 1;TR0 = 1;EA = 1; //开中断
}//
void main(void)
{t0_init(); //t0定时器 初始化mat_Init(); //点阵初始化 黑屏 可以不用while (1) //主循环{ mat_dis(mat_hz);}
} void zhongduan(void) interrupt 1 //常规上不能在中断里处理太多任务 ,设定标志位,在主程序中处理
{TL0 = (65536 - 915) % 256; //重置定时器 11.592-对应-1msTH0 = (65536 - 915)/ 256; mat_refresh_en=1; //每1ms 置位一次 mat_refresh_en ,使能点阵刷新
}
效果
第七篇 亚龙236 led 16*32点阵显示显示汉字相关推荐
- 基于51单片机16*32点阵显示屏的设计与实现
文章目录 设计要求 一.开发软件 1.Keil 2.Proteus 3.PCtol2002 4.Altium Designer 二.硬件部分 1.51单片机最小系统 2.LED点阵屏 3.74HC59 ...
- c语言16x32点阵显示汉字,点阵16*32滚屏显示汉字
// matrix2pcs20140821.ino const int SH_CP = 8; const int DS = 9; const int ST_CP = 10; //声明4个数组临时变量 ...
- 16*32点阵c语言,16*32点阵的原理
一.总体方案 1.工作原理 利用单片机STC系列单片机作为本系统的中控模块.单片机可把由DS18B20.DS1302读来的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度.日历的显示.点阵l ...
- 第三篇:动态 8位数码管显示---亚龙236电路
第三篇:动态8位数码管显示 -亚龙236电路 上一篇中已经实现了数码管的静态显示,如果按照上一篇的思路89s52芯片最多可以驱动4位数码管.这一节我们来看看其它显示更多位数的方案. 目前最常用的是 5 ...
- CCNA-第七篇-思科私有路由协议-EIGRP-初级
CCNA-第七篇-思科私有路由协议-EIGRP 首先呢这个EIGRP之前呢, 路由协议是分几种的 一个叫距离向量协议RIP,IGRP(都过时了) 一个觉链路状态协议OSPF,IS-IS这些 还有个叫混 ...
- 转载 解密蓝牙mesh系列 | 第七篇【低功耗蓝牙】【承载层(bearer layer)】【节点与特性】【代理节点(Proxy Node)】【蓝牙mesh代理服务】【发现代理节点】【代理协议】
SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机.32位ARM Cortex-M0处理器.128kB Flash存储器.以及丰富的数字接口.SYD8801片上集成了 ...
- WinDbg调试CPU占用高的问题 试验+实战 《第七篇》
WinDbg调试CPU占用高的问题 试验+实战 <第七篇> 一.High CPU试验 1.示例代码 static void Main(string[] args){Console.Clea ...
- MySQL数据库,从入门到精通:第七篇——MySQL单行函数应用
MySQL数据库,从入门到精通:第七篇--MySQL单行函数应用 第七篇_单行函数 1. 函数的理解 1.1 什么是函数 1.2 不同DBMS函数的差异 2. 数值函数 2.1 基本函数 2.3 三角 ...
- 从零开始写项目第七篇【搭建Linux环境】
tags: 从零开发项目, title: 从零开始写项目第七篇[搭建Linux环境] 使用SSH连接Linux环境 经过十多天的时间,我的网站备案终于完成了...接下来我就收到了阿里云的邮件.它让我在 ...
最新文章
- 彻底解决swf浏览器的缓存问题
- 2D图像生成3D点云补充材料chamfer distance和EMD
- python调用metasploit自动攻击_Python脚本与Metasploit交互进行自动永恒之蓝攻击-Go语言中文社区...
- js的一些function
- recover/panic
- C语言和C++中如何编写交换两个整形变量值的函数
- mid=(left+right)1什么含义
- 微信客服系统开发SDK使用教程-给好友发消息任务
- python处理出租车轨迹数据_1-出租车数据的基础处理,由gps生成OD(pandas).ipynb...
- Java ssm框架是什么?
- 计算机验证菜单命令的各种特性,2017年CAD工程师认证单选题「附答案」
- layui 确认,取消弹窗
- word论文排版插件_推荐一款强大的word插件,一键排版,好用到爆!
- AVR单片机ATMEGA16编译软件ICCAVR的使用技巧与应用示例
- C++ ActiveX基础1 使用VS2015创建MFC ActiveX工程项目
- ESP8266连接TFT(ST7789)配置说明
- Unity3D Shader 新手教程(2/6) —— 积雪Shader
- 动漫美少女生成神器、猫的门禁...2019年十七大最佳机器学习项目 |年度盘点①...
- 计算机网络状态不存在,IP地址是什么?我地电脑上不去网,有时显示IP地址不存在是怎么了...
- 造血干细胞扩增、转染以及基因编辑优化解决方案