16X64LED点阵显示屏原理图+源代码
时间:10-02
整理:3721RD
点击:
- 在介绍总体方案之前,先简单介绍一下点阵显示屏的显示原理以及如何改变显示功能的基本原理,人眼正常视觉刷新时间大于20ms,在刷新时间低于20ms的时候人眼会产生幻觉,也就视觉暂缓,点阵显示就是利用这一特点实现动态扫描显示的。利用51单片机的可编程系统对整个电路进行控制,数据的处理,发送,以及切换都在动态变换,从而可以有比较好的显示效果。
基本模块
CPU模块:51单片机及其外围电路
Led显示模块(部分)
74HC595列扫描及数据处理模块
列驱动模块
74HC138译码器行扫描模块
Max232程序下载模块
4路独立按键
#include <reg52.h> //头文件
#include "hanzi.h"
#define uchar unsigned char
#define uint unsigned int
//*****************************************************************//
sbit R=P2^2; //定义数据输入端口P2^0
sbit CLK=P2^0; //时钟信号
sbit STB=P2^1; //595锁存信号
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar k1_flag=0,k2_flag=0,k3_flag=0,n;
uchar yd,h; //m为移动计数器,h为行段计数器;
long zimo; //字模计数器
uchar BUFF[10]; //缓存;
float d=40;
void key(); //按键处理函数
void tiaozheng_data(void); //调整数据函数
void fasong_data(void); //发送数据函数
void saomiao(void); //行扫描函数
void writebyte(char dat); //595写一字节函数
void main()
{
uchar i; //d的大小决定移动速度
yd=0; //移动计数器,记录移动字节数
zimo=0; //字模计数器,记录字数
while(1)
{
while(yd<16)
{
for(i=0;i<d;i++)
{
key(); //按键扫描函数
saomiao(); //调用扫描函数
}
yd++; //移动一位
}
yd=0;
zimo=zimo+32; //向后移动一个字
if(k1_flag==0)
{
if(zimo>=32*65) //取决于字数 默认table1[]
zimo=0;
}
if(k1_flag==1) //取决于字数 table2[]
{
if(zimo>=32*24) //取决于字数
zimo=0;
}
if(k1_flag==2) //取决于字数 table3[]
{
if(zimo>=32*141) //取决于字数
zimo=0;
}
if(k1_flag==3) //取决于字数 table2[]
{
if(zimo>=32*24) //取决于字数
zimo=0;
}
if(k1_flag==4)
{
if(zimo>=32*141) //取决于字数 table3[]
zimo=0;
}
}
}
感谢小编分享学习
小编原理图与源码在哪?
谢谢分享
感谢小编分享..
好东西!
xiexielouzhufenxiang
谢谢
感谢祖国有个你不用积分就分享
谢谢分享啦!长见识了
赞.!
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
我去试试看,最近急需
就这些吗? .
感谢小编分享学习
感谢小编分享学习
感谢小编分享学习